Self-Development/Study

CAP 이론 이해하기

JeongKyun 2024. 7. 6.
반응형

근래 다양한 아키텍처와 시스템 구성이 발표되면서, 분산 컴퓨팅 시스템이 많이 대중화가 되어가고 있는것같다. 관련된 개념으로 CAP 이론이 존재하는데, 처음 읽었을 때 정말 기가막히게 Conceptualization 해놓아서 매우 공감하면서 이해했다.

 

 

CAP는 이런 개념이다

분산 컴퓨팅 개념에서 일관성(Consistency), 가용성(Availability), 분할 내성(Partion Tolerance) 중 두가지만 동시에 만족시킬 수 있다는 이론이다.

 

이해를 위해 분산 환경 속에서 위 개념들을 뽀개보면 아래와 같다.

 

일관성(Consistency)

모든 노드가 같은 시점에 동일한 데이터를 갖는 것을 의미한다.

즉, 하나의 노드에서 업데이트 된 데이터는 즉시 다른 모든 노드에 반영되어야한다.

 

가용성(Availability)

모든 요청이 성공적으로 응답받을 수 있는 상태를 의미한다. 모든 운영 노드는 항상 요청에 대해 응답을 반환해야한다. (* 오류 응답이 아닌 정상 응답)

 

 

분할 내성(Partion Tolerance)

네트워크 분할이 발생하더라도, 시스템이 계속 동작할 수 있는 능력을 의미한다.

(네트워크 분할은 노드 간 통신 장애가 발생하는 상황을 뜻한다.)

e.g. 데이터 센터 A와 B사이에 네트워크 장애가 발생하더라도, 각 데이터 센터는 독립적으로 계속해서 동작해야한다.

 

 

CAP 이론 원칙

CAP 이론은 반드시 세 가지 속성을 동시에 모두 만족할 수 없다고 주장하는 개념이다.
(이 맥락을 개념화해서 만들었다는것에 감탄함 ㅎㅎ)

 

그래서 두 개념씩 나누어서 정리해보면 다음과 같다.

CP (Consistency and Partition Tolerance)

일관성과 네트워크 분할 내성을 유지하지만, 가용성을 희생한다.
네트워크 분할이 발생하면 시스템 일부가 응답하지 않을 수 있다.

DB가 일관성을 보장하기 위해 일부 노드를 잠구거나, 네트워크 분할 시 응답하지 않도록 설정된 경우이다.

따라서, 일관성이 매우 중요한 경우에 택한다.

 

AP (Availability and Partition Tolerance)

가용성과 네트워크 분할 내성을 유지하지만, 일관성을 희생한다.
네트워크 분할이 발생하더라도 시스템은 계속 응답하지만, 일시적으로 일관성이 깨질 수 있다.

분산 시스템이 네트워크 분할 시 노드가 독립적으로 작동하여 응답을 제공하지만, 나중에 일관성을 맞추는 경우이다.

따라서, 소셜 미디어, 캐시 시스템 등 가용성과 분산성 요구가 높은 경우 택한다.

 

 

CA (Consistency and Availability)

일관성과 가용성을 유지하지만, 네트워크 분할 내성을 희생한다.
네트워크 분할이 발생하면 시스템이 제대로 동작하지 않을 수 있다.

네트워크 분할 시 시스템이 응답하지 않도록 설정된 경우이다.

따라서, 주로 단일 데이터베이스 센터에서 운영되는 시스템일 경우 택한다.

 

 

 

위 이미지들은 (대표적인) CAP 이론을 통한 DB 분류가 되어있는 도식화다.

영역별로 데이터베이스 플랫폼들이 나열되어있지만, 적절히 유즈케이스별로 다른 형태를 취할 수 있다는것을 알고 넘어가자.

 

 

읽고 좋았던 관련 아티클.

https://ashvinchoudhary.medium.com/understanding-cap-theorem-real-world-examples-and-databases-d1ce0d807dca

 

https://www.nexsoftsys.com/articles/CAP-theorem-database-dbms.html

댓글

💲 많이 본 글