본문 바로가기

반응형

Computer Science

(55)
OAuth, OAuth2 생각해보기 웹 사이트를 이용할 때 "네이버로 로그인" 같이 별도의 회원가입 없이 로그인을 제공하는 서비스를 이용해 본적이 있다. 이때 해당 플랫폼의 아이디가 있다면 외부 서비스에서도 인증을 가능하게하고 그 서비스의 API를 사용할. 수 있다. 이것을 OAuth라고 한다. 이러한 OAuth가 왜 생겼을까? 제 3자의 웹서버에 아이디와 비밀번호를 제공하고 싶지 않은 요구가 첫번째 이고 개인정보를 여러곳에 노출시키면 피싱에 둔감해집니다. 무엇보다도 Application이 안전하다는 보장이 없기 때문입니다. 두번째로는 비밀번호의 인증방식의 문제 신뢰: 사용자가 애플리케이션에 ID/PW를 제공하기 꺼려함 피싱에 둔감해짐: 각 종 애플리케이션들에 ID/PW 를 계속 제공하는 경우 접근범위가 늘어남에 따른 위험 부담..
Layered Architecture 레이어드 아키텍처 계층을 분리하는 구조이다. 한 곳에서 모든 작업이 한꺼번에 이루어진다면 코드의 복잡성 증가, 유지보수의 어려움과 유연성 부족, 중복 코드의 증가, 낮은 확장성등 문제가 발생하기 때문이다. 1. Presentation layer : View 표현과 이벤트 처리, 데이터 포맷 책임 사용자와 최종 접점에 위치하여 사용자로부터 데이터를 입력 받거나, 요청된 데이터를 출력해 보이는 계층 외부로부터의 어플리케이션에 대한 요구를 받아들이는 동시에 처리 결과를 사용자에게 보여주는 부분이며, 컨트롤러의 구성 요소와 상호작용한다. 2. Control layer : Controller 구성 요서간의 처리 흐름을 제어, 데이터 조작 의뢰, 데이터 변환 및 연산, Exceptino과 Error 처리 사용자로부..
Maven vs Gradle Maven 이란 무엇인가? Apache Maven은 자바용 프로젝트 관리도구로 Apache Ant의 대안으로 만들어졌다. Apache License로 배포되는 오픈 소스 소프트웨어이다. 프로젝트를 작업하다보면 여러 라이브러리 파일이 필요할때가 있다. 어떤 라이브러리는 다른 라이브러리를 의존하는 경우도 있고 이러한 라이브러리 덩어리들을 메이븐 pom.xml에 설정하기만 하면 네트워크를 통해서 필요한 라이브러리를 설치해준다. Ant vs Maven 지금은 gradle이 나왔지만 maven이 없던시절에는 ant라는 빌드를 사용했다. Ant는 비교적 자유도가 높은 편 * (Ant : 전처리 / 컴파일 / 패키징 / 테스팅/ 배포 가능) Maven은 정해진 라이프사이클에 의하여 작업 수행하며, 전박적인 프로젝트 ..
직렬화란? 직렬화란 무엇인가? 자바 직렬화란 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 Byte형태로 데이터를 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)을 아울러서 이야기합니다. 시스템적으로 이야기하자면 JVM(Java Virtual Machine 이하 JVM)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술과 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태를 같이 이야기합니다. 직렬화 실습 직렬화할 객체 직렬화 예제코드 실행 결과 rO0ABXNyABVjb20ubmF2ZXIudGVzdC5QZXJzb27dSuLZERrRxQIAA0wAA2FnZXQAEkxqYXZhL2xhb..
템플릿 엔진(Template Engine)이란 ? 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어(소프트웨어 컴포넌트)를 말한다. 템블릿 엔진이 왜 나왔을까?? 웹이라는 세계에서 서버, 클라이언트(브라우저)가 있습니다. 기존 방식에서는 서버에서 데이터베이스의 데이터를 가져온 뒤 HTML로 만들어 클라이언트에게 보내주었습니다. but! 이방식은 페이지의 일부만 변할 때에도 전체 페이지를 다시 그려야하는 이슈가 발생합니다. (비효율적...) 이때문에 Ajax가 나왔고 프론트엔드단에서는 해당 필요한 데이터부분만 재가공하여 보여주면 되었습니다. 하지만 문제는 끝난것은 아니였습니다. 데이터를 가공하는 손이 많이가는 것입니다. 보통 Jquery를 사용하거나 javascript를 사용하여 HTML에 가공된 데이터를 보여주..
HTML HTML (HyperText Markup Language) HyperText : 문서와 문서가 연결되어 있다. Markup : Tag로 이루어져있다. Language : 언어 문서와 문서가 연결되어있는 Tag로 이루어진 언어라고 한다. 문서의 구조 문서에 표시되는 컨텐츠가 위치함 TAG 태그의 형식은 다음과 같이 이루어져 있다. 컨텐츠 닫히는 태그가 필요없는 태그도 존재한다. ex)
HTTP 란? HTTP (Hyper Text Transfer Protocol) 클라이언트가 브라우저를 통해서 어떠한 서비스를 url을 통하거나 다른 것을 통해서 요청(request)을 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다. HTTP 특징 - HTTP 메세지는 HTTP 서버와 HTTP 클라이언트에 의해 해석이 된다. - TCP/IP를 이용하는 응용 프로토콜이다. - HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜이다. - HTTP는 연결을 유지하지 않는 프로토콜이기 때문에 요청/응답 방식으로 동작한다. 요청 (Request) 클라이언트가 서버에게 연락하는 것 GET,POST,PUT,DELETE가 있다. 크롬에게 개발자모드를 이용하면 다음과 같은 ..
TCP ( Transmission Control Protocol) 1. 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜 2. 데이터를 전송하기 전에 데이터 전송을 위한 연결을 만드는 연결지향 프로토콜이다 3. 데이터는 네트워크선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어서 전달 될 수 있는데, TCP는 손실을 검색해내서, 이를 교정하고 순서를 재조합할수 있또록 해준다. 장치들 사이에 논리적인 접속을 하기 위하여 연결을 선정하여 "신뢰성을 보장하는 연결형 서비스"이다. TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메세지, 세그먼트라는 블록 단위)를 안정적 으로, 순서대로, 에러없이 교환할 수 있게 한다. TCP의 특징 연결형 서비스 3-way handshaking 과정을 통해 연결을 설정 4-wa..

반응형