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 설계는 단순한 이론 적용이 아닌, 복잡한 현실 환경에 맞춘 아키텍처 구성 및 지속적 개선 과정임
'IT Study > 데이터베이스 및 데이터 처리' 카테고리의 다른 글
🗂️ 정형 vs 반정형 vs 비정형 데이터 분류 및 저장소 설계 (0) | 2025.04.12 |
---|---|
🗂️ 동시성 제어(Concurrency Control)와 교착상태(Deadlock) 해결 전략 (0) | 2025.04.11 |
🗂️ 트랜잭션 격리 수준(Isolation Level) 4단계와 현상 분석 (0) | 2025.04.09 |
🗂️ ERD(Entity-Relationship Diagram) 작성법과 개체 간 관계 이해 (1) | 2025.04.08 |
🧰 트랜잭션(Transaction)의 ACID 원칙과 락(Lock) 이해 (0) | 2025.04.07 |