JWT 정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰으로, Json 객체를 이용한다. Json Web Token의 약자로 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다. 웹 상에서 정보를 Json 형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 string 형태로 저장되어 있다. JWT의 구성요소 헤더, 페이로드, 서명 헤더 Header 어떠한 알고리즘으로 암호화 할 것인지, 어떠한 토큰을 사용할 것 인지에 대한 정보가 들어있다. 정보 Payload 전달하려는 정보(사용자 id나 다른 데이터들, 이것들을 클레임이라고 부른다)가 들어있다. 서명 Signature 가장 중요한 부분으로 헤더와 정보를 합친 후 발급해준 서버가 지..
URI 특정 리소스를 식별하는 통합 자원 식별자 Uniform Resource Identifier를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다. 자원의 위치뿐만 아니라 자원에 대한 고유 식별자 URI의 존재는 인터넷에서 요구되는 기본 조건으로써 인터넷 프로토콜에 항상 붙어다니며, URI의 하위 개념으로는 URL과 URN이 있다. URL Uniform Resource Locator 통합 자원 지시자 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브넷이다. 자원이 실제로 존재하는 위치를 가리킨다. 한계 🤨 리소스의 위치를 옮기면 해당 URL을 더 이상 사용할 수 없다. URL의 한계로 리소스의 위치..
REST란 HTTP를 잘사용하기 위한 아키텍쳐 스타일이다. REST는 URI와 HTTP 메소드를 사용해서 자원과 행위를 표현한다. REST의 원칙을 지키면서 API의 의미를 표현하기 쉽고, 파악하기 쉽게 하는 것을 Restful 하다고 한다. REST API란 REST한 방식으로 데이터를 상호교환하게 설계된 API를 말한다. HTTP를 잘사용하기 위해, URI와 HTTP메소드를 사용해서, URL로 어떤 자원에 접근할 것인지, 메소드로 어떤 행위를 할것인지 표현하여 설계된 API를 말한다. 로이필딩의 논문 Chapter 5.를 보면 REST 제약조건 6가지를 설명한다. Client-Server 클라이언트와 서버를 분리함으로써, 서로 의존하지 않는 구조를 가져야한다. Stateless 요청과 응답이 들어올 ..
소켓이란? 프로그램이 네트워크 상에서 데이터를 송신과 수신을 하기 위한 연결부이다. 일반적으로 TCP/IP 프로토콜을 이용하거나 WebSocket을 이용한다. TCP/IP Socket 네트워크상 서버와 클라이언트 두 개의 프로그램이 특정 포트를 통해 양방향 통신이 가능하도록 만들어주는 소프트웨어 장치이다. intranet 바운더리(조직 내 네트워크)에서 작업하는 경우에는 해당 네트워크의 컴퓨터를 제어하고 TCP 연결에 적합한 포트를 열 수 있기 때문에 TCP 소켓을 통해 통신하는 것이 더 쉽다. TCP/IP Socket은 인터넷을 통한 통신을 위한 프로토콜이기 때문에 소켓을 이용하여 양 끝단의 IP/Port 번호를 이용해 연결을 수립하고 데이터를 주고 받고, 데이터의 신뢰성을 보장한다. 기본적으로 네트워..
브라우저에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다. 서로 다른 도메인의 리소스 요청을 보내고 받게 되면, CORS 에러가 발생한다 ! 예시로, 프론트엔드와 백엔드가 협업하게 되면, 각각 따로 서버를 띄우기에 CORS 문제가 발생할 수 있다. 그래서 cross-origin 요청을 하려면 서버의 동의가 필요하다. 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절한다. .❗❕❗ 이러한 허락을 구하고 거절하는 메커니즘을 HTTP-header를 이용해서 가능한데, 이를 CORS(Cross-Origin Resource Sharing)라고 부른다. 그래서 브라우저에서 cross-origin 요청을 안전하게 할 수 있도록 하는 메커니즘이다. COR..
DeadLock 둘 이상의 thread가 각기 다른 thread가 점유하고 있는 자원을 서로 기다릴 때, 무한 대기에 빠지는 상황을 말한다. deadlock이 발생하는 조건은 상호 배제(mutual exclusion), 점유 대기(hold-and-wait), 비선점(no preemption), 순환 대기(circular wait)이다. 이 4가지 조건이 동시에 성립할 때 발생할 수 있다. deadlock 문제를 해결하는 방법에는 무시, 예방, 회피, 탐지-회복의 4가지 방법이 있다. Deadlock이 발생하는 조건 상호 배제(mutal exclusion) 동시에 한 thread만 자원을 점유할 수 있는 상황이다. 다른 thread가 자원을 사용하려면 자원이 방출될 때까지 기다려야 한다. 점유 대기(hol..