시스템 설계 · 기초
분산 트랜잭션이란 무엇이며, 이를 처리하기 위한 2단계 커밋(2PC) 프로토콜의 기본 원리를 간략히 설명해 주세요.
힌트 · 여러 노드에 걸쳐 수행되는 트랜잭션으로, 모든 참여자가 커밋하거나 롤백해야 합니다. 2PC는 준비(Prepare)와 커밋(Commit) 두 단계로 나뉩니다.
ACID원자성커밋 페이즈준비 페이즈트랜잭션 코디네이터
모범답안
분산 트랜잭션은 여러 데이터베이스나 시스템에 걸쳐 수행되는 트랜잭션입니다. ACID 속성 중 특히 원자성을 보장하는 것이 중요하며, 모든 참여자가 트랜잭션을 커밋하거나 롤백해야 합니다.
2단계 커밋(2PC)은 이를 위한 대표적인 프로토콜입니다. 기본적으로 트랜잭션 코디네이터라는 중재자가 참여합니다.
1단계(준비 페이즈)에서는 코디네이터가 모든 참여자에게 트랜잭션 준비를 요청합니다. 각 참여자는 트랜잭션을 수행할 준비를 마치고 결과를 코디네이터에게 알립니다.
2단계(커밋 페이즈)에서는 코디네이터가 모든 참여자가 준비되었다면 커밋을 요청하고, 하나라도 실패했다면 롤백을 요청합니다. 모든 참여자는 코디네이터의 결정에 따라 트랜잭션을 커밋하거나 롤백합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 분산 시스템 면접 질문
- 로드 밸런싱(Load Balancing)이 분산 시스템에서 어떤 역할을 하며, 가장 기본적인 로드 밸런싱 알고리즘에는 어떤 것들이 있나요?
- 분산 시스템에서 서비스 디스커버리(Service Discovery)가 필요한 이유와 그 개념을 설명해 주세요.
- 분산 시스템의 확장성(Scalability)이란 무엇이며, 수평 확장(Horizontal Scaling)과 수직 확장(Vertical Scaling)의 차이를 설명해 주세요.
- 분산 시스템 설계 시 CAP 이론이 제시하는 세 가지 속성(일관성, 가용성, 분할 내성) 중 두 가지를 선택해야 하는 트레이드오프에 대해 설명하고, 실제 시스템에서 이 트레이드오프가 어떻게 나타나는지 구체적인 예를 들어 설명해 주세요.
- 분산 시스템에서 강한 일관성(Strong Consistency)과 결과적 일관성(Eventual Consistency)의 차이점을 설명하고, 각각 어떤 종류의 애플리케이션에 적합하며 어떤 장단점을 가지는지 비교해 주세요.
- 분산 트랜잭션을 처리하기 위한 2단계 커밋(Two-Phase Commit, 2PC) 프로토콜의 동작 원리와 한계점을 설명하고, 이를 보완할 수 있는 다른 패턴(예: Saga 패턴)에 대해 간략히 설명해 주세요.