Skip to main content

CAP 이론과 DDB의 트레이드오프

작성일: 2025.02.16

분산 시스템 설계의 핵심인 CAP 이론과, 시스템의 목적에 따라 선택해야 하는 CP와 AP 모델의 차이점을 분석합니다.

🌐 CAP 이론: 분산 시스템의 근본적인 딜레마

[Image of CAP theorem venn diagram]

CAP 이론은 분산 시스템을 설계할 때 반드시 고려해야 할 핵심 원칙입니다. 이 이론은 분산 시스템이 다음 세 가지 속성을 동시에 만족할 수 없음을 의미합니다.

  • Consistency (일관성) 모든 사용자에게 항상 동일하고 최신 데이터를 보여줍니다. 마치 하나의 데이터베이스인 것처럼 동작하는 속성입니다.

  • Availability (가용성) 서버 노드 중 일부에 장애가 발생하더라도, 시스템은 중단 없이 사용자 요청에 응답할 수 있어야 합니다.

  • Partition Tolerance (분할 허용성) 네트워크가 분할되어 노드 간의 통신이 끊어져도 시스템이 계속 작동해야 합니다.

분산 시스템에서 P는 필수이다

P는 선택이 아닌 필수

분산 데이터베이스는 물리적으로 여러 노드로 구성되어 네트워크를 통해 데이터를 주고받습니다. 이 환경에서는 네트워크 장애(Partition)가 언제든 발생할 수 있으므로, P(분할 허용성)는 반드시 충족해야 하는 전제 조건입니다.

따라서 실제 분산 시스템을 설계할 때는 P를 안고 간다는 전제하에, **C(일관성)**와 A(가용성) 중 하나를 선택하는 트레이드오프(Trade-off)가 발생하게 됩니다.

CAP 이론의 트레이드오프: CP vs AP

시스템의 요구사항에 따라 CP 또는 AP 모델을 선택하게 되며, 이 선택이 파티셔닝, 샤딩, 레플리케이션 전략을 결정합니다.

구분AP (Availability 우선)CP (Consistency 우선)
선택가용성 선택 / 일관성 일부 포기일관성 선택 / 가용성 일부 포기
목표네트워크 장애 시에도 서비스 중단 없이 응답네트워크 장애 시 데이터의 정확성을 최우선 유지
결과일부 노드는 최신 데이터를 받지 못해, 사용자에게 이전 데이터가 보일 수 있음 (Eventual Consistency)일관성을 확보할 수 없는 상황에서는 서비스 제공을 중단하거나 요청을 거부함
적합 분야소셜 미디어 피드, 좋아요 수, 조회수 등금융 거래, 재고 관리, 결제 시스템 등
예시 상황인스타그램 좋아요 수가 실시간으로 조금 달라도 서비스 이용에는 지장이 없음송금 시 잔액 정보가 노드마다 다르면 치명적이므로, 동기화 실패 시 거래를 차단함

다음 단계

분산 데이터베이스를 설계할 때는 시스템의 목적(돈을 다루는지, 빠른 응답이 중요한지)에 따라 방향성을 명확히 해야 합니다.

  1. 방향성 결정: AP를 지향할지 CP를 지향할지 결정
  2. 기술 조합: 그에 맞는 파티셔닝, 샤딩, 레플리케이션 기술 적용
PostgreSQL과 Citus

PostgreSQL의 Citus 익스텐션은 이러한 분산 아키텍처를 구현하기 위한 강력한 도구입니다. PostgreSQL을 분산 환경으로 확장하여 대규모 데이터를 처리할 때 샤딩과 레플리케이션을 효율적으로 관리할 수 있게 도와줍니다.