지식 · IT·데이터·DX

JWT · JSON 웹 토큰

JSON Web Token / JavaScript Object Notation

📂IT·데이터·DX읽기 2분📊실무🔗관련 2

JWT이란?

한 줄 정의
로그인한 사용자임을 증명하는, 서명된 '디지털 출입증'(JSON Web Token). 토큰 내용은 자바스크립트 객체 표기법(JavaScript Object Notation)으로 담기며, 서버가 매번 확인 안 해도 신원을 검증한다.
이 주제, 사내 교육으로📚 관련 과정💬 교육 문의
⚡ 3줄 요약
  • 서명된 '디지털 출입증'
  • 서버가 매번 확인 안 해도 검증
  • 분산 서비스 인증에 유리

JWT를 쓰면 달라지는 건 서버가 무엇을 기억하느냐입니다. 세션 방식에서는 누가 로그인했는지를 서버나 Redis에 쌓아두고 요청이 올 때마다 조회했지만, JWT는 그 기억을 토큰에 담아 사용자 쪽에 맡깁니다. 덕분에 서버를 몇 대로 늘려도 세션을 공유할 필요가 없고, 로드밸런서가 요청을 어디로 흘려보내든 결과가 같습니다. 대신 한 번 발급한 토큰은 서버가 거둬들일 수단이 없다는 대가가 따라옵니다.

토큰은 헤더·페이로드·서명 세 덩어리를 점으로 이은 문자열입니다. 앞의 두 덩어리는 Base64URL로 인코딩만 돼 있어 누구나 펼쳐 볼 수 있고, 위조를 막는 건 마지막 서명 하나입니다. 서명은 발급과 검증에 같은 비밀키를 쓰는 HS256과, 인증 서버가 개인키로 서명하고 각 서비스는 공개키로 검증만 하는 RS256으로 갈립니다. 검증 주체가 여러 곳으로 흩어질수록 RS256이 맞고, 비밀키를 여러 팀에 복사해 돌리는 순간 그 팀 누구나 토큰을 찍어낼 수 있게 됩니다.

수명 설계도 같이 봐야 합니다. 실무에서는 액세스 토큰을 15~30분으로 짧게 끊고, 2주 안팎의 리프레시 토큰으로 조용히 재발급하는 조합이 흔합니다. 짧을수록 탈취 피해 시간이 줄지만 재발급 트래픽은 늘어, 만료 시간은 보안과 부하 사이의 저울질입니다. OAuth 2.0과 헷갈리기 쉬운데, OAuth는 권한을 위임하는 절차이고 JWT는 그 절차에서 오가는 토큰의 형식일 뿐이라 둘은 대체 관계가 아닙니다.

사고는 보통 '서명했으니 내용도 안전하다'는 믿음에서 납니다. 페이로드는 암호화가 아니라 인코딩이라, jwt.io에 붙여넣는 순간 사번·연봉등급·내부 이메일이 그대로 드러납니다. 더 자주 발목을 잡는 건 로그아웃과 권한 회수가 즉시 반영되지 않는다는 점입니다. 퇴사자 계정을 비활성화해도 이미 나간 토큰은 만료 시각까지 살아 있어, 만료를 8시간으로 잡아둔 회사는 그 8시간 동안 내부 문서가 계속 열립니다. 그래서 결제·인사 같은 민감 API만은 서버에서 한 번 더 계정 상태를 조회하거나 차단 목록을 두는 이중 장치가 필요합니다.

💡 쉽게 말하면
콘서트 팔찌처럼 — 한 번 받으면 매번 신분증 안 보여줘도 통과됩니다.
실무에서 왜 중요한가
서버가 상태를 저장하지 않고도 신원을 검증하게 해, 분산된 현대 서비스의 인증을 단순하게 만듭니다.
유래와 출처

웹 표준(RFC 7519)으로 정의된 토큰 형식으로, API·SPA·마이크로서비스의 확산과 함께 인증 표준이 됐습니다.

사례로 이해하기

가상의 사례로 살펴보겠습니다. 임직원 210명, 연매출 900억 원대 온라인 식품유통 A사입니다. 웹몰·모바일앱·파트너 어드민이 각각 로그인을 따로 들고 있었고, 설 프로모션 때 세션 서버가 두 번 내려가 30분간 전 채널 로그인 차단이 벌어졌습니다. 그 길로 3개월짜리 인증 통합 과제가 열렸습니다.

  1. 플랫폼팀 이 팀장이 피크 시간 인증 조회를 뽑아 보니 초당 1,400건, 그중 92%가 '이 사람 로그인 맞는지'만 묻는 조회였습니다.
  2. 보안 담당 김 과장은 사번·이메일·권한코드를 다 넣자는 초안에 "jwt.io에 붙이면 그대로 보입니다"라며 제동을 걸고, 식별자와 만료 시각만 남겼습니다.
  3. 인증 서버만 개인키로 서명하고 세 채널은 공개키로 검증만 하도록 나눠, 외주 인력이 드나드는 파트너 어드민에는 비밀키를 아예 넘기지 않았습니다.
  4. 액세스 토큰 20분·리프레시 14일로 잡되, 결제와 개인정보 수정 등 API 4개는 토큰 검증 뒤 계정 상태를 한 번 더 조회하도록 예외를 뒀습니다.
  5. 3개월 뒤 인증 DB 조회는 초당 110건으로 떨어지고 프로모션 기간 로그인 장애는 0건, 증설 예정이던 서버 2대를 취소해 연 3,600만 원을 아꼈고 퇴사자 권한 회수도 8시간에서 20분으로 줄었습니다.
관련 용어
이 용어와 연결된 교육
📚디지털 트랜스포메이션나눔경영컨설팅 기업교육 · 대면/온라인과정 보기 →
이 주제로 사내 교육이 필요하신가요?
담당자 맞춤 커리큘럼·견적을 바로 받아보세요.
교육 문의하기
최종 수정 2026-09-13 · 감수 김종혁

자주 묻는 질문

안 됩니다. JWT 내용은 누구나 읽을 수 있어, 민감정보를 넣으면 노출됩니다.
세션은 서버가 상태를 저장, JWT는 토큰 자체에 정보를 담아 서버가 상태를 안 가져도 됩니다.
안 됩니다. JWT 내용은 누구나 읽을 수 있어 민감정보를 넣으면 노출됩니다.
세션은 서버가 상태를 저장, JWT는 토큰 자체에 정보를 담아 서버가 상태를 안 가져도 됩니다.