Phase 12 — 최신 기능 활용12-4
Hooks — 이벤트 기반 자동화
Claude Code가 특정 행동을 할 때 자동으로 실행되는 Hooks(훅)를 배웁니다. 파일 저장 시 자동 백업, 명령 실행 전 안전 검사 등 업무 규칙을 자동으로 적용합니다.
Hooks란?
[기존 방식] Claude Code가 파일을 수정할 때마다 "백업 먼저 해둬"라고 매번 말해야 했습니다. 중요한 서류를 다루면서 "수정 전에 원본 복사해 놔"라고 매번 지시하는 것과 같습니다. 깜빡 잊으면 원본이 사라질 위험이 있었습니다.
[AI 활용 후] Hooks를 설정하면 특정 이벤트가 발생할 때 자동으로 지정한 동작이 실행됩니다. "파일을 수정하기 전에 항상 백업을 만들어라"라는 규칙을 한 번 설정해두면, 이후 매번 말하지 않아도 자동으로 실행됩니다.
노무사 비유로 설명하면, 사무실에 규칙을 붙여놓는 것과 같습니다. "서류를 수정할 때는 반드시 원본 사본을 남길 것", "외부 발송 전에 반드시 대표 노무사 검토를 받을 것" 같은 규칙을 한 번 정해두면, 모든 직원이 자동으로 따르는 것입니다.
TIP: Hooks는 settings.json 파일에서 설정합니다. Claude Code에게 'hooks 설정을 도와줘'라고 요청하면 대화형으로 설정할 수 있습니다.
Hooks 종류와 설정
Hooks는 Claude Code의 특정 이벤트에 연결되는 쉘 명령입니다. 총 6가지 이벤트가 있습니다.
PreToolUse: 도구 사용 전에 실행됩니다. 파일 수정 전 백업, 위험한 명령 차단 등에 사용합니다. exit 코드 0이면 허용, 비정상 종료(exit 1 등)이면 해당 작업을 차단합니다.
PostToolUse: 도구 사용 후에 실행됩니다. 파일 수정 후 자동 포맷팅, 로그 기록 등에 사용합니다.
Notification: 알림 이벤트 시 실행됩니다. 작업 완료 시 슬랙 메시지 전송 등에 사용합니다.
Stop: Claude Code가 응답을 완료했을 때 실행됩니다. 최종 결과 검증 등에 사용합니다.
UserPromptSubmit: 사용자가 프롬프트를 제출할 때 실행됩니다. 입력 검증이나 자동 컨텍스트 추가에 사용합니다.
SessionStart: Claude Code 세션이 시작될 때 실행됩니다. 환경 초기화나 시작 알림에 사용합니다.
각 Hook은 stdin을 통해 JSON 데이터를 받습니다 (도구 이름, 파일 경로 등). 이를 파싱하여 조건부 로직을 구현할 수 있습니다.
# Hooks 설정 파일 만들기 (터미널에서 입력)
mkdir -p .claude
cat > .claude/settings.json << 'EOF'
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write",
"command": "echo '파일 생성 감지: 검토 필요'"
}
],
"PostToolUse": [
{
"matcher": "Bash",
"command": "echo '명령어 실행 완료'"
}
]
}
}
EOF
# 설정 파일이 잘 만들어졌는지 확인
cat .claude/settings.json
# ─────────────────────────────────────
# 실전 예시 1: 파일 수정 전 자동 백업 + 완료 알림
# 위 settings.json의 hooks 섹션을 아래처럼 확장할 수 있습니다.
# "PreToolUse" matcher를 "Edit|Write"로 바꾸면 수정·생성 모두 감지
# "Notification" 훅을 추가하면 macOS 알림도 자동 표시:
# "Notification": [{ "command": "osascript -e 'display notification
# "Claude Code 작업이 완료되었습니다" with title "작업 완료"'" }]
# ─────────────────────────────────────
# 실전 예시 2: 위험한 명령 차단 (별도 설정 예시)
# PreToolUse에서 exit 1을 반환하면 해당 작업이 차단됩니다
# 아래 내용을 별도의 .claude/settings.json으로 저장하세요:
# {
# "hooks": {
# "PreToolUse": [{
# "matcher": "Bash",
# "command": "cat /dev/stdin | grep -q 'rm -rf' && echo 'BLOCKED: 위험한 명령입니다' && exit 1 || exit 0"
# }]
# }
# }TIP: Hooks가 에러를 반환(exit 1)하면 해당 작업이 중단됩니다. 이를 이용해 위험한 작업을 사전에 차단할 수 있습니다.
실전 활용: 노무사 사무실 안전 규칙
Hooks를 활용한 노무사 사무실 자동화 규칙 예시입니다.
규칙 1 — 의뢰인 파일 보호: 사건 관리 폴더(/사건관리/)의 파일을 수정할 때 자동으로 백업 폴더에 원본을 복사합니다. 실수로 구제신청서 원본을 덮어써도 백업에서 복구할 수 있습니다.
규칙 2 — 법률문서 품질 검사: 법률문서를 생성한 후(PostToolUse) 자동으로 필수 항목(청구취지, 사실관계, 법리, 결론)이 포함되어 있는지 검사합니다. 빠진 항목이 있으면 경고를 표시합니다.
규칙 3 — 작업 완료 알림: 야간에 --remote로 대량 작업을 맡겨뒀을 때, 작업이 완료되면 슬랙이나 이메일로 알림을 보냅니다. 아침에 출근하기 전에 완료 여부를 확인할 수 있습니다.
규칙 4 — 개인정보 유출 방지: 파일 내용에 주민등록번호 패턴이 포함된 경우 외부 전송 관련 도구 사용을 차단합니다. 의뢰인의 민감 정보가 실수로 유출되는 것을 방지합니다.
Hooks는 한 번 설정해두면 이후 모든 세션에서 자동으로 적용됩니다. 사무실의 업무 규칙이 AI에게도 자동으로 적용되는 셈입니다.
TIP: 처음에는 간단한 Hook(파일 백업, 완료 알림)부터 시작하세요. 익숙해지면 품질 검사, 보안 규칙 등으로 확장할 수 있습니다.
핵심 정리
- ✓Hooks는 Claude Code의 특정 이벤트(파일 수정, 명령 실행 등)에 자동으로 실행되는 규칙입니다
- ✓PreToolUse, PostToolUse, Notification, Stop, UserPromptSubmit, SessionStart 6가지 이벤트에 설정합니다
- ✓의뢰인 파일 자동 백업, 법률문서 품질 검사, 야간 작업 완료 알림 등에 활용합니다
- ✓한 번 설정하면 매번 말하지 않아도 자동으로 적용되는 '사무실 업무 규칙'입니다