authjwt보안
JWT vs 세션, 2026년의 결론
✨ AI 요약
긴 글, 핵심만 먼저 — 이 글을 3줄로 정리해드려요.
조회 18
"JWT가 모던하고 세션은 구식"이라는 인식이 아직도 있는데, 실제로는 트레이드오프의 문제고, 심지어 대부분의 웹 서비스에는 세션(또는 하이브리드)이 낫다.
JWT의 진짜 장점과 진짜 비용
장점은 하나다 — 서버가 상태를 안 들고 있어도 된다. 검증이 로컬 연산이라 인증 서버 없이 여러 서비스가 토큰을 신뢰할 수 있다. MSA나 서드파티 API에는 확실히 유리하다.
비용은 무효화다. 로그아웃, 강제 탈퇴, 권한 변경을 즉시 반영하려면 결국 서버 측 상태(블랙리스트, 버전 체크)가 필요해지고, 그 순간 "무상태"라는 장점이 사라진다.
세션의 재평가
세션은 무효화가 공짜다. Redis에서 키 하나 지우면 끝. 요즘은 세션 저장소 성능이 병목이 되는 규모 자체가 드물다. Redis 단일 인스턴스로도 초당 수만 조회를 버틴다.
실무 하이브리드 — 짧은 JWT + 서버 검증 포인트
우리가 정착한 구성은 이렇다.
- JWT에는 유저 id만 담고 수명을 짧게 (분 단위)
- 민감한 판단(권한, 탈퇴 여부)은 요청 시점에 DB/캐시에서 재확인
- 프로필 같은 가변 데이터는 절대 토큰에 넣지 않기
토큰에 프로필을 넣으면 이름 하나 바꿔도 재로그인 전까지 낡은 값이 떠다니고, 아바타 URL 같은 걸 넣었다가는 쿠키가 헤더 한도를 넘겨 494 에러를 만난다. 직접 겪었다.
결론
- 단일 웹 서비스: 세션 또는 "짧은 JWT + DB 확인" 하이브리드
- 서비스 간 인증, 서드파티 API: JWT
- 어느 쪽이든 토큰/세션에는 식별자만, 데이터는 저장소에서
인증은 유행이 아니라 실패 모드로 골라야 한다.