Hooks — Claude Code 라이프사이클의 특정 시점에 자동 실행되는 사용자 정의 셸 명령. 반복 작업 자동화, 프로젝트 규칙 강제, 동적 컨텍스트 주입의 3가지 영역에서 활용. 8가지 hook 이벤트 종합 가이드.
Before:
npm test 권한 확인 100번째After:
rm -rf)본문이 다루는 라이프사이클:
| Hook | 시점 | 용도 |
|---|---|---|
| SessionStart | 세션 시작 시 | 컨텍스트 주입 (git 상태, TODO) |
| UserPromptSubmit | 사용자 prompt 제출 시 | prompt 보강, 차단 |
| UserPromptExpansion | slash command 확장 시 | command 차단, 컨텍스트 추가 |
| PreToolUse | 도구 실행 전 | 위험 명령 차단, 검증 |
| PostToolUse | 도구 실행 후 | 자동 포맷, 검증, 피드백 |
| PermissionRequest | 권한 요청 시 | 자동 승인/거부 |
| SubagentStart | 서브에이전트 시작 시 | 컨텍스트 주입 |
| Stop | 응답 종료 시 | 정리, 알림 |
.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
1) Command (셸 스크립트) — 가장 빠름, 유연
2) HTTP — 외부 서비스
3) MCP Tool — MCP 서버 호출
4) LLM Prompt — Claude를 또 사용
본문이 강조한 패턴:
Claude 작업 시도
↓
PreToolUse: 허용?
→ No → 차단 + 이유 반환 → Claude 적응
→ Yes ↓
실행
↓
PostToolUse: 결과 유효?
→ No → 에러 반환 → Claude 수정
→ Yes ↓
다음 단계
규칙을 한 번 정의, 루프가 자동 강제.
이 글의 가장 중요한 통찰 — CLAUDE.md vs Hooks의 본질 차이:
| CLAUDE.md | Hooks | |
|---|---|---|
| 본질 | Advisory (권고) | Deterministic (강제) |
| 작동 | 관련 시 적용 | 항상 실행 |
| 무시 가능 | Yes (Claude 판단) | No (수동 우회 X) |
| 적합 영역 | 가이드라인, 컨벤션 | 안전 규칙, 자동화 |
이게 #66 글 (CLAUDE.md)의 깊은 이해와 맞물린다.
잘못된 패턴:
올바른 패턴:
rm -rf 물리적 차단이 분리가 "AI 거버넌스의 두 층" 을 정의한다 — soft (CLAUDE.md) + hard (Hooks). 두 층이 같이 작동해야 완성.
본문이 강조한 패턴이 깊다:
이게 시스템 디자인의 일반 원칙 의 AI 적용:
비유 — 인간 직원 vs Hooks AI:
이 "무한대 매니저" 효과가 Hooks의 진짜 가치다. 사람은 피곤하지만, Hook은 안 지친다.
본문 외 정보 — Anthropic 자체 팀이 사용하는 패턴:
이게 "AI가 AI 감독" 의 운영 사례다:
이 "3층 구조" 가 자율 + 안전의 균형이다.
이 글의 후속 — Plugins (#45 글)이 hooks를 패키지화.
플러그인이 번들:
이게 community-driven 도구 생태계 의 시작이다:
비유 — VS Code Marketplace:
Claude Code Plugin이 같은 길:
이 글이 "power user" 만 위한 글이다.
분화:
이 분화가 모든 도구에서 일어남:
.vimrc 깊은 설정Power user의 ROI:
이게 "AI 도구도 같은 패턴" 의 시그널이다. Casual은 80%에 만족, Power user는 200% 가치 추출.
본문 외 정보 (Blake Crosley 가이드 인용):
이게 흥미로운 디자인:
이 "용도별 모델 분화" 가 Anthropic의 새 전략이다. 하나의 거대 모델 X, 여러 특화 모델.
Blake Crosley 인용:
이 수치가 보여주는 시장 변화:
이 추세라면 "개발자가 코드 쓰는" 시대가 끝난다. 개발자 = AI 매니저.
이게 "agentic coding" 의 거시적 의미다. 이 글의 hooks 같은 power user 도구가 다음 세대 개발자 워크플로의 표준.
이 글은 "고급 설정 가이드" 같지만, 실제로는 AI 시대 거버넌스의 두 층 청사진이다.
2026년 1월 시점은 "Claude Code = 단순 코딩 도구" 시대가 끝난 시점이다. Power user 생태계가 완성. Hooks, Skills, Plugins, Subagents가 종합되어 "개발자 자기 워크플로 빌드" 의 진짜 도구.
흥미로운 건 이 글이 "기술 도구" 가 아니라 "AI 거버넌스 패턴" 이라는 점이다:
이 패턴이 AI가 회사 인프라 부분일 때의 거버넌스 정석이다. 단순 "AI 사용" X, AI를 어떻게 안전하게 자율적으로 운영하나.
다음 단계 (#74 등 후속 글들)는 이 패턴을 enterprise 차원으로 확장한다. 개인 hook → 팀 plugin → 회사 거버넌스. 이 진화가 "AI가 진짜 production 인프라" 의 길이다.