# 검증 관문을 설계해보기

> **이 장에서 배우는 것**
> 읽는 장이 아니라 **하는 장**입니다. 우리 산출물 하나를 골라 **"사람이 안 보고도
> 나갈 수 있는 조건"**을 적습니다. 못 적는 항목이 나오면 그게 지금 사람이 붙어
> 있는 이유입니다.

## 준비물

```
□ 40분
□ 실제로 밖으로 나가는 산출물 1개
   · 코드 배포, 고객에게 가는 문서, 외부 게시물 무엇이든
□ 지금 그것을 검수하는 사람 1명
□ 종이 또는 표 파일
```

---

## 1단계 — 지금 누가 무엇을 보나 (10분)

검수자가 실제로 **눈으로 확인하는 것**을 전부 적으세요. "대충 훑는다"도
적습니다.

| # | 무엇을 보나 | 왜 보나 | 걸리는 시간 |
|---|---|---|---|
| 1 | | | |
| 2 | | | |
| 3 | | | |

```
적는 요령:
  "품질을 본다" ✗        → 무엇을 보면 품질이 나쁜 줄 아는지 적으세요
  "숫자가 맞는지 본다" ✓
  "말투가 우리 것인지 본다" ✓
```

**"왜 보나" 칸이 비는 항목이 있으면 표시해두세요.** 예전에 사고가 났던 흔적일
수도 있고, 아무도 이유를 모르는 관성일 수도 있습니다.

---

## 2단계 — 세 갈래로 나누기 (10분)

각 항목을 **누가 판정할 수 있는가**로 나눕니다.

| 갈래 | 기준 | 예 |
|---|---|---|
| **기계가 판정** | 답이 참/거짓으로 갈림 | 숫자 합계, 필수 항목 유무, 형식, 링크 유효성 |
| **기계가 후보만** | 의심되는 것을 표시까지 | 말투 이상, 평소와 다른 값, 금칙어 |
| **사람만** | 맥락과 책임이 필요 | 이 시점에 이 말을 해도 되는가 |

```
□ 1단계 항목을 전부 세 칸 중 하나에 넣었다
□ "사람만"이 절반을 넘는다면 → 2단계를 다시 하세요
```

**두 번째 줄이 흔합니다.** 처음 나눠보면 대부분 "사람만"으로 갑니다. 한 번 더
쪼개보세요 — "이 문서가 맞는지 본다"는 사람만이지만, 그 안에 든 "금액이 표와
일치하는지"는 기계가 합니다.

---

## 3단계 — 관문 세 개 세우기 (15분)

[자동 검증](/guide/ha-phase3-validation)의 순서대로 배치합니다.

```
관문 1 (기계, 초)     : 통과 못 하면 아예 진행 안 됨
관문 2 (기계, 분)     : 통과 못 하면 사람에게 표시
관문 3 (사람, 필요시) : 관문 2가 표시한 것만
```

| 관문 | 무엇을 검사 | 실패하면 |
|---|---|---|
| 1 | | |
| 2 | | |
| 3 | | |

### 각 관문에 반드시 적어야 하는 것

```
□ 통과 기준이 한 줄로 적혀 있나
□ 실패했을 때 무엇이 일어나나 (멈춤? 표시? 되돌림?)
□ 누구에게 알리나
```

**두 번째가 빠지면 관문이 아니라 로그입니다.** 실패했는데 아무 일도 안 일어나면
아무도 안 봅니다.

---

## 4단계 — 되돌리기 확인 (5분)

마지막 질문 하나입니다.

```
□ 관문을 다 통과했는데 그래도 잘못 나갔다면, 되돌리는 데 얼마나 걸리나?
```

| 답 | 뜻 |
|---|---|
| 분 단위 | 관문을 느슨하게 해도 됩니다. 빨리 내보내고 고치세요 |
| 시간 단위 | 지금 설계가 적당합니다 |
| **되돌릴 수 없다** | **관문 3(사람)을 반드시 두세요** |

**되돌리기 비용이 관문의 두께를 정합니다.** 되돌리기가 싼 것에 두꺼운 관문을
세우면 속도만 잃고, 되돌릴 수 없는 것에 얇은 관문을 세우면 언젠가 사고가
납니다.

---

## 자기 점검

```
□ 검수자가 보는 것을 이유까지 적었다
□ "사람만"이 절반 이하로 내려갔다
□ 관문마다 "실패하면 무엇이 일어나나"가 적혀 있다
□ 되돌리기 시간을 실제로 답했다
```

두 번째가 안 됐다면 2단계로 돌아가 항목을 더 쪼개세요. **"사람만"이 많다는 것은
검증이 어려운 게 아니라 아직 안 쪼갠 것입니다.**

---

## 확인

**1. "사람만"으로 분류된 항목이 절반을 넘으면 무엇을 해야 합니까?**

<details>
<summary>답</summary>

**항목을 더 쪼개야 합니다.** "문서가 맞는지"는 사람만이지만 그 안의 "금액이 표와
일치하는지"는 기계가 합니다. 덩어리째 두면 전부 사람 몫으로 남습니다.
</details>

**2. 관문에 "실패하면 무엇이 일어나나"를 안 적으면 어떻게 됩니까?**

<details>
<summary>답</summary>

**관문이 아니라 로그가 됩니다.** 실패해도 아무 일이 없으면 아무도 보지 않게 되고,
검사는 돌지만 통제는 없는 상태가 됩니다.
</details>

**3. 관문의 두께는 무엇으로 정합니까?**

<details>
<summary>답</summary>

**되돌리기 비용**입니다. 분 단위로 되돌릴 수 있으면 느슨하게 하고 빨리 내보내는
편이 낫고, 되돌릴 수 없으면 사람 관문을 반드시 둡니다.
</details>

---

검증을 통과하면 나갑니다 → [프로세스 4 — 즉시 배포](/guide/ha-phase4-delivery)
