Web
JWT(Json Web Token)에 대해 알아보자!
hoonylab
2025. 4. 22. 13:42
728x90
반응형
JWT(Json Web Token)의 장단점과 사용 시 주의할 점
JWT(Json Web Token)는 웹 인증 및 정보 전달에 자주 사용되는 토큰 기반 인증 방식입니다. 특히 무상태(Stateless) 인증 방식으로 백엔드 서버의 부담을 줄여주는 장점이 있어, 많은 현대 웹 애플리케이션에서 사용되고 있습니다.
1. JWT란?
JWT는 Header.Payload.Signature 구조를 가진 문자열로, 주로 사용자의 인증 정보를 담아 서버-클라이언트 간 전달하는 데 사용됩니다.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJ1c2VyX2lkIjoxMjMsInJvbGUiOiJ1c2VyIn0.
dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk
- Header: 알고리즘 정보 (예: HS256)
- Payload: 사용자 정보(Claims)
- Signature: 토큰 위변조 방지를 위한 서명
2. JWT의 장점
- 무상태 인증: 서버는 세션 정보를 저장하지 않아도 됨
- 확장성 우수: 마이크로서비스 아키텍처에 적합
- 전송 효율성: JSON 기반이므로 가볍고 빠름
- 자체 정보 포함: 사용자 정보를 직접 담을 수 있음
- 크로스 플랫폼 호환: 다양한 언어와 환경에서 사용 가능
3. JWT의 단점
- 만료 전 강제 로그아웃 어려움: 토큰은 유효기간 내 사용 가능
- 토큰 탈취 시 위험: 토큰이 유출되면 악용 가능
- Payload 암호화되지 않음: 민감 정보 저장 주의
- 길이 증가 문제: Base64 인코딩으로 인해 길이가 길어질 수 있음
4. JWT 사용 시 주의할 점
- HTTPS 필수: 토큰 전송 시 반드시 HTTPS 사용
- 만료 시간 설정: 적절한 토큰 수명 설정으로 보안 강화
- 토큰 저장 위치 신중히 선택: LocalStorage 보다는 HttpOnly 쿠키 권장
- 리프레시 토큰 전략 적용: 액세스 토큰 만료 후 재발급 구조 필요
- 민감 정보 저장 금지: Payload는 암호화되지 않으므로 주의
5. 결론
JWT는 세션 저장 없이 인증을 처리할 수 있어 확장성과 성능 측면에서 많은 장점을 가지고 있습니다. 하지만 그만큼 보안적 고려가 필수이며, 잘못 사용할 경우 큰 보안 취약점이 될 수 있으므로, 사용 시 위의 주의사항을 반드시 숙지해야 합니다.
728x90
반응형