반응형
단일 서버 기반의 간단한 웹 서비스에서는 JWT(Json Web Token) 사용이 오히려 불필요하거나 비효율적일 수 있습니다. 그 이유를 아래와 같이 설명드릴게요:
❌ 단일 서버에서 JWT를 피해야 하는 이유
1. 토큰 무효화가 어렵다
- JWT는 Stateless 인증 방식이라 서버가 토큰 상태를 저장하지 않습니다.
- 로그아웃, 권한 변경, 계정 정지 등 상황에서 즉시 토큰을 무효화할 수 없습니다.
- 단일 서버에서는 세션 기반 인증이 더 적합하며, 세션 삭제만으로 인증을 종료할 수 있습니다.
2. 보안 리스크 증가
- JWT는 클라이언트에 저장되며, 탈취되면 유효 기간 동안 악용될 수 있습니다.
- 단일 서버에서는 세션 쿠키를 HttpOnly로 설정하면 XSS 공격에 더 안전합니다.
3. 복잡도 증가
- JWT는 서명 키 관리, 토큰 발급/검증 로직, 만료 처리 등 구현 복잡도가 높습니다.
- 단순한 서비스에서는 세션 기반 인증이 더 간단하고 유지보수도 쉬움.
4. 토큰 크기 부담
- JWT는 사용자 정보(Payload)를 포함하므로 크기가 큽니다.
- 매 요청마다 헤더에 포함되면 네트워크 비용 증가 및 성능 저하 가능.
5. 불필요한 확장성
- JWT는 마이크로서비스나 분산 시스템에서 유용하지만,
- 단일 서버에서는 세션 저장소가 이미 존재하므로 JWT의 장점이 무의미합니다.
✅ 세션 기반 인증이 더 적합한 이유
항목 세션 기반 인증
| 상태 관리 | 서버가 세션 저장 |
| 무효화 | 세션 삭제로 즉시 가능 |
| 보안 | 쿠키에 저장, HttpOnly 설정 가능 |
| 구현 | Spring Security 등에서 기본 제공 |
| 유지보수 | 단순하고 직관적 |
📌 결론
단일 서버 + 간단한 서비스에서는 JWT의 장점이 거의 발휘되지 않으며, 오히려 보안과 유지보수 측면에서 불리합니다.
이럴 땐 세션 기반 인증이 더 안전하고 효율적입니다.
혹시 Spring Security로 인증을 구현 중이신가요? 세션 방식과 JWT 방식의 설정 예제를 비교해드릴 수도 있어요!
728x90
반응형
'IT > 개발자 면접' 카테고리의 다른 글
| java Overloading과 Overriding (0) | 2025.11.20 |
|---|---|
| DB 복합 인덱스 (0) | 2025.11.20 |
| JWT 장점과 단점 (0) | 2025.11.18 |
| Controller 와 RestController 차이 (0) | 2025.11.17 |
| Interceptor 와 Filter 비교 (0) | 2025.11.17 |