다층 가드레일 (Multi-Layer Guardrail) — Defense-in-Depth 동심원
별칭: Multi-Layer Guardrail · 다층 가드레일 · 4중 가드레일 · Defense-in-Depth · 동심원 가드레일
요약
LLM 의 확률적(stochastic) 출력을 결정론적(deterministic) 검증 계층 으로 감싸는 패턴. 여러 층을 동심원 으로 배치하고 각 층이 독립적으로 차단 가능 해야 한다 — Defense-in-Depth. 본 강의 concept/harness-engineering 의 실행 패턴 측면. 핵심 원칙: "의심스러우면 차단(When in doubt, block)" — term/fail-secure.
상세
왜 가드레일이 필요한가
LLM 답변의 99% 는 옳다. 그러나 1% 의 오류 가 프로덕션에서 치명적 이 된다.
| 리스크 | 사례 |
|---|---|
| 로직 오류 | 잘못된 API 시그니처·deprecated 메서드 인용 |
| 금지 패턴 | eval / 위험 명령 / 비권장 패턴 채택 |
| PII 누출 | 실제 사용자 정보 → LLM 외부 API 영구 기록 |
| 컨벤션 위반 | 팀 패턴 무시 + 임의 새 구조 도입 |
→ 모델 개선만으로 해결 불가. 모델을 감싸는 하네스* 가 필수.
4 층 동심원 (운영 시스템용)
| 층 | 이름 | 권위 근거 | 사례 |
|---|---|---|---|
| 1 (최외곽) | 시스템 진실의 원천 (Single Source of Truth) | 공식 사양·API 시그니처·라이브러리 문서 | 존재하지 않는 import / 시그니처 환각 차단 |
| 2 | 조직 비전·핵심 가치 | 팀의 공식 가치 선언 | "테스트 우회 금지" / "eval 사용 금지" |
| 3 | 팀 컨벤션 | 코딩 컨벤션·플레이북·ADR | 폴더 구조 / 네이밍 / 모듈 경계 위반 차단 |
| 4 (최내곽) | 개인정보 보호 (Privacy) | GDPR + 자체 PII 정책 | 휴대폰·주민번호 자동 마스킹, LLM 전송 직전 |
왜 4 층이 최내곽 인가: 다른 모든 층을 통과한 입력도 LLM 외부 API 로 떠나기 직전 한 번 더 마스킹돼야 한다. 한 번 나가면 되돌릴 수 없다.
entity/claude-code Hooks 6 이벤트로 구현
| 이벤트 | 시점 | 가드레일 층 매핑 |
|---|---|---|
| UserPromptSubmit | 입력 직후 | 2 + 3 층 |
| PreToolUse | 도구 호출 직전 | 1 + 4 층 |
| PostToolUse | 도구 호출 직후 | 4 층 (응답 스크러빙) |
| Stop | 턴 종료 | 감사 로깅 |
| SessionStart | 세션 시작 | 컨텍스트 주입 |
| Notification | 알림 | HITL 트리거 |
Defense-in-Depth 흐름
입력 → [UserPromptSubmit: 2+3층] → 모델 → [PreToolUse: 1+4층] → 도구 → [PostToolUse: 4층] → [Stop: 감사] → 응답
각 층 독립 차단 가능 — 하나 실패해도 다른 층이 잡는다.
층별 우선순위
1 시스템 진실 (최우선)
↓ 통과
2 조직 가치
↓ 통과
3 팀 컨벤션
↓ 통과
4 PII (최후 게이트, LLM 전송 직전)
↓ 통과
실행
상위 층 차단 시 하위 층 무관 차단. 어느 층에서든 차단되면 사용자에게 "차단됨" 표시.
방법론
강의 활용 (03 HRN lesson/hrn-superpowers-framework / lesson/hrn-verification-loop 의 심화):
- 충격 명제 (1분): "LLM 99% 옳다 → 1% 가 사고가 된다."
- 4 층 동심원 다이어그램 (3분): 한 슬라이드 — 가장 안쪽 = PII.
- 6 이벤트 Hook 표 (2분): 각 층이 어느 이벤트에 매핑되는지.
- 차단 흐름 다이어그램 (1분): 입력 → 6 이벤트 통과 → 응답.
- Fail-Secure 원칙 (1분): "의심스러우면 차단."
- 사고 사례 회수 (1분): case/lemkin-replit-db-deletion / case/pocketos-cursor-db-deletion — 4 층 가드레일이 있었다면?
주의사항
- 100% 보장 ❌: Defense-in-Depth 는 위험 최소화 목적. 정기 감사·피드백 필수.
- 정규식 우회 가능: "신·천·지" 같은 점 분리 변형. 정기 갱신 + 의심 패턴 학습.
- Soft 경고만으로 ❌: 운영 시스템은 Hard 차단 우선.
- Bypass 권한: 팀 리더 승인 필수. 일반 개발자가 settings.json 편집 ❌.
- 로그 기록: 모든 차단 이벤트 audit.log JSONL — 정기 리뷰.
- 사역 도메인 일반화: 본 카드는 wiki_AI_선용 의 4중 가드레일 (성경/비전/매뉴얼/PII) 을 일반 시스템 (진실/가치/컨벤션/PII) 으로 변환한 결과.