사람을 개입시키는 것은 안전 장치이지만, 잘못 설계하면 형식적인 승인 절차로 굳어 아무것도 막지 못합니다. 이 수업에서는 개입 지점의 선택 기준과 승인 피로 문제, 검토자에게 제공해야 할 정보, 그리고 개입 자체를 지표로 관리하는 방법을 다룹니다.
어디에 사람을 넣을 것인가
사람의 개입 방식은 시점에 따라 세 가지로 나뉩니다.
- 사전 승인 — 행동이 일어나기 전에 사람이 승인합니다. 되돌릴 수 없는 행동에 씁니다.
- 사후 검토 — 행동 후에 결과를 확인합니다. 되돌릴 수 있고 빈도가 높은 작업에 적합합니다.
- 표본 감사 — 전체가 아니라 일부를 뽑아 검사합니다. 품질 추세를 보되 처리량을 유지해야 할 때 씁니다.
선택 기준의 첫 번째 축은 되돌릴 수 있는가입니다. 초안 작성은 마음에 들지 않으면 버리면 되지만, 환불 실행과 외부 발송은 되돌리는 비용이 큽니다. 두 번째 축은 오류의 비용입니다. 빈도가 낮아도 한 번의 실패가 치명적이면 사전 승인이 정당화됩니다.
// 위험도에 따라 개입 방식을 분기한다
function reviewMode(action: Action): "auto" | "confirm" | "block" {
if (!action.reversible && action.blastRadius === "external") return "block";
if (!action.reversible) return "confirm";
if (action.costImpact > THRESHOLD) return "confirm";
return "auto";
}
모든 행동에 사전 승인을 거는 설계는 안전해 보이지만 실제로는 위험합니다. 다음 절에서 다룰 승인 피로 때문입니다.
승인 피로가 통제를 무력화한다
사람이 하루에 수백 건의 승인 요청을 받으면, 몇 주 안에 내용을 읽지 않고 승인하게 됩니다. 이때 승인 절차는 존재하지만 아무것도 걸러 내지 못합니다. 감사 기록상으로는 사람이 검토한 것으로 남기 때문에, 통제가 없는 것보다 더 나쁜 상태가 될 수도 있습니다. 책임 소재가 흐려지고 실제 위험은 그대로이기 때문입니다.
설계로 푸는 방법은 위험도 기반 분기입니다. 자동 허용·확인·차단 세 갈래로 나누고, 확인이 필요한 비율을 사람이 실제로 읽을 수 있는 수준으로 유지합니다. Claude Code의 권한 설정이 허용·차단·확인 세 가지를 두는 것도 같은 이유입니다.
실무에서 쓰는 조정 방법은 다음과 같습니다.
- 묶음 승인 — 동질적인 항목을 묶어 한 번에 검토하되, 이질적인 항목은 분리합니다.
- 기본값 뒤집기 — 빈번하고 안전한 작업은 자동 허용으로 옮기고, 확인 목록을 좁힙니다.
- 점진적 자동화 — 초기에는 확인 비율을 높게 두고, 실측 오류율이 충분히 낮아지면 자동으로 옮깁니다.
세 번째 방식은 도입 초기에 특히 유용합니다. 다만 자동으로 옮기는 근거를 실측치로 남겨야 합니다. "익숙해졌으니 자동으로 바꾸자"는 판단은 근거가 아닙니다.
검토자에게 무엇을 보여줄 것인가
승인 화면에 결과만 띄우면 검토자는 판단할 근거가 없습니다. 형식적 승인은 절차 설계보다 정보 설계의 실패인 경우가 많습니다.
검토자에게 최소한 다음이 필요합니다.
- 무엇을 하려는가 — 실행될 행동과 대상, 되돌릴 수 있는지
- 왜 그렇게 판단했는가 — 근거가 된 입력과 검색 결과
- 다른 선택지는 없었는가 — 후보와 기각 이유가 있으면 판단이 빨라집니다
- 얼마나 확신하는가 — 신뢰도나 근거 부족 표시
- 틀렸다면 무엇을 눌러야 하는가 — 거절뿐 아니라 수정 경로
특히 2번이 빠지면 검토자는 결과의 그럴듯함만 보고 판단하게 되어, 근거가 잘못된 사례를 걸러 내지 못합니다. 앞 수업에서 다룬 근거 대조와 같은 문제입니다. 그럴듯함은 정확성의 신호가 아닙니다.
// 승인 요청에 판단 근거를 함께 싣는다
await requestApproval({
action: { kind: "refund", amount, orderId, reversible: false },
rationale: {
citedDocs: retrieved.map((d) => ({ id: d.id, title: d.title, span: d.span })),
rejectedAlternatives: [{ kind: "partial_refund", reason: "정책상 대상 아님" }],
confidence: "근거 문서 2건 중 1건이 최신 정책과 불일치",
},
onReject: { escalateTo: "policy_team" },
});
confidence 필드처럼 불확실성을 숨기지 않고 드러내는 설계가 검토의 질을 크게 바꿉니다.
개입을 지표로 관리하기
휴먼 인 더 루프는 한 번 설계하고 끝내는 장치가 아니라 계속 조정해야 하는 통제입니다. 조정하려면 측정해야 합니다.
관리에 쓰는 지표는 다음과 같습니다.
- 개입률 — 전체 처리 중 사람이 개입한 비율
- 거절률과 수정률 — 검토자가 실제로 바꾼 비율
- 검토 소요 시간 — 건당 평균과 분포
- 거절 사유 분포 — 무엇 때문에 막히는가
읽는 법이 중요합니다. 거절률이 0에 가까우면 통제가 형식화되었거나 개입 지점이 잘못 잡힌 신호입니다. 사람이 걸러 내는 것이 없다면 그 승인 단계는 지연만 만들고 있는 셈이니, 자동으로 옮기고 대신 표본 감사로 전환하는 편이 낫습니다. 반대로 거절률이 높다면 상류의 프롬프트나 검색이 잘못되어 있을 가능성이 큽니다. 사람이 방어선 역할을 하고 있는 것이라, 근본 원인을 고쳐야 합니다.
검토 소요 시간의 분포도 봐야 합니다. 평균이 낮아도 꼬리가 길다면 특정 유형에서 판단이 어렵다는 뜻이고, 그 유형에는 추가 정보나 별도 절차가 필요합니다. 이 지표들은 그대로 이해관계자 보고의 재료가 되며, 자동화 확대를 제안할 때의 근거가 됩니다.
시험 함정
- 모든 행동에 사전 승인을 걸수록 안전하다는 선택지 — 승인 피로로 검토가 형식화되면 통제 효과가 사라집니다.
- 거절률이 0인 승인 단계를 잘 작동하는 통제로 해석하는 오답 — 개입 지점이 잘못되었거나 형식화된 신호입니다.
- 승인 화면에 최종 결과만 제시하는 설계 — 판단 근거와 불확실성이 없으면 그럴듯함만 보고 승인하게 됩니다.
- 되돌릴 수 있는 고빈도 작업에 사전 승인을 두는 배치 — 사후 검토나 표본 감사가 적합합니다.
- 익숙해졌다는 이유로 확인 항목을 자동 허용으로 옮기는 판단 — 실측 오류율이 근거가 되어야 합니다.
- 거절률이 높을 때 검토 인력을 늘리는 대응 — 상류의 프롬프트나 검색 품질을 먼저 확인해야 합니다.
실습 시나리오
실제 시험과 같은 형식의 시나리오 문제입니다.
계약서 초안을 생성하는 시스템에 법무 검토 단계를 두었습니다. 6개월간 검토 건수는 월 400건이고 거절률은 0.5%이며, 검토자는 건당 평균 40초를 씁니다. 최근 잘못된 조항이 포함된 계약서가 그대로 통과한 사고가 있었습니다. 가장 적절한 개선은 무엇입니까?
빌드 연습 · 개입 지점 재설계하기
약 45분1.행동 목록의 위험도 분류
시스템이 수행하는 행동을 모두 적고 되돌림 가능성과 영향 범위로 분류합니다.
기대 결과 · 각 행동에 자동·확인·차단 중 하나가 배정됩니다.
2.현재 개입률 측정
지난 기간의 개입률, 거절률, 건당 검토 시간을 계산합니다.
기대 결과 · 거절률이 지나치게 낮거나 높은 구간이 식별됩니다.
3.검토 화면 정보 보강
승인 요청에 근거 문서, 기각된 대안, 불확실성 표시를 추가합니다.
기대 결과 · 검토자가 결과가 아니라 근거를 보고 판단할 수 있는 화면이 됩니다.
4.확인 목록 좁히기
실측 오류율이 낮은 항목을 자동 허용으로 옮기고 근거를 기록합니다.
기대 결과 · 이동한 항목마다 근거가 된 수치가 남아 있습니다.
5.표본 감사 설계
자동으로 옮긴 항목에 대해 표본 비율과 검사 항목을 정합니다.
기대 결과 · 자동화 확대 후에도 품질 추세를 관측할 수단이 남습니다.