쿠키 & 세션

기술노트
Admin (토론 | 기여)님의 2025년 9월 6일 (토) 05:05 판 (Gemini 벌크 업로더로 자동 업로드)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

🍪 쿠키 (Cookie) & 세션 (Session)

쿠키세션은 HTTP의 무상태(Stateless) 특징을 보완하여, 서버가 클라이언트를 식별하고 상태를 유지하기 위해 사용하는 기술입니다. 주로 로그인 정보 유지, 장바구니, 사용자 맞춤 설정 등에 활용됩니다.


🍪 쿠키 (Cookie)

쿠키는 클라이언트(웹 브라우저)에 저장되는 작은 텍스트 파일입니다. 서버가 클라이언트에 데이터를 저장해두었다가, 다음 요청 시 클라이언트가 해당 데이터를 다시 서버로 보내는 방식으로 동작합니다.

  • 저장 위치 : 클라이언트의 웹 브라우저
  • 생명 주기 : 설정된 만료 시간까지 유지됨 (브라우저를 닫아도 유지 가능)
  • 보안 : 텍스트 형태로 저장되어 탈취 및 변조의 위험이 있음
  • 특징 : 서버의 부담을 줄이지만, 보안에 취약하고 저장 용량에 한계가 있음

👤 세션 (Session)

세션은 서버에 저장되는 상태 정보입니다. 서버는 각 클라이언트를 식별하기 위한 고유한 '세션 ID'를 생성하여 쿠키 형태로 클라이언트에게 보내고, 클라이언트는 다음 요청부터 이 세션 ID를 함께 보내 자신을 증명합니다.

  • 저장 위치 : 서버
  • 생명 주기 : 브라우저가 닫히거나 서버에서 설정한 타임아웃 시간이 지나면 만료됨
  • 보안 : 중요한 정보는 서버에 저장되고 클라이언트에게는 식별자만 보내므로 쿠키보다 안전함
  • 특징 : 보안에 강하지만, 사용자가 많아지면 서버의 메모리 부담이 커질 수 있음

🆚 주요 차이점 요약

구분 쿠키 (Cookie) 세션 (Session)
저장 위치 클라이언트 (브라우저) 서버
보안 상대적으로 취약 상대적으로 안전
속도 빠름 상대적으로 느림
서버 부하 적음 많음
생명 주기 설정에 따라 영구적일 수 있음 브라우저 종료 시 만료

💡 개발자 핵심 Point

  • 쿠키는 보안에 덜 민감한 정보(자동 로그인, 팝업 다시 보지 않기 등)를 저장하는 데 적합합니다.
  • 세션은 로그인 정보, 장바구니 등 보안이 중요한 정보를 다룰 때 사용됩니다.
  • 현대 웹 개발에서는 세션의 단점을 보완하고, 분산 환경에 더 적합한 JWT(JSON Web Token)와 같은 토큰 기반 인증 방식도 널리 사용됩니다.