패스잇
시스템 설계 · 기초

분산 트랜잭션이란 무엇이며, 이를 처리하기 위한 2단계 커밋(2PC) 프로토콜의 기본 원리를 간략히 설명해 주세요.

힌트 · 여러 노드에 걸쳐 수행되는 트랜잭션으로, 모든 참여자가 커밋하거나 롤백해야 합니다. 2PC는 준비(Prepare)와 커밋(Commit) 두 단계로 나뉩니다.

ACID원자성커밋 페이즈준비 페이즈트랜잭션 코디네이터

모범답안

분산 트랜잭션은 여러 데이터베이스나 시스템에 걸쳐 수행되는 트랜잭션입니다. ACID 속성 중 특히 원자성을 보장하는 것이 중요하며, 모든 참여자가 트랜잭션을 커밋하거나 롤백해야 합니다.

2단계 커밋(2PC)은 이를 위한 대표적인 프로토콜입니다. 기본적으로 트랜잭션 코디네이터라는 중재자가 참여합니다.

1단계(준비 페이즈)에서는 코디네이터가 모든 참여자에게 트랜잭션 준비를 요청합니다. 각 참여자는 트랜잭션을 수행할 준비를 마치고 결과를 코디네이터에게 알립니다.

2단계(커밋 페이즈)에서는 코디네이터가 모든 참여자가 준비되었다면 커밋을 요청하고, 하나라도 실패했다면 롤백을 요청합니다. 모든 참여자는 코디네이터의 결정에 따라 트랜잭션을 커밋하거나 롤백합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 분산 시스템 면접 질문

← 분산 시스템 면접 질문 전체 보기