반응형
JWT의 장점은 확장성과 자체 검증 가능성이고, 단점은 보안 취약성과 토큰 무효화 어려움입니다. 사용 목적에 따라 신중한 선택이 필요합니다.
✅ JWT의 장점
- 자체 검증 가능 (Stateless)
서버가 토큰을 직접 검증할 수 있어 세션 저장소가 필요 없음. 분산 시스템에서 유리함. - 빠른 인증 처리
토큰에 사용자 정보가 포함되어 있어 별도 DB 조회 없이 인증 가능. 성능 향상에 기여. - 다양한 전달 방식
JWT는 HTTP 헤더, URL, 쿠키 등 다양한 방식으로 전달 가능. 유연한 구조. - 표준화된 포맷
JSON 기반으로 구조가 명확하고, 다양한 언어/플랫폼에서 쉽게 사용 가능. - 확장성
여러 서비스 간 인증 정보 공유가 쉬워 마이크로서비스 아키텍처에 적합.
⚠️ JWT의 단점
- 토큰 무효화 어려움
서버가 상태를 저장하지 않기 때문에, 토큰을 발급한 후에는 즉시 무효화가 어려움. 로그아웃 처리나 권한 변경 시 문제가 될 수 있음. - 토큰 크기 증가
사용자 정보가 포함되므로 토큰 크기가 커질 수 있고, 네트워크 비용 증가 가능. - 보안 취약점
토큰이 탈취되면 유효 기간 동안 악용 가능. HTTPS 사용과 토큰 저장 방식에 주의 필요. - 복잡한 키 관리
서명 검증을 위한 키 관리가 필요하며, 키 유출 시 전체 시스템이 위험해질 수 있음. - 재사용 공격 가능성
토큰이 유출되면 재사용 공격에 노출될 수 있으며, 이를 방지하기 위한 추가적인 보안 조치가 필요.
🧠 언제 JWT를 쓰면 좋을까?
- 마이크로서비스 환경: 서비스 간 인증 정보 공유가 필요할 때
- 모바일/SPA 앱: 세션 저장소 없이 인증 처리하고 싶을 때
- 서버 확장성 중시: Stateless 인증 구조가 필요한 경우
🛑 언제 피하는 게 좋을까?
- 로그아웃/권한 변경이 잦은 시스템
- 보안 민감한 서비스 (예: 금융, 의료)
- 단일 서버 기반의 간단한 웹 서비스
필요하시면 JWT를 사용하는 Spring Security 설정이나 Redis를 활용한 토큰 무효화 전략도 함께 설명드릴 수 있어요! 원하시나요?
Sources:
728x90
반응형
'IT > 개발자 면접' 카테고리의 다른 글
| DB 복합 인덱스 (0) | 2025.11.20 |
|---|---|
| 단일 서버에서 JWT를 피해야 하는 이유 (0) | 2025.11.19 |
| Controller 와 RestController 차이 (0) | 2025.11.17 |
| Interceptor 와 Filter 비교 (0) | 2025.11.17 |
| Spring MVC Model (0) | 2023.12.17 |