CAP 이론과 DDB의 트레이드오프
작성일: 2025.02.16
분산 시스템 설계의 핵심인 CAP 이론과, 시스템의 목적에 따라 선택해야 하는 CP와 AP 모델의 차이점을 분석합니다.
🌐 CAP 이론: 분산 시스템의 근본적인 딜레마
[Image of CAP theorem venn diagram]
CAP 이론은 분산 시스템을 설계할 때 반드시 고려해야 할 핵심 원칙입니다. 이 이론은 분산 시스템이 다음 세 가지 속성을 동시에 만족할 수 없음을 의미합니다.
-
Consistency (일관성) 모든 사용자에게 항상 동일하고 최신 데이터를 보여줍니다. 마치 하나의 데이터베이스인 것처럼 동작하는 속성입니다.
-
Availability (가용성) 서버 노드 중 일부에 장애가 발생하더라도, 시스템은 중단 없이 사용자 요청에 응답할 수 있어야 합니다.
-
Partition Tolerance (분할 허용성) 네트워크가 분할되어 노드 간의 통신이 끊어져도 시스템이 계속 작동해야 합니다.
분산 시스템에서 P는 필수이다
분산 데이터베이스는 물리적으로 여러 노드로 구성되어 네트워크를 통해 데이터를 주고받습니다. 이 환경에서는 네트워크 장애(Partition)가 언제든 발생할 수 있으므로, P(분할 허용성)는 반드시 충족해야 하는 전제 조건입니다.
따라서 실제 분산 시스템을 설계할 때는 P를 안고 간다는 전제하에, **C(일관성)**와 A(가용성) 중 하나를 선택하는 트레이드오프(Trade-off)가 발생하게 됩니다.
CAP 이론의 트레이드오프: CP vs AP
시스템의 요구사항에 따라 CP 또는 AP 모델을 선택하게 되며, 이 선택이 파티셔닝, 샤딩, 레플리케이션 전략을 결정합니다.
| 구분 | AP (Availability 우선) | CP (Consistency 우선) |
|---|---|---|
| 선택 | 가용성 선택 / 일관성 일부 포기 | 일관성 선택 / 가용성 일부 포기 |
| 목표 | 네트워크 장애 시에도 서비스 중단 없이 응답 | 네트워크 장애 시 데이터의 정확성을 최우선 유지 |
| 결과 | 일부 노드는 최신 데이터를 받지 못해, 사용자에게 이전 데이터가 보일 수 있음 (Eventual Consistency) | 일관성을 확보할 수 없는 상황에서는 서비스 제공을 중단하거나 요청을 거부함 |
| 적합 분야 | 소셜 미디어 피드, 좋아요 수, 조회수 등 | 금융 거래, 재고 관리, 결제 시스템 등 |
| 예시 상황 | 인스타그램 좋아요 수가 실시간으로 조금 달라도 서비스 이용에는 지장이 없음 | 송금 시 잔액 정보가 노드마다 다르면 치명적이므로, 동기화 실패 시 거래를 차단함 |
다음 단계
분산 데이터베이스를 설계할 때는 시스템의 목적(돈을 다루는지, 빠른 응답이 중요한지)에 따라 방향성을 명확히 해야 합니다.
- 방향성 결정: AP를 지향할지 CP를 지향할지 결정
- 기술 조합: 그에 맞는 파티셔닝, 샤딩, 레플리케이션 기술 적용
PostgreSQL의 Citus 익스텐션은 이러한 분산 아키텍처를 구현하기 위한 강력한 도구입니다. PostgreSQL을 분산 환경으로 확장하여 대규모 데이터를 처리할 때 샤딩과 레플리케이션을 효율적으로 관리할 수 있게 도와줍니다.