1. 핵심 개념 복습


2. 세션 vs. JWT 비교

구분 세션(Session) JWT (JSON Web Token)
상태 관리 상태 유지(Stateful) – 서버가 사용자 상태 기억 무상태(Stateless) – 서버가 사용자 상태를 별도 기억하지 않음
정보 저장 위치 서버 메모리, 파일, 데이터베이스 등에 세션 정보 저장 클라이언트 측 토큰(쿠키, 로컬스토리지 등)에 사용자 정보(클레임) 포함
인증 방식 세션 ID를 통해 서버에서 사용자 식별 및 인가 처리 토큰 자체에 담긴 정보와 서명을 통해 서버에서 사용자 식별 및 인가 처리
확장성 여러 대 서버 환경에서 세션 공유(세션 클러스터링) 복잡 여러 대 서버 환경에서도 무상태이므로 상태 공유 필요 없음 (확장 용이)
보안 (탈취 시) 서버에서 해당 세션 ID를 무효화할 수 있음 토큰 자체를 무효화하기 어려움 (블랙리스트 등 별도 대책 필요)
구현 복잡성 서버 측에서 상태 관리 로직 작성 필요 토큰 발급·검증 로직, 탈취 대응(리프레시 토큰 관리) 필요
활용 예시 전통적인 웹 애플리케이션 로그인(서버 템플릿 렌더링) API 통신, 마이크로서비스, 모바일 애플리케이션 인증 등

3. JWT 처리 흐름 (일반적인 방식)