세션

서버가 클라이언트의 상태를 일정 시간 동안 유지하기 위해 저장하는 정보입니다. 로그인 상태 유지 같은 기능에 사용됩니다.

왜 필요한가?

동작 방식

1. 로그인 요청
   클라이언트 ──── ID/PW ────▶ 서버

2. 세션 생성
   서버: 세션 ID 발급 + 세션 저장소에 사용자 정보 저장

3. 세션 ID 전달
   클라이언트 ◀── Set-Cookie: sessionId=abc123 ── 서버

4. 이후 요청
   클라이언트 ──── Cookie: sessionId=abc123 ────▶ 서버
   서버: 세션 저장소에서 abc123 조회 → "아, 홍길동이구나"

세션 저장 위치

위치특징
서버 메모리빠름, 서버 재시작 시 소멸
파일간단, 성능 낮음
DB영구 저장, 느림
Redis빠름 + 영구 저장, 많이 사용

세션 vs 쿠키

항목세션쿠키
저장 위치서버클라이언트(브라우저)
보안상대적으로 안전노출 위험
용량제한 없음약 4KB
만료서버에서 관리브라우저에서 관리

세션 vs JWT

항목세션JWT
상태Stateful (서버 저장)Stateless (토큰에 정보 담김)
확장성서버 늘면 세션 공유 필요서버 확장 쉬움
무효화서버에서 즉시 삭제 가능만료 전까지 유효

세션의 단점

CSLOG에서 보기