---
title: "쿼럼: 겹치는 응답 집합이 보장을 만들 때 필요한 조건"
author: "Lee"
published_at: "2026-10-22T01:40:04.796Z"
updated_at: "2026-09-30T10:18:40.305Z"
tags: ["컴퓨터공학","분산시스템"]
canonical_url: "https://ariser.io/@writer_a1cd615ab19e/%EC%BF%BC%EB%9F%BC-%EA%B2%B9%EC%B9%98%EB%8A%94-%EC%9D%91%EB%8B%B5-%EC%A7%91%ED%95%A9%EC%9D%B4-%EB%B3%B4%EC%9E%A5%EC%9D%84-%EB%A7%8C%EB%93%A4-%EB%95%8C-%ED%95%84%EC%9A%94%ED%95%9C-%EC%A1%B0%EA%B1%B4"
ai_assisted: false
---

# 쿼럼: 겹치는 응답 집합이 보장을 만들 때 필요한 조건

[원문](https://ariser.io/@writer_a1cd615ab19e/%EC%BF%BC%EB%9F%BC-%EA%B2%B9%EC%B9%98%EB%8A%94-%EC%9D%91%EB%8B%B5-%EC%A7%91%ED%95%A9%EC%9D%B4-%EB%B3%B4%EC%9E%A5%EC%9D%84-%EB%A7%8C%EB%93%A4-%EB%95%8C-%ED%95%84%EC%9A%94%ED%95%9C-%EC%A1%B0%EA%B1%B4)

쿼럼은 분산 연산을 인정하기 위해 응답을 받아야 하는 노드 집합이다. 모든 노드를 기다리지 않으면서 필요한 교집합을 확보하려는 방식이다. 읽기 쿼럼과 쓰기 쿼럼이 겹치면 읽기가 이전 쓰기 정보를 가진 노드를 만날 가능성에 구조적 근거가 생긴다.

![읽기·쓰기 쿼럼의 교집합과 미완료 쓰기로 값이 되돌아갈 수 있는 사례](/api/v1/media/94dfc6ee-3c9e-4463-b11c-69c81fb1e55d)

*쿼럼 교집합은 중요한 조건이지만 버전 선택과 완료 규칙까지 있어야 강한 보장을 만들 수 있다.*

### R, W, N의 교집합 조건

사본 수가 N, 쓰기 확인 수가 W, 읽기 응답 수가 R일 때 R+W>N이면 어떤 읽기 집합도 어떤 쓰기 집합과 적어도 한 노드에서 겹친다. W>N/2면 두 쓰기 집합도 겹친다. N=3,R=2,W=2가 흔한 작은 예다.

```text
Replicas: A, B, C
Completed write quorum: {A, B}
Read quorum:            {B, C}
Intersection:           {B}

R + W = 2 + 2 > 3
Any two such quorums share at least one replica.
```

세 번째 노드 C가 뒤처져도 B가 최신 값을 알려줄 수 있다. 그러나 읽기 응답 여러 개 중 어떤 버전을 고를지, 버전 순서가 어떻게 정의되는지, 실패 중 어떤 값이 공개되는지는 추가 규칙이다. 집합이 겹친다는 수학적 사실만으로 선형 가능성이 자동 보장되지 않는다.

### 미완료 쓰기가 만드는 함정

새 값이 A에만 기록되고 다수 확인 전에 쓰기가 중단되었다고 하자. 읽기 {A,B}가 새 값을 고른 뒤, 다음 읽기 {B,C}가 옛 값을 고르면 새 값에서 옛 값으로 되돌아간다. 두 읽기는 서로 겹쳐도, 첫 읽기가 본 값을 겹치는 노드에 보존하지 않으면 모순된 관찰이 가능하다.

```text
Before reads: A=new, B=old, C=old
Read 1 contacts A,B -> returns new
Read 2 contacts B,C -> returns old
No intervening successful write explains the reversal.
```

원자 레지스터 알고리즘은 읽기 중 최댓값 버전을 확인한 뒤 다시 쿼럼에 기록하는 단계 등을 사용해 이런 문제를 다룬다. 버전 태그의 유일한 순서, 동시 쓰기 처리, 읽기 완료 조건이 정확성 증명의 일부다.

쿼럼 크기가 작으면 더 많은 장애에서도 응답하거나 지연을 줄일 수 있지만 교집합 조건을 잃을 수 있다. 큰 쿼럼은 응답할 노드가 더 많이 필요하다. 응답 수는 노드 수만 셀 뿐, 같은 전원이나 지역 장애가 여러 노드에 동시에 영향을 주는지도 따로 본다.

임시 대체 노드를 사용하는 sloppy quorum은 원래 사본 집합의 엄격한 교집합 가정을 바꿀 수 있다. 고정 N에 대한 부등식만 적용해 같은 보장을 주장하면 안 된다. 클러스터 멤버십 변경도 쿼럼 집합의 의미를 바꾼다.

쿼럼은 복제 읽기·쓰기, 합의 투표, 설정 변경 등에서 쓰이지만 각 목적의 안전성 규칙은 다르다. “다수면 맞다”라는 설명을 넘어서 어떤 완료 연산의 어떤 정보가 다음 연산에 전달되는지 추적해야 실제 보장을 이해할 수 있다.

응답한 노드가 어떤 값을 영속화했는지도 쿼럼의 의미에 포함되어야 한다.

### 참고 자료

- [MIT · Distributed Systems](https://pdos.csail.mit.edu/6.824/)
- [Herlihy & Wing · Linearizability](https://www.cs.cmu.edu/~wing/publications/HerlihyWing90.pdf)
