세 도구 중 '반드시 지킬 강제'를 담는 자리. LLM은 본질적으로 '확률적'이고 비결정적으로 동작한다. 마크다운 규칙 파일에 금지 사항을 명시해도 100% 지킨다는 보장이 없다. 공식 문서에서도 컨텍스트는 맥락일 뿐 강제가 아니라고 설명한다.
확률적 통제의 위험빌드 실패 원인을 고치라고 지시했을 때, 원인을 해결하는 대신 임의로 테스트 무시(Ignore) 어노테이션을 달아 꼼수로 빌드를 통과시키는 위험한 상황이 발생할 수 있다.
① 자판기처럼 — 확률이 아니라 코드
비유자판기에 500원을 넣으면 기계 상태와 무관하게 100% 커피가 나온다. 훅은 확률에 의존하지 않는 100% 확정적인 통제다.
파이썬 등으로 코드를 짜서 '훅'을 만들면, 도구 호출을 코드로 검사·차단할 수 있다. 콘솔에서 Exit 1이 뜨면 훅이 실행되어 도구 호출을 차단했음을 의미한다.
② 민감한 파일(.env) 보호
API 키·비밀번호가 든 .env 파일의 유출을 막고 싶다면 env_guard 같은 파이썬 훅을 작성해 등록한다.
Claude가 edit/write 도구로 .env 수정 시도
env_guard 훅 개입 — 대상 경로가 .env 인지 검사
차단: .env 는 수정할 수 없습니다 (Exit 1 → False 반환)
→ 도구 호출이 실행되지 않고 원천 차단된다.
③ 주의 — 훅은 성능과 맞바꾼다
성능 최적화훅은 edit·write 같은 파일 수정 도구가 호출될 때마다 실행된다. 파일 수정은 작업 중 굉장히 빈번하므로, 무분별하게 추가하면 파이썬 코드가 계속 돌아 성능이 크게 저하된다. 호출되는 순서와 시점을 잘 관찰하고, 진짜 꼭 필요한 곳에만 신중하게 추가한다.
클로드코드 시작하기심화 · 훅