[학습] JWT 개념

김동혁·2025년 12월 7일

🔐 JWT란?

JWT(JSON Web Token)는 JSON 객체를 사용하여 정보를 안전하게 전송하기 위한 개방형 표준(RFC 7519)이다.
주로 사용자 인증에 사용된다.

📋 인증 프로세스

1단계: 로그인 요청

사용자가 ID/비밀번호로 로그인 요청을 보낸다.

2단계: JWT 토큰 발급

서버가 인증 정보를 확인한 후 JWT 토큰을 생성하여 클라이언트에게 전달한다.
클라이언트는 이 토큰을 저장한다(보통 localStorage나 쿠키에)

3단계: API 요청

이후 모든 API 요청 시 HTTP Header에 JWT 토큰을 포함하여 전송한다.
형식: Authorization: Bearer "token"

4단계: 검증 및 응답

서버는 토큰의 서명을 검증하여 위변조 여부를 확인한다
검증에 성공하면 요청한 데이터를 응답한다

🧩 JWT 구조

JWT는 .으로 구분된 세 부분으로 구성된다:

Header (헤더)

토큰 타입과 암호화 알고리즘 정보를 담는다
예: {"alg": "HS256", "typ": "JWT"}

Payload (페이로드)

실제 전달할 데이터(사용자 ID, 권한, 만료시간 등)를 담는다
예: {"userId": "123", "exp": 1234567890}

Signature (서명)

Header와 Payload를 인코딩한 값을 비밀키로 해싱하여 생성한다
토큰의 무결성을 보장한다

✅ JWT의 장점

  • 무상태(Stateless): 서버가 세션을 저장할 필요가 없어 확장성이 좋다
  • 자가 수용적: 토큰 자체에 필요한 정보가 포함되어 있다
  • 모바일 친화적: 쿠키 사용이 어려운 환경에서도 사용 가능하다

⚠️ 주의사항

  • Payload는 암호화되지 않으므로 민감한 정보를 담지 말아야 한다
  • 토큰이 탈취되면 만료 전까지 악용될 수 있으므로 HTTPS 사용이 필수이다
  • 적절한 만료 시간 설정이 중요하다

0개의 댓글