Hooks로 작업 자동화
Hooks(훅)는 클로드 코드가 특정 동작을 할 때 자동으로 실행되는 사용자 정의 스크립트입니다. 예를 들어 "파일을 수정할 때마다 자동으로 코드 포맷팅 실행", "작업을 멈추려 할 때 조건을 확인하고 계속 진행" 같은 자동화를 걸 수 있습니다.
1. Hook이 필요한 이유
클로드 코드는 코드를 꽤 잘 작성하지만, 마지막 10%(포맷팅, 사소한 규칙)는 놓칠 때가 있습니다. 매번 "포맷팅도 해줘"라고 말하는 대신, 파일이 수정될 때마다 자동으로 포맷터가 돌도록 만들어두면 됩니다. 이것이 Hook의 핵심 아이디어입니다.
Hook은 .claude/settings.json 파일에 설정합니다. 주요 이벤트(트리거 시점)는 다음과 같습니다.
| 이벤트 | 시점 |
|---|---|
| PreToolUse | 도구(파일 수정 등)를 사용하기 직전 |
| PostToolUse | 도구를 사용한 직후 |
| Stop | 클로드가 작업을 멈추려 할 때 |
2. PostToolUse 예시: 자동 포맷팅
클로드가 파일을 수정(Edit 또는 Write)한 직후, 자동으로 Prettier 포맷터를 실행하는 설정입니다.
.claude/settings.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
}
]
}
]
}
}
matcher: 어떤 도구에 반응할지 지정(Edit|Write= 편집/쓰기)command: 실행할 명령.$CLAUDE_FILE_PATH는 방금 수정된 파일 경로
이제 클로드가 코드를 작성할 때마다 자동으로 포맷이 정리되어, CI 포맷팅 오류 같은 사소한 문제를 예방할 수 있습니다.
3. Stop 예시: 작업을 끝까지 시키기
긴 작업에서 클로드가 중간에 "여기까지 했습니다" 하고 멈출 때가 있습니다. Stop Hook을 사용하면 완료 조건이 충족될 때까지 계속 진행하도록 만들 수 있습니다. 장시간 자율 작업(10장)에서 특히 유용합니다.
이런 "끝까지 실행" 패턴을 손쉽게 구성해주는 공개 플러그인들도 있습니다. 직접 Stop Hook을 작성하기 어렵다면 플러그인을 활용하는 것도 방법입니다(10장 참고).
4. Hook 사용 시 주의점
Hook은 강력하지만, 클로드의 동작에 자동으로 끼어드는 스크립트라는 점을 기억하세요.
- 잘못 설정하면 모든 작업이 느려지거나 실패할 수 있습니다.
- 외부 명령을 실행하므로 보안에 유의해야 합니다(신뢰할 수 있는 명령만).
- 처음에는 간단한 포맷팅 Hook 하나부터 시작해 점진적으로 늘리세요.
커맨드 · Hooks · Skills 한눈에 정리
| 기능 | 호출 방식 | 용도 |
|---|---|---|
| 커스텀 커맨드 | 내가 /명령으로 호출 | 반복 지시 자동화 |
| Hooks | 특정 이벤트에 자동 실행 | 포맷팅·검증 등 강제 |
| Skills | 클로드가 상황 보고 자동 로드 | 전문 작업 매뉴얼 |
- Hooks 공식 가이드: https://docs.claude.com/en/docs/claude-code/hooks-guide
다음 챕터에서는 클로드를 특정 분야의 전문가로 변신시키는 Skills를 본격적으로 다룹니다.