피드로 돌아가기
CAP Theorem in System Design
Dev.toDev.to
Infrastructure

분산 시스템은 Consistency와 Availability 중 하나를 반드시 희생해야 한다

CAP Theorem in System Design

CodeWithDhanian2026년 4월 1일9beginner

Context

분산 시스템은 여러 노드가 네트워크로 연결된 환경에서 동작한다. 네트워크 분할은 필연적으로 발생하는 장애 상황이다. 단일 노드 환경에서는 세 가지 특성을 모두 보장할 수 있지만, 분산 환경에서는 불가능하다.

Technical Solution

  • [분산 시스템] → [Consistency, Availability, Partition Tolerance 세 가지 특성 중 두 가지만 선택]하도록 강제
  • [네트워크 분할 발생 시] → [CP는 일관성 우선, AP는 가용성 우선]으로 분류하여 운영
  • [CP 시스템] → [분할된 쪽의 연산을 차단하여 최신 상태만 허용]
  • [AP 시스템] → [모든 노드가 독립적으로 응답하고 분할 복구 후 최종 일치]
  • [CA 시스템] → [네트워크 분할이 불가능한 환경에서만 존재하므로 실용성 없음]

Impact

수치 기반 성능 변화 없음

Key Takeaway

네트워크 분할은 피할 수 없으므로 Partition Tolerance는 필수로 보장해야 한다. Consistency와 Availability 사이의 선택이 시스템의 핵심 설계 방향을 결정한다.


분산 데이터베이스에서 네트워크 분할 발생 시 CP/AP 패턴을 quorum 전략으로 구현하면 일관성과 가용성 중 하나를 보장할 수 있다

원문 읽기