보안 · 중급
세션 기반 인증과 토큰 기반 인증의 차이점과 장단점을 설명해주세요.
힌트 · 서버 상태 유지 여부, 확장성, 보안(탈취 시 대응) 측면에서 비교해보세요.
세션쿠키토큰JWTStateless
모범답안
면접관님, 세션 기반 인증과 토큰 기반 인증은 웹 애플리케이션에서 사용자 인증을 처리하는 방식인데요, 주요 차이점은 서버의 상태 유지 여부에 있습니다.
세션 기반 인증은 서버가 사용자 세션 정보를 저장하고 관리합니다. 사용자가 로그인하면 서버는 세션 ID를 생성하여 쿠키를 통해 클라이언트에 전달하고, 이후 요청 시 쿠키에 담긴 세션 ID를 통해 사용자를 식별합니다. 장점으로는 구현이 비교적 간단하다는 점이 있지만, 서버에 세션 정보를 저장해야 하므로 서버 확장에 제약이 있을 수 있습니다. 또한, 세션 ID가 탈취될 경우 공격자가 해당 세션을 사용할 수 있습니다.
반면, 토큰 기반 인증은 서버가 사용자 정보를 담은 토큰(예: JWT)을 발급하고, 클라이언트는 이 토큰을 저장하여 요청 시마다 서버에 전달합니다. 서버는 토큰의 유효성을 검증하여 사용자를 인증합니다. 서버는 토큰 자체를 저장하지 않으므로 Stateless하며, 확장에 용이합니다. 토큰이 탈취되더라도 토큰 만료 시간을 짧게 설정하거나, 토큰을 무효화하는 방식으로 대응할 수 있습니다. 다만, 세션 기반 인증에 비해 구현이 복잡할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.