새소식

DevOps/1. 이론

CAP 이론

  • -

SNS 미니 프로젝트를 들어가기 앞서 SNS의 특징에 대해 살펴보았다. SNS의 핵심적인 기능은 [뉴스피드]이다. [뉴스피드] 기능에서 가장 중요하게 살려야 하는 특징으로는 실시간성인데, CAP 이론은 프로그램 설계 단계에서 SNS의 실시간성과 같이 프로그램의 특징에 따라 설계 모델을 결정하는 데에 기반이 되는 이론이다.

 

CAP 이론

 CAP는 일관성(Consistency), 가용성(Availability), 분할 내성(Partition tolerance)의 약자로, 이 세 가지 속성 중에서 동시에 모두를 만족시킬 수 없다는 이론이다. 

  • 일관성(Consistency) : 데이터가 누가 보든지 같은 데이터가 보여야한다. 당연하게 생각될 지 모르겠지만, 0.000001의 차이가 있더라도 같은 데이터가 보여야한다는 것이 핵심이다. 대표적으로 은행 어플과 같은 금융 도메인 프로그램에서 일관성이 중요하다.
  • 가용성(Availablity) : 일관성과 반대이다. 에러가 없고, 속도가 빠르며, 서비스가 다운되면 안된다는 특성이다. SNS가 대표적이다.
  • 분단 허용성(Partition tolerance) : 서버 하나가 죽어도 서비스가 죽지 않는다는 특성인데, 분산 시스템에서는 무조건 챙겨야한다.

 

결론

Partition tolerance 는 무조건 가져가야하는 특징이기 때문에 결국 CP 혹은 AP를 선택하는 것이 분산 시스템에서의 CAP 이론이다. 데이터 일관성이 중요한 프로그램인 경우 CP를, SNS와 같이 데이터의 최신성이 중요한 경우 AP를 채택하여 설계해야한다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.