Claude 블로그 되짚어보기 #71 — Claude Code Hooks, AI 거버넌스의 두 층 (2026)

panicdev·2026년 4월 27일

원문 정보

글의 요지

Hooks — Claude Code 라이프사이클의 특정 시점에 자동 실행되는 사용자 정의 셸 명령. 반복 작업 자동화, 프로젝트 규칙 강제, 동적 컨텍스트 주입의 3가지 영역에서 활용. 8가지 hook 이벤트 종합 가이드.

Hook이 푸는 3가지 문제

1) 반복 매뉴얼 단계 제거

Before:

  • Claude가 파일 쓸 때마다 Prettier 수동 실행
  • npm test 권한 확인 100번째
  • 세션 시작마다 boilerplate 컨텍스트 붙여넣기

After:

  • PostToolUse hook → 자동 포맷
  • PermissionRequest hook → 자동 승인 (안전한 명령)
  • SessionStart hook → 자동 컨텍스트 주입

2) 프로젝트 규칙 강제

  • 위험한 명령 차단 (예: rm -rf)
  • 파일 경로 검증
  • 네이밍 컨벤션 강제
  • "항상 실행", 사용자 기억 의존 X

3) 동적 컨텍스트 주입

  • SessionStart hook → 현재 git 상태 + TODO 리스트
  • UserPromptSubmit hook → 스프린트 우선순위 추가
  • 매번 재설명 불필요

8가지 Hook 이벤트

본문이 다루는 라이프사이클:

Hook시점용도
SessionStart세션 시작 시컨텍스트 주입 (git 상태, TODO)
UserPromptSubmit사용자 prompt 제출 시prompt 보강, 차단
UserPromptExpansionslash command 확장 시command 차단, 컨텍스트 추가
PreToolUse도구 실행 전위험 명령 차단, 검증
PostToolUse도구 실행 후자동 포맷, 검증, 피드백
PermissionRequest권한 요청 시자동 승인/거부
SubagentStart서브에이전트 시작 시컨텍스트 주입
Stop응답 종료 시정리, 알림

구성 — JSON

.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{
          "type": "command",
          "command": ".claude/hooks/block-rm.sh"
        }]
      }
    ]
  }
}

예시 — rm -rf 차단

#!/bin/bash
# .claude/hooks/block-rm.sh
COMMAND=$(jq -r '.tool_input.command')
if echo "$COMMAND" | grep -q 'rm -rf'; then
  jq -n '{
    hookSpecificOutput: {
      hookEventName: "PreToolUse",
      permissionDecision: "deny",
      permissionDecisionReason: "Destructive command blocked by hook"
    }
  }'
else
  exit 0  # 허용
fi

Hook Handler 4가지 타입

1) Command (셸 스크립트) — 가장 빠름, 유연

  • stdin으로 JSON 받음
  • exit code + stdout으로 응답
  • 타입 체크, 린팅, 차단

2) HTTP — 외부 서비스

  • 자기 API에 POST
  • 팀 전체 정책 강제

3) MCP Tool — MCP 서버 호출

  • 다른 도구와 통합

4) LLM Prompt — Claude를 또 사용

  • 더 정교한 판단 (예: "이 명령이 안전한가?")

Self-Correcting Feedback Loop

본문이 강조한 패턴:

Claude 작업 시도
  ↓
PreToolUse: 허용?
  → No → 차단 + 이유 반환 → Claude 적응
  → Yes ↓
실행
  ↓
PostToolUse: 결과 유효?
  → No → 에러 반환 → Claude 수정
  → Yes ↓
다음 단계

규칙을 한 번 정의, 루프가 자동 강제.


2026년에 다시 읽으며 — 내가 본 것

1. "Advisory CLAUDE.md vs Deterministic Hooks"의 결정적 분리

이 글의 가장 중요한 통찰 — CLAUDE.md vs Hooks의 본질 차이:

CLAUDE.mdHooks
본질Advisory (권고)Deterministic (강제)
작동관련 시 적용항상 실행
무시 가능Yes (Claude 판단)No (수동 우회 X)
적합 영역가이드라인, 컨벤션안전 규칙, 자동화

이게 #66 글 (CLAUDE.md)의 깊은 이해와 맞물린다.

잘못된 패턴:

  • CLAUDE.md에 "절대 rm -rf 쓰지 마라" 명시
  • Claude가 무시할 수 있음 (advisory)
  • 위험

올바른 패턴:

  • Hook으로 rm -rf 물리적 차단
  • Claude가 우회 불가능
  • 안전 보장

이 분리가 "AI 거버넌스의 두 층" 을 정의한다 — soft (CLAUDE.md) + hard (Hooks). 두 층이 같이 작동해야 완성.

2. "Self-Correcting Feedback Loop"의 시스템 사고

본문이 강조한 패턴이 깊다:

  • 사용자가 규칙 정의 1번
  • 시스템이 자동 강제
  • AI가 피드백 받고 학습

이게 시스템 디자인의 일반 원칙 의 AI 적용:

  • 컴파일러 = 코드 검증
  • 린터 = 스타일 강제
  • 테스트 = 동작 검증
  • Hooks = AI 행동 강제

비유 — 인간 직원 vs Hooks AI:

  • 인간 매니저: "매번 검토할 수 없음"
  • Hooks: "100% 검토, 0 시간"

"무한대 매니저" 효과가 Hooks의 진짜 가치다. 사람은 피곤하지만, Hook은 안 지친다.

3. "Anthropic 자체 사용"의 사례

본문 외 정보 — Anthropic 자체 팀이 사용하는 패턴:

  • "Permission requests를 Opus로 라우팅" (LLM hook)
  • Opus가 공격 가능성 스캔
  • 안전한 것 자동 승인
  • 위험한 것만 인간에게

이게 "AI가 AI 감독" 의 운영 사례다:

  • 메인 Claude = 작업 실행
  • 감독 Claude (Opus) = 권한 검토
  • 인간 = exception 처리

"3층 구조" 가 자율 + 안전의 균형이다.

4. "Plugin으로 통합"의 분배 모델

이 글의 후속 — Plugins (#45 글)이 hooks를 패키지화.

플러그인이 번들:

  • Slash commands
  • Subagents
  • MCP servers
  • Hooks
  • LSPs

이게 community-driven 도구 생태계 의 시작이다:

  • 개인이 hook 만듦
  • Plugin으로 패키지
  • Marketplace 공유
  • 다른 사람들이 한 클릭 설치

비유 — VS Code Marketplace:

  • 핵심 도구 (Microsoft) + 확장 (커뮤니티)
  • 수만 개 확장
  • 거대 생태계

Claude Code Plugin이 같은 길:

  • 핵심 (Anthropic) + Hooks/Skills (커뮤니티)
  • "awesome-claude-code" 같은 큐레이션
  • 시간이 지날수록 거대해짐

5. "Power User vs Casual User"의 분화

이 글이 "power user" 만 위한 글이다.

분화:

  • Casual User: Claude Code 그대로 사용
  • Power User: hooks·plugins·subagents 깊이 customize

이 분화가 모든 도구에서 일어남:

  • VS Code: 일반 vs 익스텐션 풀 사용
  • Vim: 기본 vs .vimrc 깊은 설정
  • Emacs: 기본 vs 평생 설정

Power user의 ROI:

  • 초기 학습 시간 비용
  • 장기 생산성 압도적 우위

이게 "AI 도구도 같은 패턴" 의 시그널이다. Casual은 80%에 만족, Power user는 200% 가치 추출.

6. "Cyber Mythos 모델"의 등장

본문 외 정보 (Blake Crosley 가이드 인용):

  • 2026년 4월 7일 Claude Mythos 출시
  • "Project Glasswing" 산하 (사이버 보안)
  • invitation-only
  • "Opus 4.7보다 의도적으로 사이버 차원에서 덜 능력"

이게 흥미로운 디자인:

  • 보안 연구자 = elevated access 필요
  • 일반 모델 = 안전 트레이드오프
  • 분리된 모델 = 두 시장 동시 만족

"용도별 모델 분화" 가 Anthropic의 새 전략이다. 하나의 거대 모델 X, 여러 특화 모델.

7. "4% GitHub commits AI 작성"의 거시 데이터

Blake Crosley 인용:

  • 2026년 2월 시점 4% public GitHub commits = Claude Code 작성
  • 일일 ~135,000 commits
  • 13개월에 42,896배 성장
  • Anthropic 자체 코드의 90% AI 작성

이 수치가 보여주는 시장 변화:

  • 2024년 12월: 거의 0%
  • 2026년 2월: 4%
  • 2027년 예측: 15-20%
  • 2030년 예측: 50%+

이 추세라면 "개발자가 코드 쓰는" 시대가 끝난다. 개발자 = AI 매니저.

이게 "agentic coding" 의 거시적 의미다. 이 글의 hooks 같은 power user 도구가 다음 세대 개발자 워크플로의 표준.


마무리

이 글은 "고급 설정 가이드" 같지만, 실제로는 AI 시대 거버넌스의 두 층 청사진이다.

  • Advisory (CLAUDE.md) vs Deterministic (Hooks): 두 층 분리
  • 8가지 hook 이벤트: 라이프사이클 완전 커버
  • 4가지 handler 타입: Command, HTTP, MCP, LLM
  • Self-Correcting Feedback Loop: 한 번 정의, 무한 강제
  • Plugin 통합: community 분배 모델
  • Power User 분화: 200% 가치 추출
  • Cyber Mythos: 용도별 모델 분화
  • 4% GitHub commits: 거시 시장 검증

2026년 1월 시점은 "Claude Code = 단순 코딩 도구" 시대가 끝난 시점이다. Power user 생태계가 완성. Hooks, Skills, Plugins, Subagents가 종합되어 "개발자 자기 워크플로 빌드" 의 진짜 도구.

흥미로운 건 이 글이 "기술 도구" 가 아니라 "AI 거버넌스 패턴" 이라는 점이다:

  • "신뢰는 디자인으로 얻는다" (Medium 인용)
  • "한 번 규칙 정의, 무한 자동 강제"
  • "AI가 자율 + 인간이 통제"

이 패턴이 AI가 회사 인프라 부분일 때의 거버넌스 정석이다. 단순 "AI 사용" X, AI를 어떻게 안전하게 자율적으로 운영하나.

다음 단계 (#74 등 후속 글들)는 이 패턴을 enterprise 차원으로 확장한다. 개인 hook → 팀 plugin → 회사 거버넌스. 이 진화가 "AI가 진짜 production 인프라" 의 길이다.

0개의 댓글