Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

csct3434

CAP 이론 : Availability와 Partition Tolerance의 차이점 본문

CS

CAP 이론 : Availability와 Partition Tolerance의 차이점

csct3434 2025. 3. 12. 09:55

CAP 이론에 대해 들어봤지만, 정작 CA가 왜 불가능한지, A와 P의 차이는 무엇인지 확실하게 설명할 수 없었습니다. 그래서 이번 기회에 CAP 이론을 제대로 정리해보고자 합니다.


1. CAP 이론이란?

CAP 이론은 분산 시스템에서는 Consistency(일관성), Availability(가용성), Partition Tolerance(분할 내성) 중 최대 두 가지만 만족할 수 있다는 이론입니다. 즉, 세 가지를 동시에 만족하는 완벽한 분산 시스템은 존재할 수 없습니다.

CAP의 구성 요소

  1. Consistency (일관성)
    • 모든 노드가 항상 동일한 최신 데이터를 반환해야 한다.
      • The property that ensures all nodes in a distributed system see the same data at the same time, providing a uniform view of the system.
    • 데이터가 변경되었을 경우, 즉시 모든 노드에 반영되어야 한다.
  2. Availability (가용성)
    • 모든 요청에 대해 반드시 응답을 반환해야 한다.
      • The property that ensures every request receives a response, regardless of the state of individual nodes, meaning the system remains operational.
    • 다만, 최신 데이터가 아닐 수도 있고, 다른 노드의 데이터와 불일치할 가능성이 있다.
  3. Partition Tolerance (분할 허용성)
    • 네트워크가 단절되더라도 시스템은 완전히 멈추지 않고, 각 노드는 독립적으로 계속 작동해야 한다.
      • The ability of a distributed system to continue operating despite network partitions that prevent some nodes from communicating with others.

2. Partition Tolerance(P)는 응답 여부와 무관하다

많은 사람들이 Partition Tolerance(P)가 있으면 응답이 보장된다고 오해합니다. 하지만 P의 핵심은 네트워크가 끊겨도 개별 시스템이 계속 동작할 수 있어야 한다는 것이지, 반드시 응답을 보장하는 것은 아닙니다.

 

P는 네트워크 단절(Network Partition)이 발생했을 때 시스템이 개별적으로 운영될 수 있는지를 의미합니다.

P를 보장한다고 해서 A(응답 보장)까지 보장되는 것은 아닙니다.


3. CAP 이론에서의 선택: CP vs. AP

CAP 이론에 따르면, 네트워크 분할(P)은 현실적으로 피할 수 없으므로 P를 기본적으로 고려해야 합니다. 그러면 A(가용성)과 C(일관성) 중 하나를 선택해야 하는 상황이 됩니다.

CP (Consistency + Partition Tolerance)

  • 데이터 일관성을 유지하기 위해 일부 요청을 거부할 수 있다.
  • 네트워크 단절이 발생하면 데이터의 불일치를 방지하기 위해 일부 노드가 응답하지 않을 수도 있음 (A를 포기)
  • 대표적인 예: 분산 데이터베이스 (MongoDB, HBase, Zookeeper)

AP (Availability + Partition Tolerance)

  • 네트워크 단절이 발생하더라도 시스템은 반드시 응답해야 한다.
  • 최신 데이터가 아닐 가능성이 있지만, 시스템이 멈추지 않고 계속 응답을 반환함 (C를 포기).
  • 대표적인 예: NoSQL 데이터베이스 (DynamoDB, Cassandra, CouchDB)

CA (Consistency + Availability) – 현실적으로 불가능

  • 모든 노드가 항상 최신 데이터를 반환하면서, 동시에 모든 요청에 응답하는 것은 네트워크 장애가 없는 경우에만 가능함.
  • 현실적으로 네트워크 장애를 피할 수 없기 때문에 CA 시스템은 분산 환경에서는 구현 불가능함.
  • 단일 노드 데이터베이스(MySQL 싱글 인스턴스)에서는 가능하지만, 분산 시스템에서는 불가능함.

4. CAP 이론을 적용하는 방법

CAP 이론은 시스템의 특성과 요구사항에 따라 어떤 요소를 희생할 것인지 결정하는 가이드라인입니다.

  • CP 시스템을 선택해야 하는 경우: 금융 거래 시스템, 강력한 데이터 정합성이 필요한 환경.
  • AP 시스템을 선택해야 하는 경우: 글로벌 서비스, SNS, 캐시 시스템처럼 빠른 응답이 중요한 경우.

💡 핵심 정리

P(Partition Tolerance)는 기본 전제이다 (네트워크 장애는 현실적으로 피할 수 없기 때문.)

P를 보장한 상태에서 A(가용성)와 C(일관성) 중 하나를 선택해야 한다.

AP 시스템은 빠른 응답을 보장하지만 최신 데이터가 아닐 수도 있다.

CP 시스템은 최신 데이터를 보장하지만, 네트워크 장애 시 응답하지 않을 수도 있다.

CA 시스템은 네트워크 장애가 없는 경우에만 가능하며, 현실적으로 분산 시스템에서는 불가능하다.


5. 마무리

CAP 이론은 분산 시스템을 설계할 때 매우 중요한 개념입니다. 이 이론을 이해하면 어떤 시스템을 구축해야 할지 명확한 방향을 잡을 수 있습니다.

 

📌 한 문장 요약: "분산 시스템에서는 네트워크 장애를 고려해야 하며, 일관성을 유지할 것인지, 가용성을 유지할 것인지 선택해야 한다."