3중·4중 가드레일 — 사역 AI의 Defense-in-Depth
별칭: 3중 가드레일 · 4중 가드레일 · Defense-in-Depth · 가드레일 동심원 · Bible Authority + Vision + Ministry + Privacy
3중·4중 가드레일 — 사역 AI의 Defense-in-Depth
「의심스러우면 차단한다(When in doubt, block)」 — Fail-Secure 원칙
한 줄 정의
LLM이 본질적으로 확률적(stochastic) 이라 system prompt만으로는 출력 안전을 100% 보장 못 함. 모델을 감싸는 결정론적(deterministic) 검증 계층 = 가드레일. 사역 AI에서는 3~4 층 동심원으로 배치 (성경 권위 → 교회 비전 → 사역 매뉴얼 → 개인정보 보호). 각 층이 독립적으로 차단 가능해야 한다 (Defense-in-Depth).
요약
LLM의 답변 99%는 옳다. 그러나 1%의 신학·교리·개인정보 오류가 사역 현장에서는 치명적이다. AI가 새가족 안내문에 무심코 "신천지 같은 단체와도 협력 가능"이라 쓰거나, 양육 자료에 동반자 실명 + 상담 내용을 그대로 노출하면 회복 불가능한 피해다. 이 1%를 막는 것이 가드레일이다.
본 LLMWiki는 3 층 (성경 권위 → 교회 비전 → 사역 매뉴얼) 을 기본으로 채택한다. 운영 시스템(ONPP 등)에서는 4 층 (개인정보 보호 추가) 으로 확장한다. 모든 계층은 독립적으로 차단 가능해야 한다 — 한 층이 실패해도 다른 층이 잡는다.
핵심 원칙은 fail-secure = "의심스러우면 차단". 훅 스크립트 자체에 에러가 나도 통과시키지 ❌, 차단한다. fail-open(에러 시 통과)은 절대 금지 안티패턴. ONPP가 온누리교회 차세대본부에서 실제 운영 중인 4중 가드레일 패턴을 본 카드는 그대로 인용·일반화한다.
본 카드는 Ch.6 하네스 엔지니어링 회차의 핵심 자료. Claude Code의 settings.json hooks 시스템(UserPromptSubmit · PreToolUse · PostToolUse · Stop)으로 실제 구현되며, 정규식 패턴·exit code·차단 메시지까지 구체적으로 명시.
본문 상세
1. 왜 가드레일이 필요한가 — 4 가지 사역 리스크
소책자(차세대본부)와 ONPP 지침서가 동일하게 진단:
| 리스크 | 사역 현장 사례 | 피해 |
|---|---|---|
| 신학적 오류 | AI가 "성경에 따르면 모든 종교가 같은 진리"라고 답변 | 다음 세대 신앙 혼동 |
| 이단 교리 인용 | AI가 신천지·여호와의증인 자료를 "성경 해석"으로 인용 | 변증 무력화 |
| 개인정보 누출 | 양육 보고에 동반자 실명·연락처·상담 내용 그대로 LLM에 전송 | 외부 API 서버에 영구 기록 |
| 사역 지침 위반 | 교사가 "말 안 들으면 벌 줘" 식 권위주의 발화를 AI가 무비판 수용 | 다음 세대 양육 철학 붕괴 |
→ 이 리스크는 모델 개선만으로는 해결 ❌. 모델을 감싸는 하네스(harness) 가 필수.
2. 3 층 가드레일 (본 LLMWiki 기본 모델)
1 층: 성경의 권위 (Bible Authority) — 최외곽
권위 근거: Sola Scriptura (오직 성경) — 우리말성경 66권만, 외경·이단 교리 ❌
적용 영역:
- 모든 카드(특히
term/·concept/·synthesis/·article/) - 신학·교리 표현 자동 검증
- 성경 인용의 책·장·절 정합성 (예: 요한복음 4:55 ❌ — 4장은 54절까지)
구현 (본 LLMWiki):
- README.md Canon 9·10·11
- frontmatter
status: draft자동 부여 → 사람 검증 후verified승격 (Canon 8) - A04.04 doctrine-sidecar 에이전트가 자동 스캔
차단 사례:
- 외경 권명 (토비트·유딧·지혜서·집회서·바룩·마카비) 감지 시 즉시 차단
- 이단 단체명 (신천지·여호와의증인·몰몬·안식교·통일교) 감지 시 차단
- 존재하지 않는 성경 구절 번호 감지 시 차단
2 층: 교회 비전·목회 철학 (Vision Layer)
권위 근거: 온누리교회 Acts 29 비전 + 하용조 「복음은 물(본질), 문화는 그릇(용기)」
적용 영역:
- 사용자가 AI에 던지는 질문(UserPromptSubmit)
- 새가족·양육·예배·사역 도구 자동 저작물
차단 사례 (정규식):
| 패턴 | 차단 메시지 |
|---|---|
/교회.*(비판|저격|공격)/ | "온누리 비전과 충돌하는 요청. 교역자와 상의하세요" |
/(타 종교|이단).*포교/ | "교회 비전 위반" |
/비성경적.*옹호/ | "복음 본질 침해 가능" |
3 층: 사역 매뉴얼 (Ministry Layer) — 최내곽 (3 층 모델)
권위 근거: 차세대본부 사역 지침 — 예꿈(영유아) / 꿈땅(유초등) / 파워웨이브(중고등) 연령별 매뉴얼
적용 영역:
- 양육 자료·교사 발화·연령별 콘텐츠
차단 사례:
- 권위주의 발화: "시키는 대로 해", "말 안 들으면 벌 줘", "때려"
- 신체 접촉 지시
- 연령 부적합 콘텐츠 (폭력·자해·성적 묘사·중독성)
- 교사 행동 수칙 위반
Role-based System Prompts (부서별 차별화):
sbg-yk (예꿈, 영유아): "단순하고 밝은 어휘만 사용"
sbg-kt (꿈땅, 유초등): "호기심 존중, 구체적 예시"
sbg-pw (파워웨이브, 중고등): "삶의 고민에 공감하는 톤"
3. 4 층 가드레일 (운영 시스템 — ONPP 등)
위 3 층에 4 층 (개인정보 보호 — Privacy Layer) 추가. 가장 안쪽 = 가장 중요.
4 층: 개인정보 보호 (Privacy) — 최내곽 (운영 시스템)
권위 근거: 개인정보보호법 + 자체 PII 정책
가장 안쪽에 배치하는 이유: 다른 모든 층을 통과한 입력도 LLM 서버로 떠나기 직전 마지막 한 번 더 마스킹돼야 한다. 원문이 단 한 번이라도 외부 API로 나가면 되돌릴 수 없다.
자동 검출 정규식 (한국어 PII):
| 항목 | 정규식 | 마스킹 결과 |
|---|---|---|
| 한국 휴대폰 | \b01[016789]-?\d{3,4}-?\d{4}\b | 010-****-**** |
| 주민등록번호 | \b\d{6}-[1-4]\d{6}\b | ******-******* |
| 한글 실명 + 직책 | \b[가-힣]{2,4}\s*(형제|자매|목사|전도사|장로|집사|권사|성도)\b | 홍*동 형제 |
| 이메일 | \b[\w.+-]+@[\w-]+\.[\w.-]+\b | ****@****.*** |
| 주소(도로명) | \b[가-힣]+(시|도)\s[가-힣]+(구|군)\s[가-힣]+(동|로|길)\b | **시 **구 **로 |
| 질병명 | (암|당뇨|고혈압|우울증|치매|뇌졸중|폐렴) | [질환] |
Hard 차단 vs Soft 경고:
- Hard: 휴대폰·주민번호 → 즉시 exit code 2 차단
- Soft: 이메일·실명+직책 → 경고 로그 후 통과 (정책에 따라 차단으로 변경 가능)
암호화: 운영 DB는 AES-256-GCM (예: prayers.content_encrypted 컬럼)
4. Claude Code Hooks 구현 (실제 코드)
4.1 settings.json 매처 매핑 (ONPP 운영 사례)
{
"permissions": {
"ask": ["WebFetch", "Bash(curl:*)", "Bash(git push:*)"],
"deny": ["Bash(rm -rf:*)", "Bash(sudo:*)"]
},
"hooks": {
"UserPromptSubmit": [{
"matcher": ".*",
"hooks": [{ "type": "command", "command": "node .claude/hooks/guardrail-check.js" }]
}],
"PreToolUse": [
{ "matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": "node .claude/hooks/bible-validator.js" }] },
{ "matcher": "Bash|WebFetch",
"hooks": [{ "type": "command", "command": "node .claude/hooks/pii-masker.js" }] }
],
"PostToolUse": [{
"matcher": ".*",
"hooks": [{ "type": "command", "command": "node .claude/hooks/privacy-scrubber.js" }]
}],
"Stop": [{
"matcher": ".*",
"hooks": [{ "type": "command", "command": "node .claude/hooks/audit-logger.js" }]
}]
}
}
4.2 매처 매핑 표
| 가드레일 층 | 훅 이벤트 | 매처 | 스크립트 |
|---|---|---|---|
| 1 층 성경 | PreToolUse | Write|Edit | bible-validator.js |
| 2 층 비전 | UserPromptSubmit | .* | guardrail-check.js |
| 3 층 사역지침 | UserPromptSubmit | .* | guardrail-check.js |
| 4 층 개인정보 | PreToolUse | Bash|WebFetch | pii-masker.js |
| 4 층 응답 | PostToolUse | .* | privacy-scrubber.js |
| 감사 | Stop | .* | audit-logger.js |
4.3 Defense-in-Depth 흐름
사용자 입력
↓
[UserPromptSubmit] ← 2 층 비전 + 3 층 사역지침 검사
↓
Claude 모델 추론
↓
[PreToolUse] ← 1 층 성경 검증 + 4 층 PII 마스킹
↓
도구 실행 (Bash/Write/WebFetch)
↓
[PostToolUse] ← 4 층 응답 PII 스크러빙
↓
[Stop] ← 감사 로깅 (request_id · timestamp · masked_payload · response_hash)
↓
사용자 응답
5. Fail-Secure 원칙 — 의심스러우면 차단
안티패턴 (절대 금지):
// ❌ 절대 금지 — 에러면 그냥 통과 (fail-open)
try {
validate(input);
} catch (e) {
process.exit(0);
}
올바른 패턴:
// ✅ 권장 — 에러 시 차단 (fail-secure)
try {
validate(input);
} catch (e) {
console.error(JSON.stringify({
decision: "block",
reason: `검증 오류 발생, 안전 차단: ${e.message}`
}));
process.exit(2);
}
원칙:
- 모든 검증 실패 시 기본 차단 (whitelist 방식)
- 훅 스크립트 자체 에러 시에도 차단 (try/catch 후 exit code 2)
- Bypass는 명시적 권한 필요 (
--skip-hooks사용 ❌, settings.json 편집은 교역자 승인 필수)
6. Human-in-the-Loop (HITL) 체크포인트
다음 상황은 반드시 사람의 승인:
| 상황 | 승인권자 | 트리거 |
|---|---|---|
| 신학적 판단 필요 | 담당 교역자 | bible-validator가 unsure 플래그 반환 |
| 긴급 기도 전사 발송 | Level 1~2 관리자 | is_urgent=true 기도가 bulk notification 대상 |
| 개인정보 처리 작업 | Level 1 관리자 | PII 마스킹 실패 또는 복호화 필요 작업 |
| 외부 API 신규 연동 | Level 1 관리자 | WebFetch 신규 도메인 |
permissions.ask 목록 + Notification hook으로 구현.
7. 본 LLMWiki의 11조 Canon 적용
본 카드의 가드레일 개념이 본 LLMWiki README.md Canon 9·10·11에 반영:
- Canon 9: 모든 카드는 ① 성경 권위 ② 온누리 비전 ③ 사역 매뉴얼 = 3중 가드레일 통과 필수
- Canon 10: AI 인격화 금지 (
그분·존재·지능·인격·의지·감정·영혼❌) - Canon 11: 기독교 언어 전용 (타 종교 용어 혼용 ❌)
위 3 조 자체가 본 LLMWiki의 가드레일 1·2·3 층의 표현. 도서·소책자에서는 동일 개념을 평신도 언어로 풀이.
8. 차세대본부 소책자의 비유 — 오케스트라
Part 2에서는 오케스트라를 지휘합니다. 여러 AI 에이전트를 3중 가드레일 안에서 조율합니다.
| 비유 요소 | 가드레일 의미 |
|---|---|
| 지휘자 | 사역자 (Imago Dei, 성화 진행 중) |
| 악기들 | 여러 AI 에이전트 (Claude·ChatGPT·Gemini·Pagefind 등) |
| 무대 가장자리 (펜스) | 3중 가드레일 — 음악이 무대 밖으로 새지 않도록 |
| 악보 | 성경 + 교회 비전 + 사역 매뉴얼 |
| 청중 | 다음 세대 응원단 + 동반자 |
가드레일은 음악을 막는 펜스가 ❌, 음악이 본질에서 벗어나지 않게 하는 무대 경계.
9. 4 층의 우선순위와 충돌 처리
여러 층이 동시에 발동하면:
1 층 성경 권위 (최우선)
↓ 통과
2 층 교회 비전
↓ 통과
3 층 사역 매뉴얼
↓ 통과
4 층 개인정보 (최후 게이트, LLM 전송 직전)
↓ 통과
실행
상위 층이 차단하면 하위 층 검사 무관하게 차단. 하위 층이 차단해도 동일한 차단 응답 (사용자에게는 어느 층이든 "차단됨"으로 표시).
사역 적용
어떤 사역에서 어떻게 쓰는가?
| 사역 | 가드레일 적용 |
|---|---|
| 새가족 환영 자동 답신 | 1 층(이단 단체 인용 차단) + 2 층(교회 비전 일치) + 3 층(연령 부적합 ❌) |
| 양육 자료 자동 생성 | 1·2·3 층 + 4 층 필수 (동반자 PII 보호) |
| 설교 초안 작성 | 1 층(외경·이단 교리 차단) + 2 층(교회 비전) |
| 카드뉴스 SNS 발송 | 1·2·3 층 + 사용자 검토 (Canon 8) |
| 상담 챗봇 | 4 층 최우선 (개인정보) + 1·2·3 층 + Human-in-the-Loop 필수 |
본 LLMWiki에서 가드레일 위반 시 흐름
새 카드 작성 시도
↓
A04.04 doctrine-sidecar 자동 스캔
↓
Canon 9 위반? (성경/온누리/사역 매뉴얼 충돌)
├─ ✓ 통과 → status: draft (사람 검증 후 verified)
└─ ✗ 위반 → status: draft 강제 + 사용자 검토 큐에 추가
Canon 10 위반? (AI 인격화)
└─ ✗ 위반 → 표현 수정 제안 + 사람 승인 후 작성
Canon 11 위반? (타 종교 언어)
└─ ✗ 위반 → case/ 카테고리로 강제 이동 + 출처 표기 요구
도구별 적용 가이드
| AI 도구 | 가드레일 적용 방식 |
|---|---|
| Claude Code | settings.json hooks (위 4.1 그대로) |
| ChatGPT (Web) | Custom GPT instructions에 가드레일 명시 + 사용자 자체 검증 |
| Gemini | System instructions 고정 + 응답 후 사람 점검 |
| ChatGPT API | Wrapper 함수에 가드레일 정규식 통합 |
| 자체 개발 챗봇 | 본 카드의 코드 그대로 차용 |
한계와 주의사항
- 가드레일은 100% 보장 ❌ — Defense-in-Depth로 위험 최소화. 정기 감사·사용자 피드백 필수
- 정규식 패턴은 우회 가능 — "신·천·지" (점 분리) 같은 변형. 정기 갱신 + 의심 패턴 학습
- Soft 경고만으로 충분한 ❌ — 운영 시스템은 Hard 차단 우선
- HITL 없는 자동 승격 ❌ — Canon 8 절대 위반
- 사용자 권한으로 hooks 우회 가능하므로 — 평신도 사용자는 settings.json 편집 권한 ❌
- 로그 기록: 모든 차단 이벤트 audit.log에 JSONL 기록, 정기 리뷰
핵심 인용 / 명언
「의심스러우면 차단한다(When in doubt, block)」 — Fail-Secure 원칙
"복음은 물이고, AI는 그릇이다. 그릇이 깨지거나 오염되면 아무리 좋은 물도 흘려보낼 수 없다." — ONPP 4중 가드레일 지침서 §1.1
"각 층은 독립적으로 차단 가능해야 한다. 하나가 실패해도 다른 층이 방어한다." — Defense-in-Depth 원칙
관련
- synthesis/ai-seonyong-ch6-harness-engineering — Ch.6 본 회차 (3중 가드레일이 핵심 메시지)
- synthesis/ai-seonyong-ch1-spiritual-overview — Ch.1 5대 과제 ④ 변증 방어벽
- concept/three-tier-existence-order — 3계층 존재 질서 (가드레일 = 인간이 도구 위에 있음의 실현)
- term/sola-scriptura — 가드레일 1 층의 신학적 토대
- term/acts-29 — 가드레일 2 층의 비전적 토대
- entity/onnuri-church · entity/ha-yong-jo — 가드레일 2·3 층 출처
- case/onpp-22-agents — ONPP 시스템에서 본 가드레일이 실제 운영