IT/개발자 면접

단일 서버에서 JWT를 피해야 하는 이유

Collin 2025. 11. 19. 08:00
반응형

단일 서버 기반의 간단한 웹 서비스에서는 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