분산 시스템의 삼각형을 이해하기

궁금하면 500원·2024년 11월 4일
0

미생의 개발 이야기

목록 보기
16/58

CAP 이론은 분산 시스템의 설계에서 중요한 세 가지 속성인 일관성(Consistency), 가용성(Availability), 파티션 내구성(Partition Tolerance)에 대한 관계를 설명하는 이론입니다.

이 이론은 2000년 에리크 브루어(Eric Brewer)에 의해 제안되었으며, 이후 "CAP 정리"로 알려지게 되었습니다.

다음은 각 속성에 대한 설명입니다.

1. 일관성 (Consistency)

  • 모든 노드가 같은 시간에 동일한 데이터를 보장하는 속성입니다.
    즉, 어떤 클라이언트가 데이터를 쓰면, 모든 클라이언트가 이 데이터를 읽을 때 같은 값을 읽게 됩니다.

  • 일관성을 보장하려면 시스템 내의 모든 노드가 동기화되어야 하며, 쓰기 작업이 완료된 후에야 읽기가 가능해야 합니다.

  • 예를 들어, 은행 시스템에서는 계좌 잔고를 업데이트할 때 일관성을 유지하는 것이 매우 중요합니다.

2. 가용성 (Availability)

  • 시스템이 항상 요청에 응답할 수 있는 능력을 의미합니다. 즉, 사용자가 요청을 보내면, 해당 요청에 대해 항상 유효한 응답을 제공해야 합니다.

  • 가용성을 보장하려면 시스템의 일부 노드가 실패하더라도 다른 노드가 요청을 처리할 수 있어야 합니다.

  • 예를 들어, 웹 서비스는 항상 사용자의 요청에 대한 응답을 제공해야 하므로 높은 가용성을 요구합니다.

3. 파티션 내구성 (Partition Tolerance)

  • 네트워크 분할이 발생하더라도 시스템이 계속 정상적으로 동작할 수 있는 능력입니다.
    즉, 노드 간의 통신이 불가능해져도 시스템은 작동을 계속해야 합니다.

  • 분산 시스템에서는 네트워크 오류로 인해 노드 간의 연결이 끊어질 수 있으며, 이런 경우에도 시스템은 일관성이나 가용성 중 하나를 유지해야 합니다.

CAP의 핵심

CAP 이론에 따르면, 분산 시스템에서 이 세 가지 속성을 동시에 완벽하게 만족할 수는 없습니다.

즉, 어떤 시스템이 일관성을 극대화하려고 하면 가용성이 저하될 수 있고, 반대로 가용성을 높이려면 일관성이 손상될 수 있습니다.

이를 통해 분산 시스템의 설계자는 다음과 같은 두 가지 속성을 선택해야 합니다

CA (일관성과 가용성을 선택)

파티션이 발생하지 않는 상황에서 시스템은 모든 노드가 일관성을 유지하고 항상 요청에 응답할 수 있습니다.

CP (일관성과 파티션 내구성을 선택)

네트워크 분할이 발생했을 때 일관성을 우선시하여 일부 요청은 실패할 수 있지만 데이터의 정확성을 보장합니다.

AP (가용성과 파티션 내구성을 선택)

네트워크 분할이 발생했을 때 시스템은 항상 요청에 응답하지만, 일관성은 유지되지 않을 수 있습니다.

결론

CAP 이론은 분산 시스템의 설계와 운영에서 매우 중요한 기준이 됩니다.

설계자는 시스템의 요구 사항에 따라 어떤 속성을 우선시할지를 결정해야 하며, 이를 통해 성능, 신뢰성 및 사용자 경험을 최적화할 수 있습니다.

예를 들어, 금융 서비스에서는 CP 시스템이 요구될 수 있지만, 소셜 미디어 플랫폼에서는 AP 시스템이 더 적합할 수 있습니다.

profile
꾸준히, 의미있는 사이드 프로젝트 경험과 문제해결 과정을 기록하기 위한 공간입니다.

0개의 댓글