시스템 설계 · 중급
분산 트랜잭션을 처리하기 위한 2단계 커밋(Two-Phase Commit, 2PC) 프로토콜의 동작 원리와 한계점을 설명하고, 이를 보완할 수 있는 다른 패턴(예: Saga 패턴)에 대해 간략히 설명해 주세요.
힌트 · 2PC는 모든 참여자가 동의해야 커밋하며 단일 장애점, 블로킹 문제 등의 한계가 있습니다. Saga 패턴은 각 로컬 트랜잭션을 보상 트랜잭션으로 롤백하여 분산 트랜잭션을 관리합니다.
2PC준비커밋/롤백ACIDSaga
모범답안
분산 트랜잭션을 처리하는 2단계 커밋(2PC)은 여러 참여 노드에 걸쳐 트랜잭션의 ACID 속성을 보장하는 프로토콜입니다. 먼저, 트랜잭션 매니저가 모든 참여자에게 준비(Prepare) 요청을 보내고, 각 참여자는 트랜잭션을 준비하고 결과를 응답합니다. 모든 참여자가 준비에 성공하면 커밋(Commit) 요청을 보내 트랜잭션을 완료하고, 하나라도 실패하면 롤백(Rollback) 요청을 보냅니다.
2PC는 단순하지만 단일 장애점과 블로킹 문제가 있습니다. 트랜잭션 매니저가 다운되면 전체 시스템이 멈출 수 있고, 특정 참여자가 응답하지 않으면 다른 참여자들도 무한정 기다려야 합니다.
이러한 단점을 보완하기 위해 Saga 패턴을 사용할 수 있습니다. Saga 패턴은 각 서비스가 로컬 트랜잭션을 수행하고, 실패 시 보상 트랜잭션을 통해 롤백하는 방식으로 분산 트랜잭션을 관리합니다. 2PC와 달리 모든 참여자가 동시에 합의할 필요가 없어 가용성이 높지만, 데이터 정합성을 완벽하게 보장하기는 어렵습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 분산 시스템 면접 질문
- 분산 트랜잭션이란 무엇이며, 이를 처리하기 위한 2단계 커밋(2PC) 프로토콜의 기본 원리를 간략히 설명해 주세요.
- 분산 시스템 설계 시 CAP 이론이 제시하는 세 가지 속성(일관성, 가용성, 분할 내성) 중 두 가지를 선택해야 하는 트레이드오프에 대해 설명하고, 실제 시스템에서 이 트레이드오프가 어떻게 나타나는지 구체적인 예를 들어 설명해 주세요.
- 분산 시스템에서 강한 일관성(Strong Consistency)과 결과적 일관성(Eventual Consistency)의 차이점을 설명하고, 각각 어떤 종류의 애플리케이션에 적합하며 어떤 장단점을 가지는지 비교해 주세요.
- 분산 메시징 시스템에서 메시지 처리의 멱등성(Idempotency)이 중요한 이유를 설명하고, 멱등성을 보장하기 위한 일반적인 구현 방법에는 어떤 것들이 있는지 구체적인 예시와 함께 설명해 주세요.
- 분산 시스템에서 합의(Consensus) 알고리즘이 필요한 이유와 그 중요성을 설명하고, Paxos나 Raft와 같은 합의 알고리즘이 어떤 원리로 분산 환경에서 단일 결정에 도달하는지 간략하게 설명해 주세요.
- 분산 시스템에서 트래픽을 효율적으로 분산하기 위한 로드 밸런싱 알고리즘 중 라운드 로빈(Round Robin)과 최소 연결(Least Connection) 방식의 차이점을 설명하고, 각각 어떤 상황에 더 적합한지 비교해 주세요.