백엔드 개발 · 중급
JWT(JSON Web Token)의 구조와 Spring에서의 활용 방법에 대해 설명해주세요.
힌트 · Header, Payload, Signature 구조와 검증 방식을 설명해보세요.
HeaderPayloadSignatureSpring SecurityInterceptor
모범답안
JWT는 웹 표준 인증 방식 중 하나로, Header, Payload, Signature 세 부분으로 구성됩니다.
Header는 토큰 타입과 암호화 알고리즘 정보를 담고, Payload는 사용자 정보나 권한 같은 클레임 정보를 JSON 형태로 담습니다. Signature는 Header와 Payload를 특정 알고리즘으로 암호화한 값으로, 토큰의 유효성을 검증하는 데 사용됩니다.
Spring에서는 Spring Security와 함께 JWT를 많이 사용합니다. 인증 과정에서 JWT를 생성하여 클라이언트에게 전달하고, 클라이언트는 요청 시 JWT를 Header에 담아 보냅니다. 서버는 Interceptor나 Filter를 통해 JWT를 검증하고, 유효한 경우에만 요청을 처리합니다. Spring Security JWT 라이브러리를 사용하면 JWT 생성, 검증 로직을 쉽게 구현할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Java / Spring 면접 질문
- Spring Boot의 자동 설정(Auto Configuration)은 어떻게 동작하나요?
- Java 8의 Stream API와 병렬 스트림(Parallel Stream)의 사용법과 주의사항에 대해 설명해주세요.
- Spring Security의 인증(Authentication)과 인가(Authorization)의 차이점과 동작 방식을 설명해주세요.
- Spring에서 싱글톤 빈의 동시성 문제는 어떻게 해결하나요?
- Java의 Garbage Collection 동작 원리와 G1 GC의 특징에 대해 설명해주세요.
- Java의 synchronized 키워드와 ReentrantLock의 차이점은 무엇인가요?