SeokRae / spring-transaction

트랜잭션 관련 내용 공유를 위한 레포
1 stars 0 forks source link

CAP 이론 - #10

Open SeokRae opened 1 month ago

SeokRae commented 1 month ago

References

CAP 이론 개요

분산된 환경에서 트랜잭션 처리와 데이터 동기화 문제를 다루기 위한 이론

CAP 이론의 세 가지 요소

  1. Consistency (일관성):

    • 모든 노드가 같은 시간에 같은 데이터를 보유하고 있다는 의미입니다.
    • 분산 시스템에서 데이터가 여러 노드에 걸쳐 분산되어 있을 때, 모든 읽기 요청에 대해 최신의 데이터를 반환해야 한다는 것을 말합니다.
    • 즉, 어떤 노드에서 데이터를 읽든, 그 값이 항상 동일해야 합니다.
  2. Availability (가용성):

    • 시스템이 항상 응답할 수 있는 상태를 의미합니다.
    • 분산 시스템에서 데이터가 요청되었을 때 항상 응답을 제공해야 하며, 일부 노드가 실패하더라도 시스템이 계속 동작해야 한다는 것을 말합니다.
    • 가용성은 성공적인 응답을 빠르게 반환하는 능력을 강조합니다.
  3. Partition Tolerance (네트워크 분할 내성):

    • 분산 시스템의 네트워크에서 통신이 중단되거나 지연되더라도 시스템이 계속 동작해야 한다는 것을 의미합니다.
    • 네트워크 분할이 발생하면 노드 간의 통신이 불가능하거나 지연될 수 있는데, 그 상황에서도 시스템의 일관성이나 가용성이 유지되어야 한다는 속성입니다.

CAP 이론의 핵심

CAP 이론의 핵심은 세 가지 속성 중에서 한 시스템이 동시에 세 가지를 모두 충족할 수 없다는 것입니다. 즉, 분산 시스템에서는 Consistency(일관성), Availability(가용성), Partition Tolerance(네트워크 분할 내성) 중 두 가지만 만족할 수 있고, 나머지 하나는 포기해야 한다는 것입니다.

  1. CA (Consistency + Availability):

    • 일관성과 가용성을 모두 제공하지만, 네트워크 분할이 발생하면 시스템이 정상적으로 동작하지 않음.
    • 즉, 네트워크 분할 상황에서는 시스템이 중단될 수 있습니다.
    • 네트워크가 항상 정상적일 때나 분산 시스템이 아닌 경우에 적용 가능합니다.
  2. CP (Consistency + Partition Tolerance):

    • 네트워크 분할이 발생하더라도 일관성을 유지하지만, 가용성을 포기합니다.
    • 즉, 시스템이 분할된 경우 일부 노드가 응답을 하지 않을 수 있지만, 일관된 데이터를 반환합니다.
  3. AP (Availability + Partition Tolerance):

    • 네트워크 분할이 발생해도 가용성을 유지하지만, 일관성을 포기합니다.
    • 모든 요청에 대한 응답을 제공하지만, 서로 다른 노드에서 반환된 데이터가 일관되지 않을 수 있음.

CAP 이론의 실제 적용

CAP 이론에 따라 시스템을 설계할 때는 어떤 속성을 우선시할 것인지에 따라 설계 전략이 달라집니다. 분산 시스템에서는 주로 CP(일관성과 네트워크 분할 내성) 또는 AP(가용성과 네트워크 분할 내성) 모델 중 하나를 선택해야 합니다.

결론

CAP 이론은 분산 시스템에서 일관성, 가용성, 네트워크 분할 내성의 세 가지 속성 중에서 두 가지를 선택하고, 나머지 하나를 포기하는 것이 불가피하다는 이론입니다. 이 이론을 통해 개발자는 시스템의 요구 사항에 따라 어떤 속성을 우선시해야 할지를 결정하게 됩니다.