Home / AI / AI 용어사전 / JWT — 로그인 상태를 토큰 하나로 유지하는 원리
TERM
JWT — 로그인 상태를 토큰 하나로 유지하는 원리
On this page
소셜 로그인을 마친 뒤 페이지를 새로고침해도, 심지어 브라우저를 닫았다 열어도 로그인이 유지되는 경험을 해봤을 것이다. 이 마법의 핵심이 바로 JWT(JSON Web Token)다.
정의
JWT(JSON Web Token, 제이더블유티)는 두 시스템 간에 정보를 안전하게 전달하기 위한 컴팩트한 토큰 형식이다. 로그인 인증 상태를 서버가 세션으로 저장하지 않고, 토큰 하나로 클라이언트가 자신을 증명하는 방식(Stateless Authentication)에 쓰인다.
RFC 7519 표준에 정의되어 있으며, header.payload.signature 세 부분을 점(.)으로 연결한 Base64 인코딩 문자열로 구성된다.
JWT의 구조
전형적인 JWT는 다음과 같은 형태다:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiJ1c2VyXzEyMyIsInJvbGUiOiJhZG1pbiIsImV4cCI6MTc0NTAwMDAwMH0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c각 파트를 Base64 디코딩하면:
- Header (헤더): 토큰 타입(
JWT)과 서명 알고리즘 명시
{ "alg": "HS256", "typ": "JWT" }- Payload (페이로드): 사용자 정보(Claim). 누구인지, 어떤 권한인지, 만료 시각 등
{ "sub": "user_123", "role": "admin", "exp": 1745000000 }- Signature (서명): 헤더 + 페이로드를 서버의 비밀 키(Secret Key)로 HMAC-SHA256 서명. 변조 여부 검증용
서명이 일치하면 서버는 이 토큰을 신뢰한다. 서버는 토큰을 저장하지 않아도 된다.
세션 방식 vs JWT 방식
| 항목 | 세션(Session) | JWT | |---|---|---| | 저장 위치 | 서버 메모리/DB | 클라이언트(브라우저) | | 서버 부하 | 높음 (조회 필요) | 낮음 (검증만) | | 수평 확장 | 공유 세션 스토리지 필요 | 서버 간 공유 불필요 | | 토큰 무효화 | 즉시 가능 | 만료까지 유효 (단점) | | 적합한 환경 | 전통 웹, 소규모 | API 서버, MSA, 모바일 |
JWT의 핵심 단점은 토큰 발급 후 즉시 무효화가 어렵다는 점이다. 토큰이 탈취되더라도 만료 시각까지 유효하다. 이를 보완하기 위해 짧은 만료(15~60분)의 Access Token + 장기(7~30일) Refresh Token 쌍을 사용하는 패턴이 일반적이다.
AI 서비스에서의 JWT
llm API 서비스나 AI 애플리케이션에서 사용자 인증에 JWT를 많이 활용한다:
- OpenAI, Anthropic API는 API Key 방식을 쓰지만, 자체 AI 서비스를 만들 때 사용자별 권한 관리에 JWT 사용
- supabase, Firebase 같은 BaaS는 JWT를 기본 인증 토큰으로 사용
- AI 에이전트가 특정 사용자의 컨텍스트를 유지할 때 JWT payload에 세션 ID를 포함시키는 패턴
활용 사례
- 소셜 로그인: Google/Kakao OAuth 후 발급된 사용자 정보를 JWT로 인코딩, 이후 API 호출에 사용
- API 인증:
Authorization: Bearer <JWT>헤더로 REST API 호출 인증 - 마이크로서비스: 여러 서비스 간 사용자 인증 정보를 JWT 하나로 전달 (공통 Secret 공유)
관련 용어
- oauth — 소셜 로그인 표준 프로토콜. JWT를 토큰으로 활용
- http — JWT를 전달하는 프로토콜 (Authorization 헤더)
- session — JWT와 대비되는 서버 측 인증 방식
- api — JWT로 인증하는 REST API
백링크
이 문서를 참조하는 다른 페이지입니다.
쿠키(Cookie) — 브라우저가 나를 기억하는 방식의 정체
로그인 상태가 브라우저를 껐다 켜도 유지된다. AI 서비스가 내 설정과 최근 대화를 기억한다. 이 모든 기억의 실체가 쿠키다.
OAuth — 소셜 로그인 뒤에 숨은 보안 표준 이해하기
'구글로 로그인' 버튼을 누르는 순간, 비밀번호 한 글자도 제3자 앱에 노출되지 않는다. 이 흐름의 핵심은 OAuth 2.0이다. 권한을 위임하되 자격증명(credential)은 공유하지 않는 이 표준이 현대 인터넷 인증의 기반을 이룬다. AI 자동화 도구, 소셜 로그인, AP
OAuth — 소셜 로그인 뒤에 숨은 보안 표준 이해하기
'구글로 로그인' 버튼을 누르는 순간, 비밀번호 한 글자도 제3자 앱에 노출되지 않는다. 이 흐름의 핵심은 OAuth 2.0이다. 권한을 위임하되 자격증명(credential)은 공유하지 않는 이 표준이 현대 인터넷 인증의 기반을 이룬다. AI 자동화 도구, 소셜 로그인, AP
인증 vs 인가 — AI 서비스 보안이 두 단계로 나뉘는 이유
로그인에 성공했는데 "권한이 없습니다" 오류가 뜬 경험이 있다면, 그 순간이 바로 인증과 인가가 다른 두 개의 문이라는 사실을 체감한 것이다. 첫 번째 문은 통과했지만 두 번째 문은 열리지 않았다.
인증 vs 인가 — AI 서비스 보안이 두 단계로 나뉘는 이유
로그인에 성공했는데 "권한이 없습니다" 오류가 뜬 경험이 있다면, 그 순간이 바로 인증과 인가가 다른 두 개의 문이라는 사실을 체감한 것이다. 첫 번째 문은 통과했지만 두 번째 문은 열리지 않았다.
HTTP 상태 코드 — 200·404·500이 보내는 신호 해독법
AI API를 호출했더니 응답으로 숫자 하나가 돌아온다. 200이면 안도하고, 404면 당혹하고, 500이면 막막해진다. 이 세 자리 숫자가 HTTP 통신의 상태를 압축해서 전달하는 언어다.
HTTP 상태 코드 — 200·404·500이 보내는 신호 해독법
AI API를 호출했더니 응답으로 숫자 하나가 돌아온다. 200이면 안도하고, 404면 당혹하고, 500이면 막막해진다. 이 세 자리 숫자가 HTTP 통신의 상태를 압축해서 전달하는 언어다.