JWT(Json Web Token)의 장점은 무엇인가요
JWT의 장점은 서버가 인증 상태를 직접 저장하지 않아도 되고, 토큰 자체에 필요한 클레임을 담을 수 있으며, 서명으로 무결성을 검증할 수 있다는 점입니다.
Stateless 인증
JWT를 사용하면 서버가 사용자별 세션을 저장하지 않아도 됩니다. 클라이언트가 요청마다 토큰을 보내고 서버는 서명을 검증해 인증 상태를 판단합니다. 이 방식은 서버 확장과 로드 밸런싱 환경에서 유리합니다.
자체 정보 포함
JWT Payload에는 사용자 ID, 권한, 만료 시간 같은 클레임을 담을 수 있습니다. 필요한 정보가 토큰 안에 있으므로 매 요청마다 세션 저장소를 조회하는 부담을 줄일 수 있습니다.
무결성 검증
JWT는 Signature를 포함합니다. 서버는 서명을 검증해 Header와 Payload가 발급 이후 변조되지 않았는지 확인할 수 있습니다.
단점
JWT는 한 번 발급되면 만료 전까지 유효하기 때문에 강제 로그아웃이나 토큰 무효화가 어렵습니다. 또한 토큰에 정보를 담는 만큼 일반적인 세션 ID보다 크고, Payload는 디코딩 가능하므로 민감 정보를 담으면 안 됩니다.
정리
JWT는 Stateless 인증, 자체 클레임 포함, 서명 기반 무결성 검증이 장점입니다. 대신 탈취, 크기, 즉시 무효화 어려움 같은 단점이 있어 만료 시간과 저장 위치, Refresh Token 전략을 함께 설계해야 합니다.