CAP Theorem

CAP 이론은 Eric Brewer 가 2000 년에 제안한 분산 시스템의 근본적인 제약을 설명하는 이론으로, 분산 데이터 저장소는 일관성 (C), 가용성 (A), 파티션 내성 (P) 세 가지 특성 중 두 가지만 동시에 보장할 수 있다고 주장한다.

어떤 분산 시스템도 일관성, 가용성, 분할 내성을 동시에 완벽하게 보장할 수 없다는 사실은, 시스템 설계자들이 특정 상황과 요구사항에 맞는 적절한 타협점을 찾아야 함을 의미한다. 네트워크 파티션은 피할 수 없는 현실이므로, 실제 시스템 설계자들은 파티션 발생 시 일관성을 우선시할지 (CP) 가용성을 우선시할지 (AP) 를 결정해야 한다. 이 트레이드오프는 금융, 전자상거래, 소셜 미디어 등 다양한 응용 프로그램의 요구사항에 따라 달라지며, 최신 분산 시스템 설계의 중심 원칙이 되었다.

현대의 분산 시스템은 엄격한 CAP 분류보다는, 다양한 일관성 모델과 가용성 수준을 제공하며 상황에 따라 유연하게 대응할 수 있는 방향으로 발전하고 있다. 또한 PACELC 와 같은 확장된 모델은 정상 운영 시와 분할 발생 시의 트레이드오프를 모두 고려하는 더 포괄적인 관점을 제공한다.

2025 년 현재에도 클라우드 컴퓨팅과 대규모 분산 시스템 설계에 있어 핵심적인 고려사항으로 작용하며, AI 및 생성형 AI 의 확산으로 인해 그 중요성이 더욱 부각되고 있다.

핵심 개념

CAP 이론은 분산 시스템에서 가장 중요한 개념 중 하나로, 다음과 같은 핵심 개념을 포함한다:

  1. 일관성 (Consistency)

    • 모든 읽기 작업은 가장 최근의 쓰기 작업 결과를 반환하거나 오류를 반환한다.
    • 모든 노드는 동일한 시점에 동일한 데이터를 볼 수 있다.
    • 한 노드에서 데이터가 업데이트되면 모든 노드가 즉시 동일한 데이터를 보게 된다.
    • ACID 의 일관성과는 다른 개념이다 (여기서는 선형성을 의미).
  2. 가용성 (Availability)

    • 모든 비장애 노드는 합리적인 시간 내에 모든 요청에 대해 오류 없는 응답을 반환한다.
    • 시스템은 일부 노드에 장애가 발생하더라도 계속 작동한다.
    • 모든 클라이언트가 항상 읽기와 쓰기 작업을 수행할 수 있다.
  3. 파티션 내성 (Partition Tolerance)

    • 네트워크 파티션 (노드 간 통신 단절) 이 발생하더라도 시스템이 계속 작동한다.
    • 노드 간 메시지 손실이나 지연이 있어도 시스템이 계속 기능한다.
    • 분산 시스템에서는 네트워크 파티션이 불가피하므로 필수적인 특성이다.

트레이드오프의 본질

실제 적용 원칙

목적 및 필요성

CAP 이론의 주요 목적과 필요성은 다음과 같다:

주요 기능 및 역할

CAP 이론은 분산 시스템 설계와 구현에서 다음과 같은 주요 기능과 역할을 수행한다:

CAP 이론의 핵심 주장

CAP 이론은 분산 시스템에서 노드 간 통신이 끊어지는 네트워크 파티션 상황을 중심으로 시스템의 동작을 설명한다.

  1. 정상 작동 시: 파티션이 없을 때는 세 가지 속성을 모두 제공할 수 있다.
  2. 파티션 발생 시: 노드 간 통신이 단절되면 두 가지 선택지가 있다:
    • 일관성 선택 (CP): 일관된 데이터를 우선시하여 일부 요청을 거부하고 가용성을 포기한다.
    • 가용성 선택 (AP): 모든 요청을 처리하지만 노드 간 데이터가 일시적으로 불일치할 수 있다.

은행 계좌 시스템 예시:

CAP 이론 다이어그램

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
           [일관성(C)]
               /\
              /  \
             /    \
            /      \
           /        \
    [가용성(A)]------[파티션 내성(P)]

    CP 시스템: 일관성 + 파티션 내성
    AP 시스템: 가용성 + 파티션 내성
    CA 시스템: 실제로는 분산 환경에서 불가능

CAP 이론의 핵심 원칙은 다음과 같다:

  1. 불가능성 원칙: 분산 시스템에서 일관성, 가용성, 파티션 내성을 모두 동시에 완벽하게 보장할 수 없다.
  2. 파티션 중심성: 네트워크 파티션은 분산 시스템에서 피할 수 없는 현실이므로, 파티션 내성은 사실상 필수적이다.
  3. 선택의 필요성: 파티션 발생 시 일관성과 가용성 중 하나를 선택해야 한다.
  4. CP vs AP 구분: 시스템은 일관성을 우선시하는 CP 시스템과 가용성을 우선시하는 AP 시스템으로 나눌 수 있다.
  5. 상황별 적응: 모든 시스템이나 모든 작업에 동일한 선택이 적용되지 않으며, 상황에 따라 다른 전략이 필요하다.
  6. 트레이드오프 인식: 분산 시스템 설계는 트레이드오프의 연속이며, 완벽한 해결책은 존재하지 않는다.
  7. 비즈니스 요구 연계: 기술적 선택은 비즈니스 요구사항과 사용자 경험을 고려하여 결정해야 한다.
  8. 진화하는 균형: 기술 발전에 따라 트레이드오프의 균형점이 변화할 수 있다.
1
2
3
4
5
6
7
8
[분산 시스템]
네트워크 파티션 발생
       ├─ CP 선택: 일관성 유지 (장애 노드 사용 중지)
       └─ AP 선택: 가용성 유지 (일시적 데이터 불일치 허용)

이를 세 가지 조합으로 나누어 살펴보면:

CA (일관성 + 가용성)

이론적으로 이 시스템은 일관성과 가용성을 제공하지만 분할 내성이 없다. 그러나 현실적인 분산 환경에서 네트워크 분할은 피할 수 없으므로, 순수한 CA 시스템은 실제로는 존재하기 어렵다. 단일 노드 데이터베이스나 완벽한 네트워크를 가정하는 시스템이 이에 가깝다.

CP (일관성 + 분할 내성)

이 시스템은 네트워크 분할이 발생해도 일관성을 유지한다. 분할 발생 시 일관성을 유지하기 위해 일부 노드가 일시적으로 요청에 응답하지 않을 수 있으므로 가용성이 희생된다. Google 의 BigTable, HBase, MongoDB, Redis 등이 CP 에 가까운 시스템이다.

AP (가용성 + 분할 내성)

이 시스템은 네트워크 분할이 발생해도 항상 응답을 제공한다. 그러나 분할 동안 모든 노드가 동일한 데이터를 볼 수 없으므로 일관성이 희생된다. Amazon 의 Dynamo, Cassandra, CouchDB 등이 AP 에 가까운 시스템이다.

CAP 이론의 한계와 비판

CAP 이론은 분산 시스템 설계의 중요한 지침이지만, 몇 가지 한계와 비판이 있다:

  1. 단순화된 모델: CAP 이론은 복잡한 분산 시스템을 세 가지 속성으로 단순화한다. 실제 시스템은 이보다 더 많은 속성과 고려사항을 가진다.
  2. 이분법적 관점: 실제로는 일관성, 가용성, 분할 내성이 모두 정도의 문제인데, CAP 이론은 이를 이분법적으로 다룬다.
  3. 네트워크 분할 발생 빈도: 많은 시스템에서 네트워크 분할은 드물게 발생한다. 따라서 정상 상태에서의 동작에 더 초점을 맞추는 것이 중요할 수 있다.
  4. 지연 시간 고려 부족: CAP 이론은 지연 시간을 직접적으로 다루지 않지만, 실제 시스템에서 지연 시간은 중요한 고려사항이다.

장점과 단점

구분항목설명
✅ 장점설계 명확성시스템 요구사항 정량화 가능
장애 대응 전략 수립파티션 시나리오별 플랜 수립 용이
상황별 최적화 가능비즈니스 요구사항에 따라 일관성이나 가용성을 선택적으로 최적화할 수 있습니다.
기술 선택 가이드적합한 데이터베이스 기술과 아키텍처를 선택하는 데 이론적 근거를 제공합니다.
확장성 계획 수립시스템 확장 시 발생할 수 있는 트레이드오프를 미리 예측하고 계획할 수 있습니다.
⚠ 단점과도한 단순화실제 환경의 복잡성 반영 부족
동적 조절 어려움실시간 트레이드오프 조정 기술 한계
정상 상황 고려 부족파티션이 없는 정상 상황에서의 트레이드오프 (PACELC) 를 충분히 다루지 않습니다.
구현 복잡성 증가CAP 고려사항에 따른 시스템 설계는 더 복잡한 구현을 필요로 할 수 있습니다.
하이브리드 접근 제한일부 데이터나 작업에 따라 다른 전략을 적용하는 하이브리드 접근을 명시적으로 다루지 않습니다.
지연 시간 고려 부족가용성의 정의가 모호하여 응답 시간 (지연 시간) 에 대한 고려가 부족합니다.

도전 과제

CAP 이론 적용 및 분산 시스템 설계 시 직면하는 주요 도전 과제는 다음과 같다:

  1. 적절한 균형점 찾기: 비즈니스 요구사항과 사용자 경험을 고려하여 일관성과 가용성 사이의 최적 균형을 찾는 것이 어렵다.
  2. 변화하는 요구사항 대응: 시스템 사용 패턴과 비즈니스 요구사항이 변화함에 따라 CAP 전략을 유연하게 조정해야 한다.
  3. 파티션 감지 및 복구: 네트워크 파티션을 정확히 감지하고 효율적으로 복구하는 메커니즘을 구현하는 것이 복잡하다.
  4. 점진적 성능 저하 관리: 완전한 장애보다는 성능 저하나 간헐적 문제가 더 일반적이며, 이를 효과적으로 관리하는 것이 어렵다.
  5. 하이브리드 접근 설계: 일부 데이터나 작업에는 일관성을, 다른 데이터나 작업에는 가용성을 우선시하는 하이브리드 접근을 설계하는 것이 복잡하다.
  6. 일관성 수준 최적화: 강한 일관성과 최종적 일관성 사이의 다양한 수준 (인과적 일관성, 세션 일관성 등) 을 적절히 활용하는 것이 어렵다.
  7. 장애 시나리오 테스트: 다양한 파티션 시나리오를 실제로 테스트하고 시스템 동작을 검증하는 것이 기술적으로 어렵다.
  8. 모니터링 및 관찰 가능성: 분산 시스템의 일관성, 가용성 상태를 실시간으로 모니터링하고 문제를 진단하는 것이 어렵다.
  9. 개발자 교육 및 이해: 개발팀이 CAP 이론과 그 영향을 깊이 이해하고 적절한 설계 결정을 내리도록 교육하는 것이 중요하다.
  10. 레거시 시스템 통합: CAP 고려사항이 다른 레거시 시스템과의 통합은 복잡한 과제를 제시한다.

최신 동향

주제항목설명
CAP 정리 적용다이나믹 선택형 시스템일관성, 가용성 설정을 실시간으로 조절 가능한 시스템 (예: CockroachDB, Spanner) 이 증가
CP/CA/AP 선택상황 기반 전략 강화Microservices(마이크로서비스) 에서 API 타입별 CAP 전략을 세분화하여 선택
멀티리전 DB글로벌 가용성 강조멀티 리전 환경에서의 AP/CP 트레이드오프 최적화 기술 (예: Vitess, YugabyteDB) 확대
HybridsCAP+BFT 등 결합 모델CAP 과 Byzantine Fault Tolerance (비잔틴 장애 허용성) 을 통합한 고가용성/고신뢰 분산 시스템 연구 증가

앞으로의 전망

주제항목설명
이론 발전통합 분산 시스템 이론CAP, PACELC 등의 이론을 통합하여 더 포괄적인 분산 시스템 설계 프레임워크가 등장할 것으로 예상됩니다.
자동화자가 조정 시스템트래픽 패턴, 데이터 중요도, 네트워크 상태에 따라 CAP 설정을 자동으로 조정하는 시스템이 발전할 것입니다.
인공지능 활용AI 기반 일관성 예측머신러닝을 활용하여 데이터 액세스 패턴을 분석하고 최적의 일관성 전략을 예측하는 기술이 발전할 것입니다.
양자 컴퓨팅 영향양자 분산 알고리즘양자 컴퓨팅이 발전함에 따라 CAP 트레이드오프를 더 효율적으로 관리할 수 있는 새로운 분산 알고리즘이 연구될 것입니다.
에지 컴퓨팅 확산초분산 아키텍처에지 컴퓨팅의 확산으로 수천, 수만 개의 노드로 구성된 초분산 아키텍처가 등장하고, 이에 맞는 CAP 전략이 개발될 것입니다.
새로운 일관성 모델상황 인식 일관성데이터 유형, 사용자 컨텍스트, 비즈니스 규칙 등을 고려한 더 유연하고 상황 인식적인 일관성 모델이 등장할 것입니다.
네트워크 기술 발전저지연 글로벌 네트워크위성 인터넷, 양자 통신 등의 발전으로 글로벌 네트워크 지연 시간이 크게 줄어들어 CAP 트레이드오프의 양상이 변화할 것입니다.
규제 영향데이터 주권과 CAP국가별 데이터 주권 규제로 인해 지리적으로 분산된 시스템의 CAP 전략이 더 복잡해질 것입니다.
하이브리드 아키텍처Multi-CAP 시스템서비스 종류별로 CP, AP, CA 를 혼합 적용하는 복합 아키텍처가 점점 보편화됨

실무 적용 예시

실무에서 CAP 이론이 적용되는 다양한 사례:

산업 분야적용 사례CAP 선택설명
금융은행 계좌 시스템CP계좌 잔액은 항상 정확해야 하므로 일관성을 우선시합니다. 일시적으로 서비스가 불가능하더라도 잘못된 잔액을 표시하지 않습니다.
전자상거래장바구니 시스템AP고객이 항상 장바구니를 이용할 수 있도록 가용성을 우선시합니다. 일시적으로 최신 상태가 아닐 수 있어도 서비스 중단은 피합니다.
전자상거래결제 시스템CP결제 처리는 정확해야 하므로 일관성을 우선시합니다. 이중 결제나 누락을 방지하기 위해 일관성이 중요합니다.
소셜 미디어게시물 및 타임라인AP사용자 경험을 위해 타임라인은 항상 이용 가능해야 합니다. 최신 게시물이 약간 지연되어도 큰 문제가 되지 않습니다.
광고광고 서빙 시스템AP광고는 항상 표시되어야 수익이 발생하므로 가용성을 우선시합니다. 약간 오래된 타겟팅 데이터를 사용하더라도 서비스를 유지합니다.
게임멀티플레이어 게임 서버하이브리드플레이어 위치 등은 AP 로, 인벤토리 및 거래는 CP 로 처리하는 하이브리드 접근법을 사용합니다.
IoT센서 데이터 수집AP센서 데이터는 지속적으로 수집되어야 하므로 가용성을 우선시합니다. 데이터는 나중에 동기화될 수 있습니다.
헬스케어환자 의료 기록CP의료 결정은 정확한 데이터에 기반해야 하므로 일관성을 우선시합니다. 의료 오류를 방지하기 위함입니다.

실무에서 효과적으로 적용하기 위한 고려사항 및 주의할 점

고려사항설명실행 방안
비즈니스 요구사항 명확화일관성과 가용성 중 무엇이 더 중요한지를 비즈니스 관점에서 명확히 해야 합니다.이해관계자와 함께 각 기능별 중요도를, 일관성/가용성 관점에서 평가하고 문서화합니다.
데이터 중요도 분류모든 데이터가 동일한 일관성 수준을 요구하지 않습니다.데이터를 중요도와 일관성 요구사항에 따라 분류하고 다른 저장소를 사용합니다.
파티션 시나리오 계획네트워크 파티션 발생 시 시스템이 어떻게 동작할지 미리 계획해야 합니다.다양한 장애 시나리오를 문서화하고 테스트하며, 복구 전략을 수립합니다.
일관성 모델 선택강한 일관성부터 최종적 일관성까지 다양한 모델이 있습니다.데이터 유형과 액세스 패턴에 따라 적절한 일관성 모델을 선택합니다.
모니터링 구축시스템의 일관성과 가용성 상태를 실시간으로 모니터링해야 합니다.일관성 위반, 복제 지연, 노드 가용성을 모니터링하는 도구를 구현합니다.
점진적 성능 저하 설계완전한 장애보다는 점진적 성능 저하가 발생하도록 설계합니다.핵심 기능이 계속 작동하도록 우선순위를 설정하고 비핵심 기능은 우아하게 저하되도록 합니다.
복구 전략 구현파티션이 해결된 후 시스템이 어떻게 복구될지 계획해야 합니다.자동 동기화 메커니즘과 충돌 해결 전략을 구현합니다.
하이브리드 접근 검토모든 기능에 동일한 CAP 전략을 적용할 필요는 없습니다.기능별로 다른 데이터베이스나 일관성 설정을 사용하는 폴리글랏 접근법을 고려합니다.
확장성 고려CAP 전략은 시스템 확장에 따라 다시 평가해야 합니다.시스템 확장 계획 시 CAP 트레이드오프를 재검토합니다.
개발자 교육팀 전체가 CAP 이론과 그 영향을 이해해야 합니다.정기적인 교육과 설계 리뷰를 통해 CAP 이해도를 높입니다.

최적화하기 위한 고려사항 및 주의할 점

고려사항설명최적화 방안
읽기/쓰기 비율 분석애플리케이션의 읽기/쓰기 패턴에 따라 CAP 전략이 달라집니다.읽기가 많은 시스템은 복제본을 늘리고, 쓰기가 많은 시스템은 샤딩을 고려합니다.
지역적 분산 고려지리적으로 분산된 시스템은 네트워크 지연과 파티션 위험이 높습니다.지역별 데이터 로컬리티와 지연 시간을 고려한 아키텍처를 설계합니다.
캐싱 전략 구현캐싱은 일관성과 성능 사이의 균형을 맞추는 데 도움이 됩니다.읽기 성능 향상을 위해 캐시를 도입하되, 캐시 무효화 전략을 명확히 합니다.
비동기 작업 활용일부 작업은 즉시 일관성이 필요하지 않을 수 있습니다.비즈니스적으로 허용되는 경우 비동기 처리를 통해 성능을 향상시킵니다.
쿼럼 설정 최적화쿼럼 기반 시스템에서 읽기/쓰기 쿼럼 설정은 성능에 영향을 미칩니다.W + R > N 조건을 유지하면서 읽기/쓰기 쿼럼을 워크로드에 맞게 조정합니다.
샤딩 전략 수립데이터 파티셔닝은 확장성을 향상시키지만 복잡성을 증가시킵니다.데이터 액세스 패턴을 분석하여 효율적인 샤딩 키를 선택합니다.
네트워크 최적화노드 간 통신은 성능과 파티션 위험에 직접적인 영향을 미칩니다.전용 네트워크 링크, 압축, 프로토콜 최적화 등을 고려합니다.
버전 관리 효율화충돌 해결을 위한 버전 관리는 오버헤드를 발생시킬 수 있습니다.효율적인 버전 관리 메커니즘 (벡터 클록, 도트 등) 을 선택합니다.
데이터 모델 최적화데이터 모델은 CAP 트레이드오프와 성능에 영향을 미칩니다.액세스 패턴에 맞게 데이터 모델을 설계하고 비정규화를 적절히 활용합니다.
장애 주입 테스트실제 파티션 상황에서의 성능을 테스트해야 합니다.카오스 엔지니어링을 통해 파티션 상황에서의 성능을 테스트하고 최적화합니다.

활용 사례

전자상거래 플랫폼에서 CAP 이론을 활용하는 구체적인 시나리오.

시나리오:
대규모 전자상거래 플랫폼에서는 다양한 기능 (장바구니, 재고 관리, 결제 처리 등) 이 서로 다른 CAP 요구사항을 가진다. 이 시나리오에서는 각 기능별로 적절한 CAP 전략을 적용하여 최적의 사용자 경험과 비즈니스 안정성을 확보하는 방법을 보여준다.

구현 방식

  1. 장바구니 시스템 (AP 접근):
    • 사용자는 항상 장바구니에 접근하고 상품을 추가할 수 있어야 한다.
    • 네트워크 파티션 발생 시에도 장바구니 기능은 계속 작동한다.
    • 파티션이 해결된 후 장바구니 상태가 동기화된다.
    • 구현: Cassandra 와 같은 AP 데이터베이스 사용
  2. 재고 관리 시스템 (CP 접근):
    • 재고는 항상 정확해야 하며 초과 판매를 방지해야 한다.
    • 파티션 발생 시 일시적으로 재고 확인이 불가능할 수 있다.
    • 구현: MongoDB 와 같은 CP 데이터베이스 사용
  3. 결제 처리 시스템 (CP 접근):
    • 결제는 항상 정확하게 처리되어야 하며 이중 결제를 방지해야 한다.
    • 파티션 발생 시 결제 처리가 지연될 수 있지만 정확성은 유지한다.
    • 구현: 관계형 데이터베이스 (PostgreSQL) 와 2 단계 커밋 프로토콜 사용
  4. 추천 시스템 (AP 접근):
    • 사용자 추천은 항상 제공되어야 하며, 약간 오래된 데이터를 기반으로 해도 무방하다.
    • 구현: DynamoDB 와 같은 AP 데이터베이스 사용

다이어그램:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[사용자 인터페이스]
     |
     |
+----+----+-----+-----+
|         |           |
|         |           |
v         v           v
[장바구니]  [재고 관리]  [결제 처리]  [추천 시스템]
(AP)      (CP)       (CP)       (AP)
|         |           |          |
|         |           |          |
v         v           v          v
Cassandra  MongoDB    PostgreSQL  DynamoDB

장점:

이 사례는 현실적인 분산 시스템에서 CAP 이론이 단순히 " 둘만 선택 " 문제가 아니라, 각 기능과 데이터의 특성에 따라 적절한 트레이드오프를 적용하는 복잡한 설계 결정임을 보여준다.

주제와 관련하여 주목할 내용

주제항목설명
이론적 확장PACELC 이론파티션이 없는 정상 상황에서도 지연 시간 (Latency) 과 일관성 (Consistency) 사이의 트레이드오프가 존재한다는 것을 설명하는 확장 이론입니다.
데이터베이스 기술튜닝 가능한 일관성Cosmos DB 와 같은 최신 데이터베이스는 애플리케이션 요구사항에 따라 일관성 수준을 선택할 수 있는 " 다이얼 " 기능을 제공합니다.
분산 합의Raft, Paxos 알고리즘CP 시스템에서 널리 사용되는 합의 알고리즘으로, 분산 노드 간 데이터 일관성을 보장합니다.
충돌 해결 기법CRDT(Conflict-free Replicated Data Types)AP 시스템에서 데이터 충돌을 자동으로 해결할 수 있는 수학적 데이터 구조로, 최종적 일관성을 보장합니다.
하이브리드 아키텍처폴리글랏 지속성여러 유형의 데이터베이스를 함께 사용하여 각 데이터 유형에 가장 적합한 CAP 특성을 제공하는 아키텍처 접근 방식입니다.
지역적 분산 전략지리적 샤딩사용자 위치에 가장 가까운 데이터 센터에 데이터를 배치하여 지연 시간을 최소화하면서 분산 시스템의 장점을 유지하는 전략입니다.
장애 테스트카오스 엔지니어링의도적으로 시스템에 장애 (네트워크 파티션 포함) 를 주입하여 CAP 전략의 효과를 검증하는 방법론입니다.
에지 컴퓨팅 적용에지 - 클라우드 협업 모델에지 디바이스와 클라우드 간의 효율적인 데이터 동기화 및 일관성 관리 전략을 다룹니다.

추가 학습 주제

CAP 이론과 관련하여 추가로 학습할 만한 주제들은 다음과 같다:

카테고리주제설명
이론적 확장PACELC 이론CAP 이론을 확장하여 파티션이 없는 정상 상황에서의 지연 시간과 일관성 트레이드오프를 설명하는 이론
이론적 확장BASE 원칙Basically Available, Soft state, Eventually consistent 의 약자로, ACID 의 대안으로 제시되는 분산 시스템 설계 원칙
일관성 모델다양한 일관성 모델강한 일관성, 약한 일관성, 최종적 일관성, 인과적 일관성, 세션 일관성 등 다양한 일관성 수준과 모델
분산 알고리즘분산 합의 알고리즘Paxos, Raft, PBFT 등 분산 시스템에서 합의를 이루는 알고리즘들
데이터 구조CRDTConflict-free Replicated Data Types 로, AP 시스템에서 자동 충돌 해결을 가능하게 하는 데이터 구조
아키텍처 패턴이벤트 소싱상태 변경을 이벤트로 캡처하여 저장하는 패턴으로, CAP 트레이드오프를 관리하는 데 활용됨
아키텍처 패턴CQRSCommand Query Responsibility Segregation 으로, 읽기와 쓰기를 분리하여 서로 다른 CAP 특성을 적용할 수 있게 함
기술 구현분산 데이터베이스MongoDB, Cassandra, DynamoDB 등 다양한 분산 데이터베이스 시스템의 CAP 특성과 구현 방식
장애 처리회복력 패턴서킷 브레이커, 벌크헤드, 타임아웃 등 분산 시스템의 장애 대응 패턴
성능 최적화분산 캐싱Redis, Memcached 등을 활용한 분산 캐싱 전략과 CAP 트레이드오프

관련 분야 및 학습 내용

카테고리주제설명
분산 시스템분산 시스템 기초분산 시스템의 기본 개념, 아키텍처, 도전 과제 등
분산 시스템분산 시스템 동기화시간 동기화, 벡터 클록, 논리적 시계 등 분산 시스템에서의 이벤트 순서 관리
데이터베이스NoSQL 데이터베이스키 - 값, 문서, 컬럼 패밀리, 그래프 등 다양한 NoSQL 데이터베이스 유형과 특징
데이터베이스NewSQL관계형 모델을 유지하면서 분산 시스템의 확장성을 제공하는 NewSQL 데이터베이스
시스템 설계확장 가능한 시스템 설계수평적/수직적 확장, 샤딩, 파티셔닝 등 대규모 시스템 설계 원칙
클라우드 컴퓨팅클라우드 네이티브 아키텍처마이크로서비스, 컨테이너, 서버리스 등 클라우드 환경에 최적화된 아키텍처
네트워크네트워크 파티션 처리네트워크 파티션의 감지, 관리, 복구 전략 등
데이터 엔지니어링데이터 복제 전략동기식/비동기식 복제, 멀티 마스터, 마스터 - 슬레이브 복제 등 전략
시스템 신뢰성사이트 신뢰성 엔지니어링 (SRE)고가용성 시스템 구축, 장애 관리, 회복력 있는 시스템 설계 등
보안분산 시스템 보안분산 환경에서의 인증, 권한 부여, 데이터 보호 전략

하위 주제 분류 및 학습 필요 항목

카테고리주제설명
이론PACELC 정리CAP 한계를 보완하고 지연 (Latency) 에 대한 트레이드오프를 설명
데이터 모델BASE 모델Eventual Consistency 기반 시스템에서 사용되는 모델
구현 기술Raft 알고리즘CP 시스템에서 일관성을 보장하기 위한 대표적인 합의 알고리즘
Conflict 해결CRDTAP 시스템에서 데이터 충돌 없이 동기화하기 위한 자료구조

용어 정리

용어설명
CAP 정리분산 시스템에서 일관성, 가용성, 파티션 허용성 중 두 가지만을 동시에 보장할 수 있다는 이론
BASE 모델Basically Available, Soft state, Eventually consistent 로 AP 시스템에서 자주 사용하는 접근 방식
Raft분산 합의를 위한 알고리즘으로, CP 시스템 구현 시 자주 사용됨
Chaos Engineering시스템에 인위적인 장애를 주어 신뢰성과 복원력을 테스트하는 기법
일관성 (Consistency)모든 노드가 동일한 시점에 동일한 데이터를 볼 수 있는 속성으로, 모든 읽기 작업이 가장 최근의 쓰기 작업 결과를 반환함
가용성 (Availability)모든 비장애 노드가 합리적인 시간 내에 모든 요청에 대해 오류 없는 응답을 반환하는 속성
파티션 내성 (Partition Tolerance)네트워크 파티션 (노드 간 통신 단절) 이 발생하더라도 시스템이 계속 작동하는 속성
네트워크 파티션 (Network Partition)분산 시스템에서 노드 간 통신이 일시적으로 끊어지는 상황
강한 일관성 (Strong Consistency)모든 읽기 작업이 항상 가장 최근의 쓰기 작업 결과를 반환하는 일관성 모델
최종적 일관성 (Eventual Consistency)시간이 충분히 지나면 모든 노드가 동일한 데이터를 가지게 되는 약한 일관성 모델
인과적 일관성 (Causal Consistency)인과 관계가 있는 작업들 간의 순서가 모든 노드에서 동일하게 보이는 일관성 모델
쿼럼 (Quorum)분산 시스템에서 작업을 성공적으로 완료하기 위해 동의해야 하는 최소 노드 수
벡터 클록 (Vector Clock)분산 시스템에서 이벤트 간의 인과 관계를 추적하는 데 사용되는 논리적 시계
PACELC 이론CAP 이론을 확장한 이론으로, 파티션이 있을 때 (P) 는 가용성 (A) 과 일관성 (C) 중 하나를 선택하고, 그 외 (E) 에는 지연 시간 (L) 과 일관성 (C) 중 하나를 선택해야 함을 설명
CRDT(Conflict-free Replicated Data Type)네트워크 파티션이나 고지연 환경에서도 데이터 충돌 없이 자동으로 병합될 수 있는 특수한 데이터 구조
2 단계 커밋 (Two-Phase Commit)분산 트랜잭션에서 모든 참여 노드가 커밋이나 롤백에 합의하도록 보장하는 프로토콜
Paxos, Raft분산 시스템에서 노드 간 합의를 이루기 위한 알고리즘
샤딩 (Sharding)대규모 데이터베이스를 여러 작은 부분 (샤드) 으로 분할하여 여러 서버에 분산시키는 기법

참고 및 출처

📘 개념 및 이론 설명

📚 심화 및 오해 정리

🧪 사례 및 응용

⚖️ 확장 모델 (PACELC 등)

🔗 관련 모델 및 기술