시스템 설계 · 중급
분산 시스템에서 트래픽을 효율적으로 분산하기 위한 로드 밸런싱 알고리즘 중 라운드 로빈(Round Robin)과 최소 연결(Least Connection) 방식의 차이점을 설명하고, 각각 어떤 상황에 더 적합한지 비교해 주세요.
힌트 · 라운드 로빈은 요청을 순서대로 분배하며 간단하지만 서버 성능 차이를 고려하지 못합니다. 최소 연결은 현재 활성 연결 수가 가장 적은 서버로 요청을 보내 부하를 균등하게 분배하는 데 유리합니다.
라운드 로빈최소 연결세션 유지서버 부하연결 수
모범답안
라운드 로빈과 최소 연결 방식은 분산 시스템에서 트래픽을 분산하는 대표적인 로드 밸런싱 알고리즘입니다.
라운드 로빈은 요청을 서버에 순서대로 할당하는 가장 단순한 방식입니다. 구현이 간단하고 균등하게 트래픽을 분산한다는 장점이 있지만, 서버의 성능 차이를 고려하지 못한다는 단점이 있습니다. 만약 서버 성능이 다르다면, 성능이 낮은 서버에 과부하가 걸릴 수 있습니다.
최소 연결 방식은 현재 연결 수가 가장 적은 서버에 요청을 할당합니다. 서버의 현재 부하를 고려하여 트래픽을 분산하기 때문에, 서버 성능이 다르거나 요청 처리 시간이 불균등한 경우에 더 효과적입니다. 하지만 연결 수를 추적해야 하므로 라운드 로빈보다 복잡도가 높고, 세션 유지(sticky session)가 필요한 경우 추가적인 고려가 필요할 수 있습니다.
따라서, 서버 성능이 비슷하고 요청 처리 시간이 균등하다면 라운드 로빈이 적합하고, 서버 성능이 다르거나 요청 처리 시간이 불균등하다면 최소 연결 방식이 더 적합합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 분산 시스템 면접 질문
- 분산 트랜잭션을 처리하기 위한 2단계 커밋(Two-Phase Commit, 2PC) 프로토콜의 동작 원리와 한계점을 설명하고, 이를 보완할 수 있는 다른 패턴(예: Saga 패턴)에 대해 간략히 설명해 주세요.
- 분산 메시징 시스템에서 메시지 처리의 멱등성(Idempotency)이 중요한 이유를 설명하고, 멱등성을 보장하기 위한 일반적인 구현 방법에는 어떤 것들이 있는지 구체적인 예시와 함께 설명해 주세요.
- 분산 시스템에서 합의(Consensus) 알고리즘이 필요한 이유와 그 중요성을 설명하고, Paxos나 Raft와 같은 합의 알고리즘이 어떤 원리로 분산 환경에서 단일 결정에 도달하는지 간략하게 설명해 주세요.
- 마이크로서비스 아키텍처에서 서비스 디스커버리(Service Discovery)가 필요한 이유를 설명하고, 클라이언트 측 디스커버리(Client-side Discovery)와 서버 측 디스커버리(Server-side Discovery) 방식의 동작 원리와 장단점을 비교해 주세요.
- Raft나 Paxos와 같은 분산 합의 알고리즘을 실제 프로덕션 환경에 적용할 때, 이론적인 이해를 넘어 어떤 실질적인 도전 과제에 직면할 수 있으며, 이를 해결하기 위한 설계 및 운영 전략은 무엇인지 설명해주세요. (예: 네트워크 파티션, 노드 장애 복구 시간, 리더 선출 오버헤드 등)
- 마이크로서비스 아키텍처에서 여러 서비스에 걸친 비즈니스 트랜잭션의 ACID 속성을 보장하기 위해 2PC(Two-Phase Commit)가 아닌 Saga 패턴을 적용하는 경우가 많습니다. Saga 패턴의 종류(Choreography vs Orchestration)와 각각의 장단점을 설명하고, 실제 시스템에서 Saga를 구현할 때 고려해야 할 보상 트랜잭션(Compensation Transaction) 설계 및 실패 처리 전략에 대해 구체적으로 설명해주세요.