프로그래밍 이론/시스템 디자인 설계

분산시스템 _ CAP 이론

minquu 2025. 7. 12. 13:42
반응형

CAP 이론 – 분산 시스템 설계의 첫 단추

분산 시스템을 설계할 때 반드시 고려해야 할 개념이 있습니다. 바로 CAP 이론입니다.
CAP 이론은 시스템이 어떻게 동작해야 하는지, 무엇을 우선시해야 하는지를 결정하는 설계의 방향성을 잡아주는 나침반 같은 역할을 합니다.


🔷 CAP 이론이란?

CAP 이론은 다음 세 가지 속성 중 최대 두 개만 동시에 만족할 수 있다는 이론입니다.

요소 설명
Consistency (일관성) 모든 클라이언트가 동일한 데이터를 읽을 수 있어야 한다.
Availability (가용성) 모든 요청에 대해 항상 응답을 반환해야 한다.
Partition Tolerance (파티션 허용성) 네트워크 장애(파티션)가 발생해도 시스템이 계속 동작해야 한다.

CAP 이론의 핵심은 네트워크가 분리되었을 때 어떤 속성을 포기할 것인가에 대한 선택입니다.


💡 각 요소의 상세 개념

1. Consistency (일관성)

  • 모든 노드가 항상 같은 데이터를 반환해야 함
  • 예: A 사용자가 게시글을 수정하면, B 사용자도 즉시 같은 내용을 봐야 함

2. Availability (가용성)

  • 시스템은 항상 응답을 반환해야 함 (에러든, 캐시된 데이터든)
  • 예: 결제 시스템이 일시적으로 불안정해도, 상품 목록은 계속 응답을 해야 함

3. Partition Tolerance (파티션 허용성)

  • 노드 간 통신 장애가 발생해도 시스템은 멈추지 않고 작동해야 함
  • 예: 서버 간 연결이 끊겨도 서비스 일부가 계속 돌아가야 함

⚖️ 선택의 딜레마: 셋 중 둘만 선택 가능

네트워크 파티션이 발생했을 때, 시스템은 다음 중 하나를 포기해야 합니다.

조합 특징 적용 예시
CP (Consistency + Partition Tolerance) 일관성과 장애 대응을 우선 → 응답이 느릴 수 있음 금융 거래, 은행 시스템
AP (Availability + Partition Tolerance) 항상 응답을 반환하되, 일관성은 나중에 맞춤 SNS, 캐시 서버
CA (Consistency + Availability) 이론적으로만 가능, 네트워크가 절대 끊기지 않는 환경에서만 실현 가능 단일 노드 서버 (이론적)

📌 CAP 이론 적용 예시

시스템 CAP 선택 설명
MongoDB 기본 AP, 옵션 설정 시 CP 가능 쓰기 우선순위 설정으로 선택 가능
Cassandra AP 빠른 쓰기와 읽기 우선, 최종 일관성 모델 사용
HBase CP 정합성을 중요시하는 분석용 데이터베이스

🔄 CAP 보완 개념: BASE 이론

CAP 이론의 실용적 한계를 보완한 개념이 BASE 이론입니다.

구성 요소 설명
Basically Available 대부분의 시간에 가용
Soft State 상태는 시간이 지나면서 바뀔 수 있음
Eventually Consistent 결국에는 데이터가 일관된 상태로 수렴함

BASE는 CAP에서 C 대신 Eventually Consistent를 택함으로써 가용성과 파티션 허용성을 우선시하는 실용적 접근입니다.


🎯 실전 시나리오 예시

A 사용자가 상품 정보를 수정했는데, 네트워크가 분리되어 B는 아직 예전 데이터를 보고 있음.

  • CP 선택: B에게 응답을 거절하거나 기다리게 함 → 일관성 보장
  • AP 선택: B에게 예전 데이터라도 즉시 반환 → 가용성 우선

이처럼 시스템이 어떤 선택을 하느냐에 따라 사용자 경험과 데이터 신뢰성이 갈립니다.


✅ 마무리

CAP 이론은 완벽한 시스템을 만들기 위한 도구가 아니라, 불완전한 네트워크 상황에서 무엇을 우선할지를 결정하는 지침입니다.

당신의 시스템이 무엇을 우선시해야 하는지 고민하는 순간, CAP 이론이 방향을 제시해 줄 것입니다.


🔑 핵심 키워드 요약

  • CAP Theorem
  • Consistency / Availability / Partition Tolerance
  • CP / AP / CA 조합
  • BASE 이론 (Eventually Consistent)
  • 시스템 설계 전략
반응형