728x90
안녕하세요 logro 입니다 :)
오늘은 로그인할 때 자주 들리는 용어,
“세션 기반 인증”과 “토큰 기반 인증”의 차이를 알아보려고 해요.
이 둘은 로그인 후 인증 상태를 유지하는 방식인데,
처음엔 이름도 비슷하고 개념도 헷갈리기 쉽죠 😵💫
하지만! 비유와 함께 하나씩 살펴보면
누구나 쉽게 이해할 수 있어요 🔍
🏪 먼저 비유부터 들어볼까요?
로그인을 놀이공원 입장이라고 생각해봅시다 🎢
🎟️ 세션 기반 인증
→ 놀이공원에서 입장권을 티켓박스에 맡겨놓고,
입장할 때마다 “저 티켓 맡긴 사람입니다~” 하고 인증하는 방식!
- 사용자는 브라우저에 세션 ID 쿠키를 가지고 다녀요.
- 서버는 그 세션 ID를 보고 “아, 이 사용자 세션 있네!” 하고 입장 허용
- 세션 데이터는 서버에 저장됨
💳 토큰 기반 인증 (JWT 등)
→ 티켓을 직접 들고 다니면서, 입장할 때 “이게 내 티켓이에요!” 하고 보여주는 방식!
- 서버는 로그인할 때 토큰을 발급해주고
- 사용자는 그 토큰을 클라이언트(브라우저, 앱 등)에 저장
- 요청마다 토큰을 HTTP 헤더에 넣어서 전송
- 토큰 안에 정보가 다 담겨 있어서 서버는 별도 저장이 필요 없음!
📦 핵심 구조 비교
항목 | 세션 기반 인증 | 토큰 기반 인증 (JWT 등) |
인증 정보 저장 위치 | 서버 (메모리, DB 등) | 클라이언트 (브라우저, 앱 등) |
상태 유지 방식 | 상태 유지 (Stateful) | 무상태 (Stateless) |
확장성 | 낮음 (서버에 세션 저장 필요) | 높음 (서버 저장 불필요) |
보안 | 상대적으로 안전 (서버 통제 가능) | 토큰 탈취 시 위험 |
모바일 호환성 | 낮음 | 높음 |
✅ 언제 어떤 걸 쓰면 좋을까?
세션 기반 인증이 어울리는 경우
- 소규모 웹사이트, 관리용 백오피스
- 로그인 상태를 엄격하게 서버에서 관리하고 싶을 때
토큰 기반 인증이 어울리는 경우
- 모바일 앱, SPA(싱글 페이지 애플리케이션)
- 마이크로서비스 구조, API 서버
⚠️ 주의할 점
- 토큰 기반 인증은 토큰이 유출되면 누구든 사용 가능하기 때문에
꼭! HTTPS 사용과 짧은 만료시간 + 리프레시 토큰 설계가 필요해요. - 세션 기반은 서버 리소스를 많이 차지할 수 있어서
사용자 수가 많을수록 관리가 번거로워질 수 있어요.
🧠 정리하자면!
세션 기반 | 서버가 기억한다! |
토큰 기반 | 클라이언트가 들고 다닌다! |
둘 다 장단점이 있기 때문에
서비스 규모, 구조, 목적에 따라 선택하면 됩니다 😊
728x90
'웹 & 인터넷 기초' 카테고리의 다른 글
🖥️ HTML & CSS 기초 튜토리얼: 나만의 첫 웹페이지 만들기 (0) | 2025.04.20 |
---|---|
QR코드는 어떻게 정보를 담을까? (0) | 2025.04.10 |
클라우드 컴퓨팅, 도대체 어떻게 돌아가는 걸까? ☁️ (2) | 2025.04.08 |
브라우저가 보내는 메시지📨, HTTP 요청과 응답이 뭔가요? (0) | 2025.04.04 |
헷갈리는 REST API, 일상에 비유해서 쉽게 이해해보자! (0) | 2025.03.28 |