피드로 돌아가기
Why JWT Exists - What I Figured Out by Looking at Real Numbers
Dev.toDev.to
Security

I/O 50ms를 CPU 5ms로 단축한 Stateless 인증 구조 설계

Why JWT Exists - What I Figured Out by Looking at Real Numbers

Vikrant Kumar2026년 6월 3일5intermediate

Context

Session 기반 인증 방식의 매 요청마다 발생하는 Database 조회로 인한 I/O 병목 현상 분석. 트래픽 증가 시 인증 서버의 Single Point of Failure 위험과 Database 부하 가중 문제 직면.

Technical Solution

  • DB Lookup 제거를 위해 Payload와 Signature 구조의 Stateless한 JWT 도입
  • Server Secret Key를 이용한 HMAC_SHA256 서명 검증으로 데이터 무결성 보장
  • Bcrypt의 의도적인 고비용 CPU 연산(100ms)을 피하기 위한 가벼운 Signature 검증 로직 채택
  • Payload의 Base64 인코딩 특성에 따른 기밀성 부재를 인지하고 민감 정보 제외 설계
  • Token 탈취 및 강제 로그아웃 대응을 위한 Short-lived Access Token과 Refresh Token 조합 운용
  • 즉각적인 권한 회수를 위해 Redis 기반의 Token Blacklist 구조 검토

1. JWT Payload에 비밀번호 등 민감 정보 포함 여부 확인

2. Access Token의 만료 시간을 짧게 설정하고 Refresh Token 전략 수립

3. 즉각적인 토큰 무효화가 필요한 서비스인지 판단하여 Redis Blacklist 도입 검토

4. 인증 로직의 CPU/IO 비용을 측정하여 병목 지점 파악

원문 읽기