CAP 이론으로 분산 데이터베이스 선택 기준 잡기
CAP 이론의 일관성·가용성·분할 내성 트레이드오프를 바탕으로 분산 데이터베이스 설계와 DBMS 선택 기준을 정리한다.
2026-08-14 · 최초 발행 2025-10-14
네트워크가 갈라졌을 때 남는 선택
분산 데이터베이스에서는 모든 노드가 같은 데이터를 보여야 한다는 요구와, 장애가 있어도 요청에 응답해야 한다는 요구가 충돌할 수 있다. CAP 이론은 Consistency(일관성), Availability(가용성), Partition Tolerance(분할 내성) 사이에서 어떤 속성을 우선할지 판단하는 틀이다.
- Consistency(일관성): 모든 노드가 동일한 시점의 데이터를 반환하는 특성
- Availability(가용성): 일부 노드에 장애가 있어도 모든 요청에 응답할 수 있는 특성
- Partition Tolerance(분할 내성): 네트워크 단절(Partition)이 발생해도 시스템이 계속 동작하는 특성
네트워크 분할이 발생한 상황에서는 C와 A를 동시에 완벽하게 만족시킬 수 없다. 클라우드와 멀티 데이터센터 환경에서는 Partition Tolerance를 전제로 삼는 경우가 많으므로, 설계의 중심은 C와 A 중 어느 쪽을 비즈니스에 맞춰 우선할지에 놓인다.
금융·결제처럼 데이터 불일치가 치명적인 업무는 CP를, SNS나 실시간 로그처럼 응답성과 확장성을 우선하는 업무는 AP를 선택할 수 있다.
서비스 요구사항을 CAP 모델에 연결하기
| 유형 | 우선 선택 속성 | 희생 속성 | 대표 DB 예시 | 적용 사례 |
|---|---|---|---|---|
| CP (일관성 + 분할 내성) | Consistency, Partition Tolerance | Availability | HBase, MongoDB(강한 일관성 모드) | 결제, 재고 관리 |
| AP (가용성 + 분할 내성) | Availability, Partition Tolerance | Consistency | Cassandra, DynamoDB | SNS, IoT 로그 |
| CA (일관성 + 가용성) | Consistency, Availability | Partition Tolerance | RDBMS (단일 노드) | 사내 ERP, 단일 데이터센터 환경 |
글로벌 분산 DB는 대체로 P를 전제로 하며, 그 뒤에 C 또는 A의 우선순위를 정한다.
DBMS 선택 전 거치는 판단 흐름
요구사항과 데이터 특성을 먼저 확인한 뒤 CAP 우선순위를 정하고, DBMS 후보를 선택해 검증한다. 이 과정에는 가용성 SLA, 데이터 정합성 정책, 장애 복구 시나리오를 설계 단계부터 포함해야 한다.
정합성이 우선인 거래 시스템
결제와 송금은 데이터 불일치가 치명적이므로 Availability보다 Consistency를 우선하는 CP 선택이 적합하다. 원본 구성에서는 HBase와 Zookeeper를 사용하고, 2PC(이중 커밋)를 적용한다.
응답성을 우선하는 피드 서비스
SNS 피드는 실시간 응답성과 확장성이 중요하고, 약간의 데이터 지연을 허용할 수 있다. 이런 경우에는 Cassandra와 Eventual Consistency를 사용하는 AP 선택이 가능하다.
분할 상황을 처리하는 정책
CAP 선택은 장애 발생 시 요청을 어떻게 처리할지에 대한 정책으로 이어진다.
if network_partition_occurs():
if business_priority == "consistency":
block_requests_until_consistent()
else if business_priority == "availability":
serve_latest_available_data()
다음은 같은 판단을 단순화한 Python 예시다.
def handle_request(data, priority="consistency"):
if network_partition_detected():
if priority == "consistency":
return wait_for_consistency()
elif priority == "availability":
return serve_cached_data()
else:
return serve_live_data(data)
선택 이후의 운영 부담
CP 모델에서는 응답 지연(latency)이 늘어날 수 있으며, 2PC와 분산락 비용을 검토해야 한다. AP 모델은 데이터 정합성을 보완할 Conflict Resolution 로직이 필요하다.
어느 모델이든 실제 트래픽 패턴을 기준으로 부하 테스트를 수행한 PoC가 필요하다. CAP 이론은 설계의 출발점이며, 일관성과 가용성의 수준은 비즈니스 목적과 장애 시나리오에 맞춰 조율해야 한다.