IT Study/데이터베이스 및 데이터 처리

🗂️ 비관계형 DB 설계 시 고려해야 할 CAP 이론(CAP Theorem)

cs_bot 2025. 4. 10. 15:34

1. 서론: 비관계형 DB와 CAP 이론의 필요성

  • 대용량의 비정형 데이터를 저장하고 처리하는 NoSQL 계열 비관계형 데이터베이스 등장
  • 관계형 DB가 갖는 일관성과 정합성 중심의 구조에서 탈피하여 분산성과 확장성 중심의 설계 필요
  • 이와 같은 환경에서 분산 시스템의 핵심 이론으로 CAP Theorem(일관성, 가용성, 네트워크 분할 내성 간의 트레이드오프) 중요성 부각됨
  • 비관계형 DBMS 설계 시, CAP 이론을 바탕으로 시스템 목표에 따른 전략적 선택 요구됨

2. CAP 이론(CAP Theorem) 개요

  • 2000년, Eric Brewer가 제안한 분산 시스템의 이론
  • 분산 시스템에서는 Consistency(일관성), Availability(가용성), Partition Tolerance(분할 내성) 세 가지 속성 중 두 가지는 만족 가능하나 세 가지를 동시에 만족시키는 것은 불가능함
  • 2002년 Gilbert와 Lynch에 의해 이론적으로 증명됨
요소 정의
Consistency 모든 노드가 같은 시간에 같은 데이터를 보장함 (읽기 시 최신값 제공)
Availability 모든 요청에 대해 실패 없이 응답함을 보장함
Partition Tolerance 네트워크 분할이 발생해도 시스템이 계속 동작 가능함
  • CAP 이론은 물리적으로 분산된 환경에서 일시적인 네트워크 장애나 지연이 발생할 수 있다는 전제를 바탕으로 함
  • 네트워크 분할이 발생하지 않는 완전한 네트워크는 현실적으로 존재하지 않으므로, 대부분의 분산 시스템은 Partition Tolerance를 기본으로 유지함
    → 결국 일관성과 가용성 중 선택 필요

3. CAP 이론 기반 비관계형 DB 설계 유형

  • CAP 이론을 바탕으로 한 시스템 분류는 아래와 같음

1) CP 시스템 (Consistency + Partition Tolerance)

  • 일관성과 네트워크 분할 내성을 중시함
  • 네트워크 문제 발생 시, 일부 요청 차단(가용성 희생)
  • 예: HBase, MongoDB(초기 버전), Redis Sentinel
  • 강한 일관성 요구되는 금융 시스템, 거래 로그 처리 등에 적합

2) AP 시스템 (Availability + Partition Tolerance)

  • 가용성과 네트워크 분할 내성을 중시함
  • 네트워크 문제 발생 시, 데이터 불일치 허용(일관성 희생)
  • 예: Cassandra, Couchbase, DynamoDB
  • 분산 노드에서의 가용성이 핵심인 SNS 피드, IoT 센서 데이터 등에 적합

3) CA 시스템 (Consistency + Availability)

  • 이론적으로 분할 내성을 포기함
  • 단일 노드 또는 완전한 네트워크 하에서 가능하나 현실적으로 구현 어려움
  • 실제 분산 시스템에서는 거의 존재하지 않음

4. 비관계형 DB 설계 시 CAP 이론 고려사항

1) 시스템 요구사항 기반 선택

  • 일관성이 중요한 경우 → CP 설계
  • 중단 없는 서비스가 중요한 경우 → AP 설계
  • 설계 목표에 따라 DBMS 유형과 아키텍처 전략 선택 필요

2) 일관성 모델의 세분화 고려

  • Strong Consistency: 모든 사용자에게 동일한 최신 데이터 보장
  • Eventual Consistency: 시간이 지나면 일관성 수렴
  • Causal Consistency: 원인-결과 관계 보장
    → CAP 이론은 추상적 수준이며, 실제 설계 시 일관성 수준 세분화 필요

3) 네트워크 장애 고려한 장애 복원력 설계

  • 분할 내성을 기본 전제로 하여 장애 복구 전략, 데이터 복제 정책 등 정의
  • 데이터 무결성, 장애 시 동기/비동기 복제 정책, Quorum 방식 적용 여부 등 고려

4) 확장성과 성능 간의 균형

  • 높은 가용성을 확보하기 위해 수평적 확장성 고려
  • 데이터 정합성 유지 위한 동기화 비용 고려
  • 성능 병목이나 지연 요소 최소화를 위한 데이터 샤딩 및 파티셔닝 전략 수립 필요

5) 데이터 복제와 동기화 전략

  • AP 시스템에서는 Eventually Consistent 전략에 따라 데이터 복제 시점 차이 존재
  • CP 시스템에서는 동기 복제를 통해 일관성 확보하지만, 가용성 저하 우려
  • 쓰기 지연 허용 가능한지 여부 판단에 따라 동기/비동기 복제 결정

5. 사례 기반 이해

(1) Amazon DynamoDB

  • AP 지향 분산 키-값 저장소
  • 가용성 및 분할 내성을 중시함
  • 결국 일관성은 Eventual Consistency로 보완
  • Client-side에서 버전 관리(vector clock) 및 충돌 해결 책임 전가

(2) Apache Cassandra

  • AP 지향, peer-to-peer 기반 아키텍처
  • 튜너블 일관성 모델 제공(Quorum 설정에 따라 일관성 수준 조절 가능)
  • 네트워크 분할 환경에서도 각 노드는 요청 응답 지속 가능

(3) Google Bigtable / HBase

  • CP 지향, Master-Slave 구조
  • 일관성 보장 위해 쓰기 요청은 Leader 노드를 통해 수행
  • 장애 시 자동 Failover 정책으로 Partition Tolerance 확보

6. 결론

  • 비관계형 DB 설계 시, CAP 이론은 단순 선택의 문제가 아니라 시스템 요구사항, 장애 가능성, 데이터 특성, 응답 시간 등을 종합적으로 고려한 전략 수립의 기준점으로 활용됨

  • CAP 세 요소 간의 절충이 아닌, 목적 기반의 균형 조정과 보완 설계가 중요함

  • 최신 분산 시스템은 CAP 이론의 한계를 극복하기 위해 PACELC 이론 등 확장 모델 적용 시도도 존재함
    → Partition 발생 시(CAP), Else 상황에서는 Latency와 Consistency 간의 절충 고려

  • 궁극적으로 비관계형 DB 설계는 단순한 이론 적용이 아닌, 복잡한 현실 환경에 맞춘 아키텍처 구성 및 지속적 개선 과정임