JWT(Json Web Token)의 장점은 무엇인가요

JWT의 장점은 서버가 인증 상태를 직접 저장하지 않아도 되고, 토큰 자체에 필요한 클레임을 담을 수 있으며, 서명으로 무결성을 검증할 수 있다는 점입니다.

Stateless 인증

JWT를 사용하면 서버가 사용자별 세션을 저장하지 않아도 됩니다. 클라이언트가 요청마다 토큰을 보내고 서버는 서명을 검증해 인증 상태를 판단합니다. 이 방식은 서버 확장과 로드 밸런싱 환경에서 유리합니다.

자체 정보 포함

JWT Payload에는 사용자 ID, 권한, 만료 시간 같은 클레임을 담을 수 있습니다. 필요한 정보가 토큰 안에 있으므로 매 요청마다 세션 저장소를 조회하는 부담을 줄일 수 있습니다.

무결성 검증

JWT는 Signature를 포함합니다. 서버는 서명을 검증해 Header와 Payload가 발급 이후 변조되지 않았는지 확인할 수 있습니다.

단점

JWT는 한 번 발급되면 만료 전까지 유효하기 때문에 강제 로그아웃이나 토큰 무효화가 어렵습니다. 또한 토큰에 정보를 담는 만큼 일반적인 세션 ID보다 크고, Payload는 디코딩 가능하므로 민감 정보를 담으면 안 됩니다.

정리

JWT는 Stateless 인증, 자체 클레임 포함, 서명 기반 무결성 검증이 장점입니다. 대신 탈취, 크기, 즉시 무효화 어려움 같은 단점이 있어 만료 시간과 저장 위치, Refresh Token 전략을 함께 설계해야 합니다.

추가 학습 자료

CSLOG에서 보기