쿠키? 세션? 토큰?

이건우·2025년 3월 21일

웹 프로그래밍

목록 보기
29/43

웹 개발에서 사용자 인증과 상태 유지를 위해 쿠키, 세션, 토큰을 사용합니다.
각각의 개념과 차이점을 명확히 이해하면 보안과 사용자 경험을 개선해 보아요!

🍪쿠키(Cookie)?

클라이언트(브라우저)에 저장되는 작은 데이터 조각입니다.
주로 서버가 클라이언트에 정보를 저장하도록 지시해요!
다음 요청 시 클라이언트가 쿠키를 자동으로 요청 헤더에 포함하여
사용자의 정보 및 설정을 서버에 알려요!

🔸 특징

만료 기간 설정 가능 (영구 저장 or 세션 종료 시 삭제)
JavaScript로 접근 가능 (보안 이슈 발생 가능)
브라우저 별로 관리됨

🔸 사용 예

자동 로그인 기능
최근 본 상품 저장
다크&라이트 모드 설정 저장 등


🪪세션(Session)?

서버에서 생성되어 서버에 저장되는 사용자 상태 정보입니다.
클라이언트는 세션 ID를 쿠키로 저장하고 서버에 전달하여
서버가 어떤 사용자인지를 인증해요!

🔸 특징

서버 자원 사용 (메모리나 Redis 등)
클라이언트는 세션 ID만 있으면 된다.
일정 시간 사용 없을 시 자동 만료됨.

🔸 사용 예

로그인 상태 유지
사용자 임시 장바구니 정보 저장


📦토큰(Token)?

사용자 인증 정보를 담은 문자열 (주로 JWT 형태 사용) 입니다!
주로 Stateless한 인증(상태 정보를 저장 안하는) 방식에서 사용해요!
Authorization 헤더 또는 쿠키에 포함하여 서버에 전달해요!

🔸 특징

서버는 토큰만 검증, 세션/DB 불필요 (Stateless)
보통 만료 시간이 포함되고 서명되어 위변조 방지
쿠키/로컬스토리지 등 원하는 위치에 저장 가능

🔸 사용 예

모바일/SPA 환경에서 로그인 인증
마이크로서비스 간 인증 정보 전달


쿠키 & 세션 & 토큰 요약!

항목저장 위치보안 수준서버 의존주로 쓰이는 곳
쿠키클라이언트(브라우저)낮음없음간단한 사용자 설정 저장
세션서버중간있음로그인, 장바구니 등
토큰 (JWT)클라이언트 (쿠키/로컬 등)높음없음 (Stateless)모바일, SPA 인증 시스템 등

어디에서 어떤 정보를 저장하느냐에 따라서
사용하는 종류와 방법이 달라요!
현재 진행하는 프로젝트에 맞는 형태로 알맞게 사용하는것이 중요합니다!

profile
새싹개발자

0개의 댓글