패스잇
시스템 설계 · 중급

대규모 웹 서비스를 설계할 때 서비스가 Stateless(무상태)여야 하는 이유와 Stateless 서비스를 구현하기 위한 일반적인 접근 방식에 대해 설명해 주세요.

힌트 · 서버 간 부하 분산 용이성, 장애 복구 용이성, 세션 관리 방법(예: 세션 클러스터링, 외부 세션 저장소)을 중심으로 설명합니다.

확장성로드 밸런싱세션 관리쿠키/토큰캐싱

모범답안

대규모 웹 서비스 설계 시 Stateless 아키텍처는 확장성과 안정성을 확보하는 데 매우 중요합니다. 서버가 클라이언트의 상태를 저장하지 않기 때문에, 로드 밸런서를 통해 트래픽을 자유롭게 분산할 수 있습니다. 특정 서버에 장애가 발생해도 다른 서버가 즉시 요청을 처리할 수 있어 장애 복구도 용이합니다.

Stateless 서비스를 구현하는 일반적인 방법은 세션 정보를 서버가 아닌 다른 곳에 저장하는 것입니다. 예를 들어, 쿠키나 토큰을 사용하여 클라이언트 측에 세션 정보를 저장하거나, Redis와 같은 외부 세션 저장소를 활용할 수 있습니다. 또한, 세션 클러스터링을 통해 여러 서버 간에 세션 정보를 공유하는 방법도 있습니다. 캐싱 전략을 적절히 활용하면 성능을 더욱 향상시킬 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 대용량 트래픽 설계 면접 질문

← 대용량 트래픽 설계 면접 질문 전체 보기