본문 바로가기

[IT/Programming]

10월 28일 2기 위클리 페이퍼 - 세션 기반 인증과 토큰 기반 인증의 차이점을 설명하세요. 어떤 상황에서 각각을 사용하면 좋을지 예를 들어 설명해 주세요.

728x90
반응형
# 10월 28일 2기 위클리 페이퍼 - 세션 기반 인증과 토큰 기반 인증의 차이점을 설명하세요. 어떤 상황에서 각각을 사용하면 좋을지 예를 들어 설명해 주세요. ## TOC ## 세션 기반 인증 (Session-Based Authentication) 특징:
서버가 사용자의 상태를 관리하고, 세션 아이디를 클라이언트에 전달합니다. 세션 아이디는 쿠키에 저장되어, 클라이언트가 요청을 보낼 때마다 서버에 포함됩니다. 서버는 세션 저장소를 사용하여 세션 아이디를 통해 사용자를 식별합니다.
사용 상황:
상태를 유지해야 하는 경우: 쇼핑카트와 같이 사용자 상태를 지속적으로 추적해야 하는 애플리케이션. 보안이 중요한 애플리케이션: 세션 정보가 서버에 저장되므로, 서버 측에서 직접 관리할 수 있어 보안 관리가 용이합니다. 브라우저 기반 애플리케이션: 대부분의 브라우저는 쿠키를 지원하여 세션 기반 인증을 쉽게 구현할 수 있습니다.
## 토큰 기반 인증 (Token-Based Authentication) 특징:
서버가 사용자를 인증하면 JSON 웹 토큰(JWT)을 생성하여 클라이언트에 전달합니다. 클라이언트는 토큰을 로컬 저장소나 세션 저장소에 저장합니다. 클라이언트는 이후 요청을 보낼 때마다 HTTP 헤더에 토큰을 포함시켜 서버에 전달합니다. 서버는 토큰을 검증하여 사용자를 식별합니다.
사용 상황:
상태를 서버에 저장할 필요가 없는 경우: 상태 저장을 최소화하고 서버 자원을 절약할 수 있습니다. 모바일 애플리케이션: 브라우저가 아닌 다양한 클라이언트에서도 쉽게 사용할 수 있습니다. 확장성 및 마이크로서비스: 중앙 인증 서버에서 발행한 토큰을 다양한 서비스에서 사용할 수 있어 확장성과 유연성이 높습니다.
## 종합 이 두 방법 중 어떤 것을 사용할지는 애플리케이션의 특성에 따라 결정됩니다. 예를 들어, 전통적인 웹 애플리케이션은 세션 기반 인증이 적합하고, 모바일 앱이나 SPA는 토큰 기반 인증이 더 적합할 수 있습니다.
728x90
반응형