📌 면접 답변
다중 서버 환경에서 세션 기반의 인증 방식을 사용하는 경우 세션 불일치 문제가 발생할 수 있다.
예를 들어, 로드 밸런서를 통해 트래픽이 서버 A와 서버 B로 분산되는 환경을 가정해 보자.
1. 사용자가 로그인하면, 세션 정보는 최초로 요청을 받은 서버 A에 저장된다.
2. 이후, 사용자가 추가 요청을 보낼 때 로드 밸런서가 서버 B로 요청을 전달할 경우, B 서버에는 해당 사용자의 세션 정보가 존재하지 않기 때문에 인증이 실패한다.
이는 서버 간 세션 공유가 이뤄지지 않았기 때문에 발생한다.
그렇다면 세션 불일치 문제는 어떻게 해결 할 수 있을까 ?
1. 스티키 세션 방식
- 사용자의 요청이 항상 사용자 세션 정보가 저장된 서버로 가도록 고정
- 쿠키나 IP를 통해서 어느 서버로 고정 시킬지 결정
- 구현이 간단하며 기존 세션 저장 방식 그대로 활용 가능
- 하지만 특정 서버에 트래픽 집중되는 문제점
2. 세션 클러스터링 방식
- Clustering (클러스터링) 뜻은 "뭉치기" 또는 "군집화"
- 특정 서버에 세션 정보가 생성될 때, 다른 서버로 정보를 복제
- 여러 서버에 세션 정보를 중복으로 저장하여 트래픽 몰림 현상 방지
- 하지만 세션 정보를 중복으로 저장하여 메모리 비효울적 사용
- 또한 세션 정보 복제 과정에서 네트워크 트래픽과 같은 문제로 세션 정보 유실 문제 발생
3. 스토리지 분산 방식
- 세션 정보를 외부 저장소에 저잘하여 모든 서버가 동일한 세션 데이터 참조
- Redis, Memcached 등
- 이 방법으로 스티키, 세션 클러스터링 방식 해결 가능하며, 서버가 추가되어도 세션 유지 가능
- 외부 저장소에 의존성이 증가하여, 저장소가 과부화 상태가 되면 성능 저하 발생
4. JWT (JSON Web Token) 기반 인증
- 클라이언트가 자체적으로 토큰을 저장하여, 이를 포함하여 요청을 보냄
- 이렇게 할 경우 서버 간 세션 공유 문제 해결 가능 !
📌 내 답변
다중 서버 환경에서 세션 기반 인증 방식을 할 경우,
각각의 서버가 클라이언트와 같이 공유하는 세션키가 없다는 문제가 발생한다.
클라이언트와 공유하는 세션키가 없는 경우, 클라우저와의 통신에 장애가 발생하게된다.
Self 피드백
- 예시를 들어주면 좋을 것 같다.
- 그리고 문제에 대한 해결책도 말해야 할 듯
[출처 및 참고 자료]
매일메일 - 기술 면접 질문 구독 서비스
기술 면접 질문을 매일매일 메일로 보내드릴게요!
www.maeil-mail.kr
매일메일 면접 질문지
세션 불일치 문제 해결방법
스케일 아웃으로 서버의 저장소가 여러 대로 분산되면서 로드밸런싱을 통해 부하를 분산 처리해야 하는데, 이 때 세션 불일치 문제가 발생합니다. 이를 해결하는 방법에 대하여 정리해 보았습
velog.io
세션 불일치 해결 방법 그림 출처
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] 동시성과 병렬성의 차이 (0) | 2025.03.14 |
---|---|
[1분 면접] 로드 밸런싱이란 ? (0) | 2025.03.13 |
[1분 면접] SOLID 원칙이란 ? (0) | 2025.03.11 |
[1분 면접] DB Replication이란 ? (0) | 2025.03.10 |
[1분 면접] record를 DTO로 사용하는 이유 (0) | 2025.03.07 |