웹사이트에 로그인하면 다시 방문해도 로그인 상태가 유지되거나, 장바구니에 담아둔 상품이 그대로 있는 걸 본 적 있나요?
이게 가능한 이유는 쿠키, 세션, 토큰 덕분이에요!
이 세 가지는 사용자의 상태를 기억하는 기술이지만, 작동 방식이 조금씩 다릅니다.
오늘은 쿠키, 세션, 토큰의 차이점과 사용 사례를 쉽게 정리해볼게요! 🚀
1. 쿠키(Cookie) – 작은 데이터 파일! 🍪
✔ 정의
- 쿠키는 사용자의 브라우저에 저장되는 작은 데이터 조각입니다.
- 웹사이트가 방문자의 로그인 정보, 장바구니, 언어 설정 등을 저장하는 용도로 사용하죠.
✔ 특징
- 클라이언트(브라우저)에 저장됨
- 서버가 쿠키를 생성하고, 클라이언트가 요청할 때마다 함께 전송
- 만료 기간을 설정할 수 있음(예: 7일 후 자동 삭제)
- 보안에 취약할 수 있어 민감한 정보 저장은 금지
🎯 예시
- 자동 로그인: "로그인 상태 유지" 옵션을 선택하면 쿠키에 로그인 정보 저장
- 쇼핑몰 장바구니: 로그인하지 않아도 장바구니 상품이 유지됨
- 사이트 방문 기록 저장: 이전 방문 데이터를 기억해 맞춤형 광고 제공
📌 한마디로?
쿠키는 사용자의 브라우저에 저장되어 웹사이트가 나를 기억할 수 있도록 도와주는 작은 파일!
2. 세션(Session) – 서버가 기억하는 사용자 정보! 🗂️
✔ 정의
- 세션은 서버에서 관리하는 사용자 상태 정보입니다.
- 브라우저가 닫히거나, 일정 시간이 지나면 사라져요.
✔ 특징
- 서버에서 관리됨 (클라이언트가 아니라 서버 측에서 저장)
- 사용자가 로그인하면 세션 ID를 발급하고, 이 ID를 쿠키에 저장
- 일정 시간이 지나면 자동으로 삭제됨 (예: 30분)
- 쿠키보다 보안성이 높지만, 서버 부하가 발생할 수 있음
🎯 예시
- 로그인 정보 유지: 로그인하면 서버가 세션을 생성해 로그인 상태를 유지
- 온라인 시험 시스템: 시험 도중 세션이 만료되면 자동 로그아웃
- 은행 사이트: 일정 시간 동안 활동이 없으면 보안을 위해 자동 로그아웃
📌 한마디로?
세션은 서버에서 사용자 정보를 관리하는 방식으로, 로그인 상태 유지에 자주 사용됨!
3. 토큰(Token) – 인증의 새로운 패러다임! 🔑
✔ 정의
- 토큰은 **사용자 인증을 위한 키(문자열)**입니다.
- 로그인할 때 서버에서 토큰을 발급하고, 이후 요청 시 이 토큰을 사용해 인증합니다.
✔ 특징
- 클라이언트(브라우저, 앱 등)에 저장됨
- 쿠키와 다르게 서버에서 세션을 유지할 필요 없음 (무상태)
- 보통 JWT(Json Web Token) 형식으로 많이 사용됨
- 모바일/웹/다양한 환경에서 인증 가능
- 보안성이 높고 확장성이 뛰어남
🎯 예시
- OAuth 로그인: 카카오, 구글 로그인 API 사용 시 토큰 발급
- JWT 인증 시스템: 로그인 후 JWT 토큰을 발급받아 API 요청 시 사용
- 서버 간 인증: API 서버 간의 보안 인증에도 사용
📌 한마디로?
토큰은 서버가 사용자를 기억하지 않아도 인증을 유지할 수 있는 보안 방식!
4. 한눈에 비교하기!
쿠키 | 세션 | 토큰 | |
저장 위치 | 클라이언트(브라우저) | 서버 | 클라이언트(로컬 스토리지, 쿠키) |
사용 목적 | 간단한 사용자 정보 저장 | 로그인 상태 유지 | 사용자 인증(보안 강화) |
유효 기간 | 설정 가능 (예: 7일) | 브라우저 종료 또는 일정 시간 후 만료 | 일반적으로 짧은 유효 기간 |
보안성 | 취약 (조작 가능) | 상대적으로 안전하지만 서버 부담 발생 | 보안성이 높음 (암호화된 JWT 사용) |
서버 부담 | 없음 | 있음 (세션 유지 필요) | 없음 (서버에서 상태 저장 안 함) |
사용 사례 | 자동 로그인, 장바구니 | 로그인 세션 유지 | API 인증, OAuth 로그인 |
5. 언제 쿠키/세션/토큰을 사용할까?
✅ 쿠키가 적합한 경우
- 로그인 상태를 장기적으로 유지할 때 (예: "로그인 유지" 체크)
- 쇼핑몰의 장바구니 같은 간단한 데이터 저장
- 개인화된 환경 설정 (예: 다크 모드, 언어 설정)
✅ 세션이 적합한 경우
- 로그인 상태를 일정 시간 동안 유지할 때
- 보안이 중요한 서비스 (예: 은행 사이트, 결제 시스템)
- 사용자의 행동을 서버에서 관리해야 할 때
✅ 토큰이 적합한 경우
- API 기반 인증 시스템 (예: 모바일, 웹, 서버 간 통신)
- OAuth 기반 로그인 (구글, 카카오, 네이버 로그인)
- 분산 시스템에서 인증이 필요할 때 (예: 마이크로서비스)
6. 한 줄 요약!
📌 쿠키: 사용자의 브라우저에 저장되는 작은 데이터 파일, 간단한 정보 유지에 적합!
📌 세션: 서버에서 사용자 정보를 관리하는 방식, 로그인 유지에 자주 사용됨!
📌 토큰: 서버가 사용자를 기억하지 않아도 인증할 수 있는 방식, 보안성이 뛰어남!
'기획자가 알아야 할 IT지식' 카테고리의 다른 글
API vs. 스크래핑 – 데이터를 가져오는 두 가지 방법! 🔍🚀 (0) | 2025.02.05 |
---|---|
OAuth 인증과 SSO(Single Sign-On) – 로그인의 끝판왕을 알아보자! 🔐🚀 (0) | 2025.02.05 |
API vs. 전문통신, 뭐가 다를까? 🌐💬 (2) | 2025.02.05 |
동기방식(Synchronous) vs. 비동기방식(Asynchronous), 뭐가 다를까? 🔄💥 (0) | 2025.02.04 |
실시간 처리(Real-Time Processing) vs. 배치 처리(Batch Processing), 뭐가 다를까? ⚡⏳ (0) | 2025.02.04 |