본문 바로가기

스터디/JWT

세션 VS JWT 기본 개념 및 비교

I. 핵심 개념 및 원리 비교

속성 세션 (Session) 큰 (JWT)
인증 방식 상태 기반 (Stateful) 무상태 기반 (Stateless)
데이터 저장 서버 측 (DB, 메모리, Redis)에 사용자 상태 저장 토큰 자체에 사용자 정보 (Claim) 및 서명 포함
클라이언트 저장 고유한 세션 ID쿠키로 저장 JWT 전체를 HTTP 헤더, 쿠키 또는 로컬 스토리지에 저장
검증 메커니즘 세션 ID로 서버/DB 조회 → 사용자 정보 확인 토큰의 서명(Signature) 검증 → 유효성 확인

 

II. 장점 및 단점

구분 장점 및 단점

구분 장점 단점
세션 1. 시 권한 회수 용이 (서버에서 ID 무효화)
2. HttpOnly 쿠키 사용 시 XSS 공격 방어에 유리
3. 상태 변화 관리(장바구니 등)에 용이
1. 서버 부하 높음 (매 요청마다 DB/저장소 조회)
2. 수평적 확장(Scaling) 시 세션 공유 시스템 구축 필요
토큰 1. 서버 부하 낮음 (DB 조회 불필요, 연산만 사용)
2. 수평적 확장에 매우 유리 (서버 독립적)
3. 모바일 앱, 마이크로서비스 등 다양한 환경에 적합
1. 토큰 만료 전 즉시 회수 어려움
     (블랙리스트, 리프레쉬 토큰 설정 필요)
2. 저장 위치에 따라 보안 취약
     (Local Storage는 XSS에 취약)

 

III. 적용 환경 및 선택 기준

💡 선택 기준: 서비스의 규모, 사용자 상태 변화 빈도, 보안의 민감도 등을 고려하여 결정해야한다.

적용 환경 권장 방식 핵심 이유

대규모 트래픽/확장성 토큰 (JWT) 서버/DB 부하를 최소화하고 무상태로 수평 확장이 용이함 (예: 넷플릭스)
즉각적 권한 통제 세션 강제 로그아웃, 실시간 권한 변경 등 즉각적인 상태 변경이 필수적임 (예: 금융, 관리자 시스템)
마이크로서비스 토큰 (JWT) 서비스 간에 인증을 독립적으로 처리해야 하는 분산 환경에 유리
상태 변화 관리 세션 장바구니, 특정 폼 작성 상태 등 사용자 상태를 서버가 지속 관리해야 하는 경우

IV. JWT 보안 필수 전략

토큰 기반 인증 채택 시, 무상태의 단점을 보완하기 위해 다음 전략이 필수적입니다.

  1. 🔒 Access Token 만료 시간 최소화:
    • Access Token을 15분 이하로 짧게 설정하여 탈취 시 피해 시간을 제한합니다.
  2. 🔑 Refresh Token 사용:
    • 긴 만료 시간을 가진 Refresh Token을 별도로 사용하여 안전한 저장소(예: HttpOnly Cookie)에 보관하고, Access Token 재발급 용도로만 사용합니다.
  3. ⛔ 민감 정보 미포함:
    • JWT Payload는 인코딩될 뿐 암호화되지 않습니다. 비밀번호, 개인 식별 정보 등 민감한 정보는 절대 포함하지 않습니다.

'스터디 > JWT' 카테고리의 다른 글

Bearer 인증 vs. 쿠키 인증 vs. Basic 인증 차이점  (0) 2026.01.14