웹사이트에 로그인하면 새로고침해도 그대로 로그인 상태가 유지되죠?
“브라우저는 어떻게 내가 로그인한 걸 기억할까?”
이때 등장하는 게 바로 쿠키(Cookie), 세션(Session), 그리고 요즘 많이 쓰는 **JWT(Json Web Token)**입니다.
오늘은 이 세 가지의 차이를 아주 쉽게 풀어볼게요!
1️⃣ 왜 로그인 상태를 저장해야 할까?
HTTP는 **“요청하고 응답하면 끝”**인 단순한 통신 방식이에요.
즉,
- 내가 로그인한 뒤에도
- 다음 요청 때는 “누가 요청했는지” 서버가 알 수 없음 😅
그래서 사용자를 구분할 방법이 필요합니다.
👉 그걸 해결하는 기술이 쿠키, 세션, JWT예요.
2️⃣ 쿠키(Cookie)란?
✅ 브라우저에 저장되는 작은 메모
- 서버가 “이 사용자는 로그인했어”라고 쿠키를 발급
- 브라우저는 쿠키를 저장하고
- 다음 요청마다 쿠키를 함께 보냄
- 서버는 쿠키를 보고 “아, 이 사람은 로그인한 사용자구나” 확인
👉 즉, 브라우저가 서버에게 “저 로그인한 사람 맞아요”라고 보여주는 증거
3️⃣ 세션(Session)이란?
✅ 서버에서 관리하는 사용자 정보
- 사용자가 로그인하면,
서버가 세션 저장소에 사용자 정보 저장
→ 그리고 **세션ID(임시번호)**만 브라우저에 쿠키로 줌 - 다음 요청 때 브라우저가 세션ID 보내면,
서버가 세션 저장소에서 “이건 누구 정보인지” 확인
👉 즉, 브라우저에는 세션ID만 저장하고, 실제 정보는 서버가 관리
4️⃣ JWT(Json Web Token)이란?
✅ 사용자 정보를 암호화해서 토큰에 담아 전달
- 로그인 성공 시 JWT 토큰 발급
- 이 토큰 안에 “누구인지 + 언제 발급됐는지” 정보가 포함
- 이후 요청 때 토큰을 보내면 서버가 검증하고 처리
- 서버가 별도로 세션 저장소를 관리하지 않아도 됨
👉 즉, 서버가 기억하지 않아도 되는 ‘자급자족형 로그인 정보’
5️⃣ 쉽게 비유하면?
- 쿠키 = 이름표
- “나는 로그인한 사용자야”라고 브라우저가 직접 붙이고 다님
- 세션 = 보관증
- 브라우저는 보관증(세션ID)만 가지고,
- 실제 정보는 **서버 창고(세션 저장소)**에 보관
- JWT = 비밀이 담긴 봉투
- 서버가 봉투에 정보+서명해서 줌
- 브라우저가 봉투를 다시 보여주면, 서버가 열어보고 확인
6️⃣ 언제 뭘 쓰면 좋을까?
✅ 쿠키
- 단순한 정보 저장
- 자동로그인, 간단한 설정값 저장
✅ 세션
- 중요한 로그인 정보
- 서버 메모리가 필요 (많아지면 부담됨)
✅ JWT
- 서버를 여러 대(분산환경)로 운영할 때 유리
- 모바일 앱/REST API 인증에 많이 사용
- 단, 토큰 크기가 커질수록 네트워크 비용 증가
7️⃣ 간단 정리
구분 | 저장 위치 | 장점 | 단점 |
쿠키 | 브라우저 | 간단, 빠름 | 보안 취약 |
세션 | 서버 + 브라우저 | 상대적 보안 ↑ | 서버 부담 ↑ |
JWT | 브라우저 | 서버 부담 X, 확장성 ↑ | 토큰 탈취 시 위험 |
👉 요즘은 세션 + JWT 혼합 방식으로도 많이 사용합니다.
다음 글에서는 GET vs POST, 언제 어떤 메서드를 써야 할까?
도 쉽게 풀어서 설명할게요!
궁금한 점은 댓글로 남겨주세요 😊
'IOT' 카테고리의 다른 글
REST API가 뭔가요? 초보도 이해할 수 있게 쉽게 설명 (2) | 2025.07.19 |
---|---|
GET vs POST, 언제 어떤 메서드를 써야 할까? (0) | 2025.07.19 |
HTTP vs HTTPS, S 하나 차이로 뭐가 달라질까? (3) | 2025.07.19 |
제목 앞에 이모지 넣어도 검색 노출(SEO)에 지장이 있을까? (2) | 2025.07.19 |
프론트엔드 vs 백엔드 한 줄 정의 (1) | 2025.07.18 |