본문 바로가기

Study

JWT (JSON Web Tokens)

반응형
SMALL

 

JWT란?

JSON Web Token의 준말입니다.

자바스크립트의 JSON 자료구로를 가지고 있으며, Web Token으로써 사용할 수 있습니다.

 

HTTP는 기본적으로 state-less를 지향합니다.

state-less(무상태)란: 서버-클라이언트 구조에서 서버가 클라이언트의 상태를 가지고 있는 것을 말합니다.

 

- 장점: 서버의 확정성이 높고 대량의 트래픽이 발생해도 대처가 가능합니다.

 

- 단점: 1. state-ful 방식보다 비교적 많은 양의 데이터가 반복적으로 전송되서 네트워크 성능이 저하가 될 수 있습니다.

           2. 데이터 노출로 인한 보안적인 문제도 발생할 수 있습니다.

 

이러한 단점을 보완하기 위해 데이터 압축 및 암호와를 위하여 JWT를 사용합니다.

 

JWT 구성

aaaaa.bbbbb.ccccc // 헤더.페이로드.시그니처

 

구성은 헤더, 페이로드, 시그니처로 나뉩니다.

헤더: 토큰 타입, 암호화 알고리즘 명시

페이로드: JWT에 넣을 데이터, JWT 발급 / 만료일 등 명시

시그니처: 헤더, 페이로드가 변조 되었는지를 확인하는 역할

 

 

토큰 방식은 토큰이 보안을 하여 유저 데이터를 관리합니다.

세션 방식은 서버가 보안을 하여 유저 데이터를 관리합니다.

 

보안성, 성능 같은 면에서 세션이 더 좋은 방식이지만, 비용면에서 JWT를 많이 사용하고 있는 추세 입니다.

사실상 프로젝트를 진행할 때 본인의 프로젝트에 맞는 보안 방식을 사용하면 됩니다.

반응형
LIST

'Study' 카테고리의 다른 글

WebSocket  (0) 2024.01.16
Redis  (1) 2024.01.15