세션 기반 인증 vs 토큰 기반 인증, 뭐가 다를까?

재폰지밥·2025년 8월 28일

공부

목록 보기
19/32
post-thumbnail

🔑 세션 기반 인증 vs 토큰 기반 인증, 뭐가 다를까?

웹 서비스에서 사용자를 인증하는 방식은 크게 두 가지로 나눌 수 있습니다.
바로 세션 기반 인증토큰 기반 인증(JWT 등) 입니다.

두 방식 모두 로그인 후 사용자의 인증 상태를 유지하지만,
저장 위치와 처리 방식이 다르다는 점이 핵심 차이입니다.


1️⃣ 세션 기반 인증

서버에 사용자 상태(Session)를 저장하고, 클라이언트는 세션 ID만 쿠키로 보관하는 방식

  • 로그인 시 서버에서 세션 생성
  • 브라우저는 sessionId를 쿠키로 저장
  • 요청마다 세션 ID를 서버에 전달 → 서버가 세션 상태 확인

특징

  • 서버 메모리에 세션 저장
  • 보안성 상대적으로 높음 (서버 관리)
  • 확장성(Scale-out)에는 불리

2️⃣ 토큰 기반 인증 (JWT)

서버가 인증 후 토큰(JWT)을 발급하고, 클라이언트가 토큰 자체를 보관·전송하는 방식

  • 로그인 시 JWT 발급 (서명 포함)
  • 클라이언트는 토큰을 저장 (LocalStorage/쿠키)
  • 요청마다 HTTP 헤더에 토큰을 넣어 전송
  • 서버는 토큰 검증만 수행 (별도 저장 필요 없음)

특징

  • 서버에 상태 저장 불필요 (Stateless)
  • 확장성과 분산 서비스에 유리
  • 토큰 탈취 시 위험 → 만료/재발급 관리 필요

3️⃣ 비교 정리

구분세션 기반 인증토큰 기반 인증
저장 위치서버클라이언트
확장성불리유리
보안성세션 관리에 의존토큰 탈취 위험 존재
사용 예시전통적인 웹 서비스모바일, API, 마이크로서비스

🧠 정리

  • 세션 기반은 서버 저장 방식, 토큰 기반은 클라이언트 저장 방식
  • 세션은 안정적이지만 확장성에 약함
  • 토큰은 확장성이 뛰어나지만, 탈취 방지 대책이 필요

profile
열심히 살기

0개의 댓글