시스템 설계 · 중급
분산 시스템 설계 시 CAP 이론이 제시하는 세 가지 속성(일관성, 가용성, 분할 내성) 중 두 가지를 선택해야 하는 트레이드오프에 대해 설명하고, 실제 시스템에서 이 트레이드오프가 어떻게 나타나는지 구체적인 예를 들어 설명해 주세요.
힌트 · CAP 이론은 분산 환경에서 항상 발생하는 네트워크 분할 상황에서 일관성과 가용성 중 하나를 포기해야 함을 의미합니다. 데이터베이스 유형(NoSQL)이나 시스템 요구사항에 따라 선택이 달라집니다.
CAP 이론일관성(Consistency)가용성(Availability)분할 내성(Partition Tolerance)트레이드오프
모범답안
CAP 이론은 분산 시스템 설계 시 일관성, 가용성, 분할 내성 중 최대 두 가지만 만족할 수 있다는 이론입니다. 분할 내성은 필수적이므로, 결국 일관성과 가용성 사이의 트레이드오프가 발생합니다.
예를 들어, 은행 계좌 시스템을 생각해 봅시다. 네트워크 분할이 발생했을 때, 일관성을 선택하면 (CP) 분할된 네트워크 중 한쪽에서는 계좌 업데이트를 막아 데이터 불일치를 방지할 수 있습니다. 하지만 이 경우 해당 네트워크에서는 계좌 잔액 확인이나 이체 등의 가용성이 떨어지게 됩니다.
반대로 가용성을 선택하면 (AP) 분할된 네트워크 양쪽에서 계좌 업데이트가 가능하도록 허용할 수 있습니다. 이 경우 네트워크가 다시 연결되었을 때 데이터 충돌이 발생할 수 있으며, 데이터 일관성을 보장하기 위한 추가적인 메커니즘이 필요합니다. NoSQL 데이터베이스 중 일부는 이러한 AP 전략을 채택하여 높은 가용성을 확보합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 분산 시스템 면접 질문
- 분산 시스템에서 서비스 디스커버리(Service Discovery)가 필요한 이유와 그 개념을 설명해 주세요.
- 분산 시스템의 확장성(Scalability)이란 무엇이며, 수평 확장(Horizontal Scaling)과 수직 확장(Vertical Scaling)의 차이를 설명해 주세요.
- 분산 트랜잭션이란 무엇이며, 이를 처리하기 위한 2단계 커밋(2PC) 프로토콜의 기본 원리를 간략히 설명해 주세요.
- 분산 시스템에서 강한 일관성(Strong Consistency)과 결과적 일관성(Eventual Consistency)의 차이점을 설명하고, 각각 어떤 종류의 애플리케이션에 적합하며 어떤 장단점을 가지는지 비교해 주세요.
- 분산 트랜잭션을 처리하기 위한 2단계 커밋(Two-Phase Commit, 2PC) 프로토콜의 동작 원리와 한계점을 설명하고, 이를 보완할 수 있는 다른 패턴(예: Saga 패턴)에 대해 간략히 설명해 주세요.
- 분산 메시징 시스템에서 메시지 처리의 멱등성(Idempotency)이 중요한 이유를 설명하고, 멱등성을 보장하기 위한 일반적인 구현 방법에는 어떤 것들이 있는지 구체적인 예시와 함께 설명해 주세요.