JWT (JSON Web Token)
핵심 인사이트 (3줄 요약)
JSON 기반의 자가 수용적 인증 토큰. 서버 상태 없이 사용자 인증 정보 전달. 현대 웹/모바일 인증의 표준.
📝 기술사 모의답안 (2.5페이지 분량)
📌 예상 문제
"JWT (JSON Web Token)의 개념과 핵심 원리를 설명하고, 비교 분석 및 실무 적용 방안을 기술하시오."
Ⅰ. 개요
1. 개념
JWT(JSON Web Token)는 JSON 객체를 사용하여 당사자 간에 정보를 안전하게 전송하기 위한 개방형 표준(RFC 7519)으로, 특히 인증 및 정보 교환에 널리 사용되는 토큰 형식이다.
비유: "디지털 여권" - 본인 확인 정보가 내장된 전자 문서
Ⅱ. 구성 요소 및 핵심 원리
2. JWT 구조
┌────────────────────────────────────────────────────────┐
│ JWT 구조 │
├────────────────────────────────────────────────────────┤
│ │
│ JWT = Header.Payload.Signature │
│ │
│ 예시: │
│ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. │
│ eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4ifQ. │
│ SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c │
│ │
│ ┌────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 1. Header (헤더): │ │
│ │ ┌────────────────────────────────────────┐ │ │
│ │ │ { │ │ │
│ │ │ "alg": "HS256", // 알고리즘 │ │ │
│ │ │ "typ": "JWT" // 토큰 타입 │ │ │
│ │ │ } │ │ │
│ │ └────────────────────────────────────────┘ │ │
│ │ → Base64Url 인코딩 │ │
│ │ │ │
│ │ 2. Payload (페이로드): │ │
│ │ ┌────────────────────────────────────────┐ │ │
│ │ │ { │ │ │
│ │ │ "sub": "1234567890", // 주체 │ │ │
│ │ │ "name": "John Doe", // 이름 │ │ │
│ │ │ "iat": 1516239022, // 발급시간 │ │ │
│ │ │ "exp": 1516242622 // 만료시간 │ │ │
│ │ │ } │ │ │
│ │ └────────────────────────────────────────┘ │ │
│ │ → Base64Url 인코딩 │ │
│ │ │ │
│ │ 3. Signature (서명): │ │
│ │ ┌────────────────────────────────────────┐ │ │
│ │ │ HMACSHA256( │ │ │
│ │ │ base64UrlEncode(header) + "." + │ │ │
│ │ │ base64UrlEncode(payload), │ │ │
│ │ │ secret │ │ │
│ │ │ ) │ │ │
│ │ └────────────────────────────────────────┘ │ │
│ │ → 비밀키로 서명 │ │
│ │ │ │
│ └────────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────┘
3. 등록된 클레임 (Registered Claims)
| 클레임 | 설명 |
|---|---|
| iss | 발급자 (Issuer) |
| sub | 주제 (Subject) |
| aud | 수신자 (Audience) |
| exp | 만료 시간 (Expiration) |
| nbf | 활성 시간 (Not Before) |
| iat | 발급 시간 (Issued At) |
| jti | JWT ID |
4. JWT 인증 흐름
┌────────────────────────────────────────────────────────┐
│ JWT 인증 흐름 │
├────────────────────────────────────────────────────────┤
│ │
│ 👤 클라이언트 🖥️ 서버 🗄️ 데이터베이스 │
│ │ │ │ │
│ │ 1. 로그인 │ │ │
│ │ (id/pw) │ │ │
│ │─────────────→│ │ │
│ │ │ │ │
│ │ │ 2. 사용자 확인 │
│ │ │─────────────→│ │
│ │ │ │ │
│ │ │ 3. 사용자 정보 │
│ │ │←─────────────│ │
│ │ │ │ │
│ │ │ 4. JWT 생성 │
│ │ │ (secret로 서명) │
│ │ │ │ │
│ │ 5. JWT 반환 │ │ │
│ │←─────────────│ │ │
│ │ │ │ │
│ │ 6. 요청 + JWT │ │ │
│ │ (Authorization: Bearer <token>) │
│ │─────────────→│ │ │
│ │ │ │ │
│ │ │ 7. 서명 검증 │
│ │ │ (서버 상태 불필요) │
│ │ │ │ │
│ │ 8. 응답 │ │ │
│ │←─────────────│ │ │
│ │ │ │ │
│ │
└────────────────────────────────────────────────────────┘
Ⅲ. 기술 비교 분석
5. JWT vs 세션
| 특징 | JWT | 세션 |
|---|---|---|
| 저장 위치 | 클라이언트 | 서버 |
| 서버 상태 | Stateless | Stateful |
| 확장성 | 우수 (분산 용이) | 복잡 (세션 공유 필요) |
| 보안 | 토큰 탈취 위험 | 세션 하이재킹 |
| 크기 | 상대적 큼 | 작음 (세션 ID만) |
| 즉시 폐기 | 어려움 | 용이 |
6. 장단점
| 장점 | 단점 |
|---|---|
| Stateless | 토큰 크기 |
| 확장성 | 즉시 폐기 어려움 |
| 크로스 도메인 | 보안 민감 |
| 모바일 친화적 | 페이로드 암호화 X |
Ⅳ. 실무 적용 방안
**JWT (JSON Web Token)**의 실무 적용 시나리오와 고려사항.
Ⅴ. 기대 효과 및 결론
| 효과 영역 | 내용 | 정량적 목표 |
|---|---|---|
| 비즈니스 혁신 | 디지털 전환 가속화 및 신규 비즈니스 모델 창출 | 시장 출시 시간(TTM) 50% 단축 |
| 운영 효율 | AI·자동화로 수작업 제거 및 의사결정 지원 강화 | 운영 비용 30~40% 절감 |
| 경쟁력 강화 | 최신 기술 도입으로 시장 경쟁 우위 확보 | 고객 만족도(CSAT) 20점 향상 |
결론
**JWT (JSON Web Token)**은(는) ICT 융합 기술은 AI-First 전략, 탄소 중립(Net Zero) 목표, EU AI Act 등 글로벌 규제 환경에 대응하면서 기술적 혁신과 사회적 책임을 동시에 실현하는 방향으로 발전하고 있다.
※ 참고 표준: NIST AI RMF 1.0, EU AI Act(2024), ISO/IEC 42001(AI 관리 시스템), 과기정통부 AI 기본법
어린이를 위한 종합 설명
JWT를 쉽게 이해해보자!
JSON 기반의 자가 수용적 인증 토큰. 서버 상태 없이 사용자 인증 정보 전달. 현대 웹/모바일 인증의 표준.
왜 필요할까?
기존 방식의 한계를 넘기 위해
어떻게 동작하나?
복잡한 문제 → JWT 적용 → 더 빠르고 안전한 결과!
핵심 한 줄:
JWT = 똑똑하게 문제를 해결하는 방법
비유: JWT은 마치 요리사가 레시피를 따르는 것과 같아. 혼란스러운 재료들을 정해진 순서대로 조합하면 → 맛있는 요리(최적 결과)가 나오지! 🍳