카테고리 없음

네트워크 CAP 이론

jeongchanhyo 2025. 3. 10. 20:43

CAP이론이란?

CAP이론은 분산 시스템에서 세가지 주요 특성을 말하는 이론이다. 일관성(Consistency), 가용성(Availability), 분할 내성(Partition Tolerance)을 말하며 분산 시스템은 이 세가지 특성을 동시에 완벽하게 만족시킬 수는 없으며, 항상 두 가지 특성만을 만족할 수 있다.

1. 일관성

정의

모든 노드(데이터를 저장하고 처리하는 기본 단위)가 동일한 데이터를 동시에 볼 수 있어야한다. 즉, 어떤 노드에서 데이터를 변경하면, 그 변경 내용이 모든 노드에  즉시 반영되어야 한다.

즉 모든 유저의 화면이 같은 상황을 만드는 것이다.

 예시

롤에서 내가 피오라를 한다고 치고, 상대방이 다리우스를 한다고 치자, 이 때 피오라의 응수(W)와 다리우스의 포획(E)의 심리전 싸움은 유저들의 심장을 뛰게 만들고 긴장하게 만드는 중요한 요소다. 하지만 피오라 유저와 다리우스 유저의 화면이 다르다면 어떨까? 매우 이상한 현상이 자주 나오고, 유저가 느끼기에는 자신이 잘못하지않았는데 잘못된 결과가 나와 매우 불쾌한 경험을 하게 될것이다. 이런 게임의 경우 일관성을 지키는것이 매우 중요하다.

이렇게 되었을 때 양쪽의 컴퓨터에서 다른 화면을 보지않고 제대로 볼 수 있을것이다.

만약 일관성이 깨진다면?

은 가용성에서 같이 이해하는게 좋을거같다.

 

2.가용성

정의

가용성은 시스템이 항상 요청에 대해 응답할 수 있어야 한다는 것을 의미. 즉, 사용자가 요청을 보내면 시스템은 항상 응답을 하도록 보장해야 하기 때문에 일부 노드에 장애가 발생해도 나머지 노드는 정상적으로 서비스를 제공해야된다.

즉 플레이어끼리 다른 수치로 표기되더라도 일단 진행되고 나중에 데이터 병합을 통해 수정하는 느낌이다. 

예시

이해가 어렵기 때문에 아까 위의 피오라와 다리우스를 예시로 들어 보겠다. 여기에 쓰기에 좋은건 아니지만 어찌됐든 차이는 확실히 느낄 수 있기 때문이다.

이런식으로 될것이다. 이렇게 되면 B컴퓨터의 시야에서는 분명히 내가 스킬을 썼고 상대가 반응을 못했는데 갑자기 반응이 된것으로 보일것이다. 게임하는 유저라면 정말 불쾌할것이기 때문에 어떤 게임이냐에 따라 잘 선택하는 것이 좋다.

다른 예시로는 메이플스토리가 있다. 메이플스토리를 2개의 PC에 틀어놓고 같은 맵에서 A PC의 캐릭터를 움직이면 잠시 후에 B PC의 화면에서 A캐릭터가 움직이는걸 볼 수 있다. 이 경우 메이플스토리가 일관성을 버리고 가용성을 채택했기 때문에 볼 수 있는 현상이다.

3.분할 내성

정의

네트워크의 일부가 분리되더라도 시스템은 계속 작동해야된다.실제 네트워크 환경에서는 통신 장애를 피할 수 없으므로 필수적인 요소로 간주된다.

예시

아시아/유럽/북미 서버간 연결이 끊어져도 지역별로 독립운영을 통해 한국과 미국 간 케이블 장애 발생 시 에도 문제없이 운영되는 것이다. 롤도 한국서버, 중국, 북미, 유럽, 일본 등등으로 나눠져있는것을볼 수 있다. 이건 꼭 고려해야되는 부분이다.

 

배운점

모든 처리에는 순서가 있고, "동시"라는건 없다.

이게 정말 중요하다. 이걸 이해해야 네트워크도 이해가 되는거같다.