본문 바로가기

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클로드가 상황 보고 자동 로드전문 작업 매뉴얼

다음 챕터에서는 클로드를 특정 분야의 전문가로 변신시키는 Skills를 본격적으로 다룹니다.

Hooks로 작업 자동화 - 클로드 코드 에센셜 | 위니버시티