IT/CS 공부

[CS] CAP 정리

박소민 2025. 5. 15. 09:45
CAP 정리란?

: 분산 시스템은 아래 세 가지 특성 중 동시에 두 개만 만족할 수 있다는 이론.

  • C (Consistency): 일관성
  • A (Availability): 가용성
  • P (Partition Tolerance): 분할 내성

각 특성의 의미

 

속성 설명
일관성 (C) 모든 노드가 항상 동일한 데이터를 보여줌
가용성 (A) 모든 요청에 대해 항상 응답을 보장함
분할 내성 (P) 네트워크 장애(노드 간 통신 불가) 상황에서도 시스템이 계속 동작함
 

왜 3가지를 동시에 만족할 수 없는가?
  • 네트워크가 분할(P) 되었을 때,
  • 일관성(C) 을 지키려면 응답을 지연시켜야 하고,
  • 가용성(A) 을 지키려면 일단 응답하고 데이터 동기화를 나중에 해야 함
    → 결국 C와 A는 동시에 보장할 수 없음

조합별 유형 및 예시

 

유형 보장되는 특성 희생하는 특성 설명
CA 일관성 + 가용성 분할 내성 네트워크 끊기면 시스템 중단 → 현실적으로 구현 불가능
CP 일관성 + 분할 내성 가용성 장애 시 응답 지연되지만 데이터 정확성 보장
예: 은행, 금융 시스템
AP 가용성 + 분할 내성 일관성 장애 시에도 응답하지만 데이터는 일시적으로 불일치
예: SNS, 메시징 시스템
 

4. 실제 시스템 설계에서의 선택
  • CP 선호: 정확한 데이터가 중요한 경우 (결제, 계좌 등)
  • AP 선호: 빠른 응답이 중요한 경우 (소셜 서비스, 로그 시스템 등)