도메인 주도 개발
Computer Science/Server
보호되어 있는 글입니다.
JWT (w. Session)
Computer Science/Server
JWT란?JOSE 패밀리먼저 JOSE에 대해서 알아보자. JOSE(JavaScript Object Signing and Encryption)란 JSON 데이터를 서명하거나 암호화하는 전체 표준군의 총칭이고 구성요소는 다음과 같다. JWS (RFC 7515): JSON에 디지털 서명(무결성/진위성)을 붙이는 규격JWE (RFC 7516): JSON을 암호화(기밀성+무결성)하는 규격JWK (RFC 7517): 키(대칭/공개/개인)를 JSON으로 표현하는 포맷. 묶음은 JWKSJWA (RFC 7518): JOSE에서 쓰는 알고리즘 레지스트리(HS256, RS256, A256GCM 등)JWT (RFC 7519): JSON 클레임 세트를 안전하게 전달하는 표준 포맷 엑세스 토큰은 누가 발급했는지와 내용이 변조되지..
서버란?
Computer Science/Server
우리가 말하는 백엔드(API) 서버란 무엇인가?흔히 백엔드 서버라고 자주 얘기하지만 무엇을 두고 백엔드 서버라고 말하는지 정의해보자. 그동안은 API만 개발하다보니 이런 정의가 헷갈리기 시작해졌다.내가 생각하기에 백엔드(API) 서버란 애플리케이션이 HTTP 요청을 수신하고 응답할 수 있는 실행 환경을 말하는 것 같다. 그 안에 우리가 구현한 api와 비즈니스 로직이 존재한다.백엔드 개발자가 만든 API(순수 자바 코드)는 HTTP 요청을 수신할 능력이 없다. 따라서 사용자가 보낸 HTTP 요청이 API까지 닿을 수 있도록 요청을 받는 런타임이 필요하다. WAS와 서블릿 컨테이너가 해당 역할을 한다.이 런타임은 사용자가 TCP 소켓 + HTTP 프로토콜로 보낸 요청을 수신해서 파싱(헤더/바디), 라우팅(..