Claude Code의 'Hooks' 기능, 너무 저평가된 것 같아서 내가 아는 거 다 정리해 봄
Claude Code has this Hooks thing I feel is criminally underused — wrote up everything I know
핵심 요약
Claude Code의 강력한 자동화 기능인 'Hooks'의 개념과 활용법을 정리한 가이드 공유.
- Hooks 기능 — Claude Code의 라이프사이클에 쉘 명령어를 직접 연결하는 강력한 자동화 도구임.
- 활용 사례 — Prettier 자동 실행, 보안 차단, 컨텍스트 유지, 알림 전송 등 다양한 작업 자동화 가능함.
- 가이드 내용 — 라이프사이클 이벤트, 훅 유형, 설정 방법 및 주의사항 등 상세 설명됨.
- 주의사항 — 훅 실행 시 exit 2를 사용해야 멈춤이 가능하며 exit 1은 작동하지 않음.
Claude Code에는 Hooks라는 기능이 있는데, 사람들이 너무 관심을 안 갖는 것 같음. 기본적으로 Claude의 라이프사이클에 쉘 명령어를 연결할 수 있게 해주는데, CLAUDE.md나 Rules, Skills와 달리 Claude가 무시할 수 없음. 타이밍이 되면 쉘 명령어가 무조건 실행됨.
그래서 Claude가 절대 잊으면 안 되는 작업들에 딱임. 예를 들면:
-
모든 Edit 후에 Prettier 실행 (Claude는 기억한다고 장담하지만 절대 안 함)
-
--dangerously-skip-permissions 옵션을 썼을 때도 rm -rf / 차단하기
-
Context Compact 후에 프로젝트 규칙 다시 주입해서 세션 중간에 Claude가 규칙 까먹지 않게 하기
-
Claude가 사용자를 기다릴 때 맥 데스크탑 알림 띄우기
-
모든 도구 호출을 Discord 웹훅으로 보내서 터미널 앞에 계속 안 앉아 있어도 되게 하기
-
Claude가 실행하는 모든 Bash 명령어 로깅하기 (혹시 모르니까)
가이드에서는 모든 라이프사이클 이벤트(PreToolUse, PostToolUse, UserPromptSubmit, SessionStart, Stop, Notification 등), matcher와 if가 실제로 어떻게 작동하는지, 5가지 훅 유형(대부분 command에서 멈추지만 prompt를 쓰면 다른 모델을 검증기로 쓸 수 있음, 이건 좀 대박임), 그리고 처음 하는 사람들이 다들 낚이는 한 가지 — exit 2만 차단됨. exit 1은 안 됨. 이거 알아내는 데 진짜 오래 걸렸음.
링크는 여기: https://israynotarray.com/en/ai/2026/05/31/claude-code-hooks-complete-guide/


