시스템 설계 · 중급
분산 시스템에서 합의(Consensus) 알고리즘이 필요한 이유와 그 중요성을 설명하고, Paxos나 Raft와 같은 합의 알고리즘이 어떤 원리로 분산 환경에서 단일 결정에 도달하는지 간략하게 설명해 주세요.
힌트 · 합의 알고리즘은 분산 시스템에서 여러 노드 간에 동일한 상태를 유지하고 결정하는 데 필수적입니다. Raft는 리더 선출, 로그 복제, 안전성이라는 세 가지 서브 문제로 합의를 이룹니다.
합의 알고리즘분산 환경데이터 일관성PaxosRaft
모범답안
분산 시스템에서 합의 알고리즘은 여러 서버가 장애가 발생하더라도 데이터 일관성을 유지하고, 단일한 결정에 도달하도록 보장하는 데 필수적입니다. 만약 합의 알고리즘이 없다면, 각 서버가 서로 다른 정보를 가질 수 있고, 이는 데이터 불일치와 시스템 오류로 이어질 수 있습니다.
Paxos나 Raft 같은 알고리즘은 분산된 환경에서 특정 값에 대해 합의를 이룹니다. Raft를 예로 들면, 리더 선출을 통해 하나의 리더를 선출하고, 이 리더가 로그를 복제하여 다른 서버들에게 전파합니다. 만약 리더에 문제가 생기면 새로운 리더를 선출하여 시스템이 계속 작동하도록 합니다. 이러한 과정을 통해 Raft는 모든 서버가 동일한 로그를 갖도록 보장하며, 이는 데이터 일관성을 유지하는 핵심적인 역할을 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 분산 시스템 면접 질문
- 분산 시스템에서 강한 일관성(Strong Consistency)과 결과적 일관성(Eventual Consistency)의 차이점을 설명하고, 각각 어떤 종류의 애플리케이션에 적합하며 어떤 장단점을 가지는지 비교해 주세요.
- 분산 트랜잭션을 처리하기 위한 2단계 커밋(Two-Phase Commit, 2PC) 프로토콜의 동작 원리와 한계점을 설명하고, 이를 보완할 수 있는 다른 패턴(예: Saga 패턴)에 대해 간략히 설명해 주세요.
- 분산 메시징 시스템에서 메시지 처리의 멱등성(Idempotency)이 중요한 이유를 설명하고, 멱등성을 보장하기 위한 일반적인 구현 방법에는 어떤 것들이 있는지 구체적인 예시와 함께 설명해 주세요.
- 분산 시스템에서 트래픽을 효율적으로 분산하기 위한 로드 밸런싱 알고리즘 중 라운드 로빈(Round Robin)과 최소 연결(Least Connection) 방식의 차이점을 설명하고, 각각 어떤 상황에 더 적합한지 비교해 주세요.
- 마이크로서비스 아키텍처에서 서비스 디스커버리(Service Discovery)가 필요한 이유를 설명하고, 클라이언트 측 디스커버리(Client-side Discovery)와 서버 측 디스커버리(Server-side Discovery) 방식의 동작 원리와 장단점을 비교해 주세요.
- Raft나 Paxos와 같은 분산 합의 알고리즘을 실제 프로덕션 환경에 적용할 때, 이론적인 이해를 넘어 어떤 실질적인 도전 과제에 직면할 수 있으며, 이를 해결하기 위한 설계 및 운영 전략은 무엇인지 설명해주세요. (예: 네트워크 파티션, 노드 장애 복구 시간, 리더 선출 오버헤드 등)