ONE QUESTION AT A TIME.

천천히 생각하고, 분명하게.

TODAY’S QUESTION228 / 1500
분산 시스템난이도 중하5분 답변 목표 · 보강본

네트워크가 두 지역으로 갈라진 동안에도 서비스를 계속 제공하려 합니다. CAP의 C와 A를 어떤 대가로 선택하나요?

잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?

답변과 점검 포인트 펼치기답변 접기
01

구두 답변

정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.

CAP는 네트워크 분할이 실제로 발생한 동안 강한 일관성과 양쪽의 계속된 성공 응답을 동시에 유지하기 어렵다는 선택을 설명합니다. C는 모든 복제본이 늘 같은 바이트라는 뜻이 아니라 연산이 하나의 최신 순서에 맞게 관찰되는 강한 보장입니다. A는 살아 있는 노드가 오류를 내는 것이 아니라 요청 명세에 맞는 응답을 계속 제공하는 성질입니다. 분할 중 한쪽이나 과반만 쓰기를 허용하면 C를 지키는 대신 다른 쪽의 A를 포기합니다.

분할 중 쿼럼과 충돌

3개 노드에서 과반은 2개입니다. 양쪽 지역이 독립적으로 쓰기를 성공시키면 같은 좌석이나 잔액에 대해 서로 다른 성공을 주장할 수 있습니다. 과반 확인을 요구하면 한 지역만 성공하고 다른 지역은 대기·실패로 돌아서 결정 집합의 교집합을 유지합니다. 이것을 분할 중 일관성 우선(CP 선택)으로 볼 수 있지만 기능과 연산 범위를 함께 적겠습니다.

좋아요 수·분석 수집처럼 나중에 병합할 수 있는 기능은 각 지역의 쓰기를 받아 가용성을 우선할 수 있습니다. 복구 뒤 카운터를 합산하거나 문서 충돌을 병합해야 하며, AP라고 해서 충돌 비용이 사라지지는 않습니다.

정상과 장애를 분리한다

정상 네트워크에서도 쿼럼 왕복·복제 대기 때문에 강한 경로가 느릴 수 있지만, 평상시 지연과 분할 중 가용성 저하는 다른 지표입니다. CAP를 평소에 셋 중 둘을 고르는 공식으로 설명하면 부정확합니다. 좌석 확정은 최신 상태를 확인하지 못하면 실패·보류로 돌리고, 좋아요 조회는 잠정 값과 동기화 시각을 허용할 수 있습니다.

검증에서는 지역 연결 단절 뒤 읽기·쓰기 조건을 기록합니다. 중복 좌석 확정이 없는지, AP 기능의 양쪽 변경이 정해진 병합으로 수렴하는지, 재시도 가능한 오류가 숨겨지지 않는지 확인합니다. 핵심은 라벨보다 분할 중 어떤 연산이 성공하고 어떤 값이 잠정적인지 계약으로 명시하는 것입니다.

과반 숫자와 프로토콜을 구분합니다

3개 중 2개씩 고르면 집합은 반드시 겹칩니다. 그러나 겹친 노드가 서로 다른 값을 무조건 받아들이면 두 결정이 모두 성공할 수도 있으므로 교집합만으로 안전성이 생기지는 않습니다. 한 세대의 투표, 이전 결정 보존, 로그 최신성 검사 같은 프로토콜 규칙이 함께 필요합니다. 고정 과반을 쓰는 Raft의 선택을 모든 복제 제품의 쿼럼 읽기·쓰기에 그대로 적용하지 않겠습니다.

분할이 없을 때에도 모든 노드에 동시에 변경이 적용될 필요는 없습니다. 리더가 확정 순서를 지키고 읽기가 안전한 적용 위치를 기다리면 뒤처진 복제본이 있어도 선형화 가능한 연산을 제공할 수 있습니다. 반대로 분할 중 모든 노드가 오류만 즉시 반환한다면 응답 시간은 짧아도 CAP의 가용성을 만족했다고 할 수 없습니다.

분석 카운터를 양쪽에서 증가시키는 AP 경로는 중복 메시지를 합산하면 과대 집계될 수 있습니다. 참여자별 누적값의 최댓값을 병합하는 등 데이터별 수렴 규칙이 필요합니다. 좌석 예약은 지역별 재고를 사전에 나누는 방식으로 일부 진행을 허용할 수도 있지만, 그 경우 공유하는 전역 자원을 지역별 권리로 바꾼 것이며 원래 문제를 아무 비용 없이 해결한 것은 아닙니다.

02

득점 포인트

이해가 드러나는 지점을 확인해 보세요.

  • C·A를 분할 중 관찰 가능한 계약으로 설명한다.
  • 쿼럼 성공과 독립 쓰기의 충돌을 숫자로 보인다.
  • 기능별 CP·AP 선택과 병합 비용을 말한다.
  • 정상 지연과 장애 가용성을 분리 측정한다.
03

감점 포인트

놓치기 쉬운 조건과 오해를 짚어 보세요.

  • CAP를 평상시 선택표로만 설명한다.
  • 오류 응답도 A라고 말한다.
  • AP면 충돌 병합이 필요 없다고 말한다.
04

더 파고들 거리

하나 더 질문하며 이해의 범위를 넓혀 보세요.

득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.

원리부터 공부하고 싶다면

답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.

← 전체 질문 보기