클로드 Hooks vs Skills, 자율 에이전트 통제 전략
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
클로드 Hooks 심층 분석 — Skills와의 차이, 그리고 고품질 결과를 위한 조합 전략
2026년 5월 · AI 에이전트 엔지니어링 · 심층 리포트
🧠 한 줄 요약 — Anthropic의 클로드 코드(Claude Code)가 본격적인 자율 에이전트 워크플로로 진화하면서, Hooks(시스템 강제 실행)와 Skills(모델 자율 호출)의 분리 설계가 상용 품질의 핵심 분기점이 되었습니다. "규칙은 Hooks로, 지식은 Skills로"가 정답입니다.
1. 들어가며 — 왜 지금 Hooks인가
Anthropic의 클로드 코드(Claude Code)와 에이전트 SDK가 본격적인 자율 에이전트 워크플로로 자리잡으면서, 모델의 자율성과 시스템의 통제 사이에서 균형을 잡는 것이 가장 큰 엔지니어링 과제로 떠올랐습니다. 2024년까지의 LLM 활용은 "프롬프트 잘 쓰기"가 전부였다면, 2025~2026년의 에이전트는 파일을 직접 수정하고, 셸 명령을 실행하며, 외부 API를 호출하는 행위 주체입니다. 이 차원에서는 더 이상 "모델이 알아서 잘 하겠지"가 통하지 않습니다.
Hooks는 바로 이 지점에서 등장한 결정론적 제어 장치이며, Skills(스킬)와 보완 관계에 있습니다. 본 보고서는 (i) Hooks의 정의·작동 방식·설정법, (ii) Skills와의 본질적 차이, (iii) 두 기능을 어떻게 조합해야 상용 수준의 결과물을 얻는지에 대해 라운드별 조사 결과를 종합하고, 실제 적용 시 주의해야 할 보안·운영 이슈까지 다룹니다.
📌 이 글이 답하는 질문
▶ Hooks와 Skills는 정확히 무엇이 다른가?
▶ 언제 Hooks를 써야 하고 언제 Skills를 써야 하는가?
▶ 둘을 조합해 신뢰 가능한 자율 에이전트를 만들려면?
▶ Hooks 사용 시 반드시 알아야 할 보안 함정은?
2. Hooks의 정의와 도입 시점
2.1 정의 — 라이프사이클 이벤트의 강제 실행
Hooks는 클로드 에이전트 라이프사이클의 특정 이벤트가 발생할 때 자동으로 실행되는 사용자 정의 스크립트/명령입니다. Git Hooks(`pre-commit`, `post-merge` 등)·Webhooks와 같은 전통적 개념의 연장선상에 있으며, 모델의 판단이 아니라 시스템 차원에서 강제 실행된다는 점이 핵심입니다.
즉 LLM이 "이건 위험하니 안 해야겠다"라고 판단해주기를 기대하는 것이 아니라, 시스템이 도구 실행 직전에 반드시 끼어들어 검사하고, 통과하지 못하면 차단하는 구조입니다. 이는 항공기의 페일세이프(fail-safe) 메커니즘과 유사합니다 — 조종사의 판단력에 의존하지 않고, 한계 영역에서는 시스템이 강제 개입합니다.
2.2 공식화 시점 — 자료 간 모순과 합리적 해석
조사 라운드별로 도입 시점에 대한 표현이 달랐습니다.
⚠️ 자료 간 표현 차이
▶ Round 1: "2025~2026년에 공식 기능으로 확립"
▶ Round 2: "Claude Code가 2025년에 공식 도입"
▶ Round 3: "2025년 공식 문서, 보안 패치 v2.1.53 / CVE-2025-59536 추적"
세 자료를 종합하면 "2025년에 공식 기능으로 도입되었고, 2025~2026년에 걸쳐 보안·기능 패치가 누적"되었다고 보는 것이 가장 안전한 해석입니다. 정확한 첫 릴리스 일자는 자료마다 표현이 달라 추가 확인이 필요하지만, 적어도 2025년 하반기 이후로는 프로덕션 단위에서 다뤄지는 안정 기능이라고 판단할 수 있습니다.
3. 설정 방법 — `.claude/settings.json`
Hooks는 프로젝트 루트의 .claude/settings.json 또는 글로벌 ~/.claude/settings.json에서 설정합니다. 프로젝트별 설정이 글로벌 설정보다 우선 적용되며, 동일 이벤트에 여러 훅을 연결할 수도 있습니다.
3.1 스키마 — 두 가지 형태
자료 간 스키마 표현이 갈렸습니다. Round 1 자료는 이벤트마다 `matcher`(어떤 도구에 적용할지)와 `hooks` 배열을 갖는 확장형 구조를 제시합니다. 도구별로 정밀한 제어가 필요할 때 적합합니다.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "./scripts/firewall.sh" }
]
}
]
}
}
반면 Round 2 자료는 이벤트명을 키로, 명령 문자열을 값으로 갖는 단축 구조를 제시합니다. 이벤트 단위로 일괄 처리할 때 적합합니다.
{
"hooks": {
"SessionStart": "echo 'Session started at $(date)' >> session.log",
"PreToolUse": "python3 security_check.py"
}
}
두 형태가 모두 통용되는지 한쪽이 약식 표기인지에 대해서는 자료가 충돌합니다. 실무 권장은 본인 환경의 클로드 코드 버전 공식 문서로 스키마를 한 번 더 검증한 뒤 사용하는 것입니다. 도구별 매처가 필요하면 확장형, 이벤트 단위만 다루면 단축형이 유리하다는 정도가 안전한 일반화입니다.
3.2 실행 방식과 종료 코드(Exit Code)
Hooks의 실행 결과는 프로세스 종료 코드로 모델에게 전달됩니다.
| Exit Code | 의미 | 동작 |
|---|---|---|
| 0 | 성공 | stdout이 컨텍스트에 주입 가능 |
| 2 | 차단(Block) | PreToolUse 시 도구 실행 차단, stderr가 모델에 전달 |
| 기타 | 일반 실패 | 에러 로깅, 흐름은 계속될 수 있음 |
자료에 따르면 type: "command" 외에도 `http`(HTTP 엔드포인트), `prompt`(LLM 프롬프트), `agent`(서브에이전트 호출) 형태도 지원됩니다(Round 3). 즉 단순 셸 스크립트뿐 아니라 외부 API 콜이나 별도 LLM 평가까지 훅으로 박을 수 있다는 의미입니다.
4. 주요 라이프사이클 이벤트
Round 3 자료에 따르면 총 15개 이벤트가 존재하지만, 실무에서 가장 자주 쓰이는 7개를 정리하면 다음과 같습니다.
| 이벤트 | 발생 시점 | 대표 용도 |
|---|---|---|
| SessionStart | 세션 시작/재개 | Git 브랜치·이슈 컨텍스트 주입 |
| UserPromptSubmit | 유저 입력 직후 | 입력 필터링, 비밀정보 마스킹 |
| PreToolUse | 도구 실행 직전 | 위험 명령 차단, 정책 검사 ⚠️ |
| PostToolUse | 도구 실행 성공 직후 | 자동 린트·포맷·테스트 ✅ |
| SubagentStop | 서브에이전트 종료 | 결과 집계, 후처리 |
| PreCompact | 컨텍스트 요약 직전 | 보존 데이터 보호 |
| Stop | 에이전트 응답 완료 | 최종 검증, 알림 발송 |
4.1 라이프사이클 흐름도 — 한눈에 보는 훅 발화 시점
▲ 일반적 단일 도구 호출 시 훅 발화 순서 (점선 = 도구 결과 모델로 환류)
5. Hooks vs Skills — 본질적 차이
가장 흔한 혼동은 "둘 다 기능을 확장하는데 무엇이 다른가"입니다. 핵심은 주도권(Who decides?)과 결정론성(Deterministic vs Probabilistic)입니다.
| 구분 | 🔒 Hooks | 🧠 Skills |
|---|---|---|
| 주도권 | 시스템 (System-driven) — 강제 실행 | 모델 (Agent-driven) — 자율 호출 |
| 결정론성 | 결정론적, 같은 입력 → 같은 행동 | 확률적, 모델 판단에 따라 달라짐 |
| 실행 트리거 | 라이프사이클 이벤트 | 자연어 추론 결과 |
| 주된 목적 | 가드레일·보안·자동화·로깅 | 도메인 전문성·복잡한 도구 사용 |
| 비유 | 공장 자동화 라인의 센서·차단기 | 필요할 때 부르는 전문가 컨설턴트 |
🧠 한 줄 정리 — "반드시 매번 일어나야 하는 일은 Hooks, 모델이 똑똑하게 판단해서 쓰면 좋은 능력은 Skills"
6. 고품질 결과를 얻기 위한 조합 전략
6.1 핵심 원칙 — "Trust, but Verify"
"믿되 검증하라"는 레이건 시대의 외교 슬로건이지만, 자율 에이전트 운영에서는 이만큼 적절한 표어가 없습니다. 모델을 신뢰해 자유도를 주되(Skills), 시스템 차원에서 결과를 기계적으로 확인(Hooks)하는 이중 구조입니다.
✅ 1단계 — Skills로 지능을 증폭
프로젝트 컨벤션·라이브러리 사용법·도메인 지식을 Skill로 외부화하여 모델이 좋은 코드를 처음부터 쓰도록 유도합니다.
✅ 2단계 — Hooks로 자동 검증
PostToolUse 훅으로 린트·테스트·빌드를 자동 실행하여, 모델이 산출한 코드가 실제로 동작하는지 기계적으로 확인합니다.
✅ 3단계 — 피드백 루프 폐쇄
훅이 실패(non-zero exit)를 반환하면 모델은 즉시 그 결과를 받아 자기 수정에 들어갑니다 — 사람의 개입 없이 품질이 수렴합니다.
6.2 시나리오별 조합 예시
| 시나리오 | 🔒 Hooks 역할 | 🧠 Skills 역할 |
|---|---|---|
| 보안 강화형 | PreToolUse: .env·개인키·rm -rf 차단 |
Security Auditor Skill: OWASP 관점 리뷰 |
| 품질 자동화형 | PostToolUse: lint·pytest·tsc 자동 실행 | Architect Skill: 리팩토링·모듈 경계 |
| 컨텍스트 최적화형 | SessionStart: README·이슈·diff 자동 주입 | Domain Skill: 비즈니스 규칙·용어집 |
6.3 품질 자동화형 시나리오의 의사결정 흐름
▲ Hook이 검증을 떠맡으면 모델은 본업(추론·생성)에 집중할 수 있다
6.4 권장 설계 사고
"반드시 지켜야 하는 규칙은 Hooks로, 모델이 참고해야 할 전문 지식은 Skills로."
이 분리가 명확할수록 시스템은 예측 가능해지고, 모델은 자신이 잘하는 일(추론·생성)에 집중할 수 있습니다.
7. 보안 유의사항 — 절대 가볍게 보지 말 것
Round 3 자료는 Hooks가 본질적으로 임의 코드 실행(Arbitrary Code Execution) 권한을 갖는다는 점에서 비롯되는 보안 위험을 강조합니다. 즉 신뢰할 수 없는 리포지토리를 클론한 뒤 무심코 `claude` 명령을 실행하는 순간, 그 리포의 `.claude/settings.json`에 박힌 악성 훅이 즉시 로컬에서 실행될 수 있다는 의미입니다.
7.1 알려진 CVE
| CVE 번호 | 취약점 유형 | 대응 |
|---|---|---|
| CVE-2025-59536 | 악성 SessionStart 훅으로 임의 코드 실행 | v2.1.53+ 업데이트, Workspace Trust 활성 |
| CVE-2026-33068 | 리포 설정이 사용자 승인보다 먼저 처리되는 권한 우회 | 최신 버전 유지, `.claude/` 사전 검토 |
7.2 실무 체크리스트
🔴 반드시 확인할 사항
▶ Claude Code v2.1.53 이상으로 업데이트 (Workspace Trust 도입)
▶ 처음 보는 리포지토리에서는 `claude` 실행 전 `.claude/` 디렉토리 반드시 검토
▶ 필요 시 글로벌 설정에서 "disableHooks": true로 비활성화
▶ 팀 단위 운영 시 settings.json을 코드 리뷰 대상에 포함
7.3 성능 함정 — 동기 실행
또한 훅은 동기적으로 실행되므로, 무거운 작업(대규모 테스트 등)을 직접 박으면 CLI 응답성이 크게 떨어집니다. 예컨대 매 도구 호출 직후 5분짜리 통합 테스트를 돌리도록 박아두면, 사용자는 매번 5분씩 멍하니 기다려야 합니다. 이런 작업은 백그라운드 프로세스로 분리하거나, `Stop` 이벤트에서 사후 검증으로 돌리는 편이 낫습니다.
7.4 Hook 반응 시간 권장 가이드
▲ 훅 실행 시간이 길수록 사용자 체감 응답성은 급락 — Stop 이벤트로 분리 권장
8. 결론 및 시사점
Hooks는 클로드 에이전트를 "똑똑한 챗봇"에서 "신뢰할 수 있는 동료 엔지니어"로 격상시키는 마지막 한 조각입니다. 모델이 아무리 똑똑해도 시스템적으로 강제되는 가드레일과 자동화 없이는 상용 환경의 신뢰 수준에 도달하기 어렵습니다. 반대로 Hooks만으로는 창의적·전문적 판단을 다 담을 수 없으며, 이를 보완하는 것이 Skills입니다.
8.1 단계별 도입 로드맵
처음부터 모든 훅을 박지 말고, 위험도가 낮은 정보 주입(SessionStart)부터 시작해 점진적으로 검증·차단 훅을 추가하는 것이 안전합니다. 매 단계마다 팀 내 사용자 피드백을 받아 응답성·정확성을 조정하세요.
8.2 마지막 권고
본 조사에서 자료 간 모순(공식화 시점, settings.json 스키마)이 일부 확인되었으므로, 실제 구축 시에는 본인이 사용하는 클로드 코드 버전의 공식 문서(docs.anthropic.com/.../claude-code/configuration 및 .../security)에서 정확한 스키마와 이벤트 목록을 한 번 더 검증하시길 권합니다.
그 다음 단계는 단순합니다 — "규칙은 Hooks로, 지식은 Skills로" 분리하고, 둘을 연결하는 피드백 루프를 만드는 것입니다. 자율 에이전트의 시대는 이미 시작되었고, 이제는 그 자율성을 어떻게 책임 있게 다룰지가 모든 엔지니어의 과제입니다.
🧠 Final Insight
자율 에이전트의 본질적 딜레마는 "자유를 줄수록 위험해지고, 통제할수록 멍청해진다"는 것입니다. Hooks와 Skills는 이 딜레마에 대한 Anthropic의 답입니다 — "통제는 시스템에, 자유는 모델에" 분리함으로써, 양쪽 모두를 최대화할 수 있습니다.
📚 References
본 콘텐츠는 정보 제공 목적이며, 보안·운영 결정은 반드시 본인 환경의 공식 문서와 정책에 따라 검증해야 합니다. 잘못된 훅 설정으로 인한 데이터 손실·보안 사고에 대해 작성자는 책임지지 않습니다.
📄 Raw Data
# 클로드 Hooks 심층 분석 — Skills와의 차이, 그리고 고품질 결과를 위한 조합 전략
## 1. 들어가며: 왜 지금 Hooks인가
Anthropic의 클로드 코드(Claude Code)와 에이전트 SDK가 본격적인 자율 에이전트 워크플로로 자리잡으면서, **모델의 자율성**과 **시스템의 통제** 사이에서 균형을 잡는 것이 가장 큰 엔지니어링 과제로 떠올랐습니다. Hooks는 바로 이 지점에서 등장한 **결정론적 제어 장치**이며, Skills(스킬)와 보완 관계에 있습니다. 본 보고서는 (i) Hooks의 정의·작동 방식·설정법, (ii) Skills와의 본질적 차이, (iii) 두 기능을 어떻게 조합해야 상용 수준의 결과물을 얻는지에 대해 라운드별 조사 결과를 종합합니다.
---
## 2. Hooks의 정의와 도입 시점
### 2.1 정의
Hooks는 **클로드 에이전트 라이프사이클의 특정 이벤트가 발생할 때 자동으로 실행되는 사용자 정의 스크립트/명령**입니다. Git Hooks·Webhooks와 같은 전통적 개념의 연장선상에 있으며, 모델의 판단이 아니라 시스템 차원에서 **강제 실행**된다는 점이 핵심입니다(Anthropic Claude Code Configuration Docs).
### 2.2 공식화 시점에 대한 자료 간 모순
- **Round 1 자료**는 "2025~2026년에 클로드 코드와 에이전트 SDK의 공식 기능으로 확립"이라며 비교적 폭넓게 기술합니다.
- **Round 2 자료**는 "Anthropic의 Claude Code가 2025년에 공식 도입"이라며 더 구체적으로 시점을 못박습니다.
- **Round 3 자료**는 "2025년 기준 공식 문서"와 "2025-08 update"를 인용하며, 보안 패치 버전(`v2.1.53`, CVE-2025-59536)까지 추적합니다.
세 자료를 종합하면 "**2025년에 공식 기능으로 도입되었고, 2025~2026년에 걸쳐 보안·기능 패치가 누적**"되었다고 보는 것이 가장 안전한 해석입니다. 정확한 첫 릴리스 일자는 자료마다 표현이 달라 추가 확인이 필요합니다.
---
## 3. 설정 방법: `.claude/settings.json`
Hooks는 프로젝트 루트의 `.claude/settings.json` 또는 글로벌 `~/.claude/settings.json`에서 설정합니다.
### 3.1 스키마에 대한 자료 간 모순
**Round 1 자료**는 이벤트마다 `matcher`와 `hooks` 배열을 갖는 **확장형 구조**를 제시합니다.
```json
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "./scripts/firewall.sh" }
]
}
]
}
}
```
반면 **Round 2 자료**는 이벤트명을 키로, 명령 문자열을 값으로 갖는 **단축 구조**를 제시합니다.
```json
{
"hooks": {
"SessionStart": "echo 'Session started at $(date)' >> session.log",
"PreToolUse": "python3 security_check.py"
}
}
```
두 형태가 모두 실제로 통용되는지, 아니면 한쪽이 구버전·약식 표기인지에 대해서는 자료가 충돌합니다. **현실적으로는 도구별 매처가 필요한 시나리오(`PreToolUse`에서 Bash만 가로채기 등)에서는 Round 1의 확장형이, 이벤트 단위 일괄 처리만 필요한 경우에는 Round 2의 단축형이 사용된다고 추정**되지만, 본인 환경에서는 **반드시 설치된 클로드 코드 버전의 공식 문서로 스키마를 재확인**해야 합니다.
### 3.2 실행 방식과 종료 코드 의미(Exit Code)
- **`type: "command"`** — 셸 스크립트, Python, JS 등 임의 명령 실행
- 그 외 자료에 따르면 **`http`(HTTP 엔드포인트), `prompt`(LLM 프롬프트), `agent`(서브에이전트 호출)** 형태도 지원(Round 3)
- 종료 코드 의미:
- `0` — 성공. `stdout`은 컨텍스트 주입에 사용 가능
- `2` — 차단(Block). `PreToolUse`에서 반환 시 해당 도구 실행이 차단되며, `stderr` 메시지가 모델에 전달됨
---
## 4. 주요 라이프사이클 이벤트
세 라운드 자료를 종합한 핵심 이벤트는 다음과 같습니다(Round 3은 "총 15개 이벤트가 존재"한다고 명시).
| 이벤트 | 발생 시점 | 대표 용도 |
| :--- | :--- | :--- |
| `SessionStart` | 세션 시작/재개 | Git 브랜치·이슈 등 컨텍스트 주입 |
| `UserPromptSubmit` | 유저 입력 직후, 모델 전송 전 | 입력 필터링, 비밀정보 마스킹, 컨텍스트 보강 |
| `PreToolUse` | 도구 실행 직전 | 위험 명령 차단, 정책 검사 |
| `PostToolUse` | 도구 실행 성공 직후 | 자동 린트·포맷·테스트 실행 |
| `SubagentStop` | 서브에이전트 종료 시 | 결과 집계, 후처리 |
| `PreCompact` | 컨텍스트 요약 직전 | 보존해야 할 데이터 보호 |
| `Stop` | 에이전트 응답 완료 | 최종 검증, 알림 발송 |
---
## 5. Hooks vs Skills — 본질적 차이
가장 흔한 혼동은 "둘 다 기능을 확장하는데 무엇이 다른가"입니다. 핵심은 **주도권(Who decides?)**과 **결정론성(Deterministic vs Probabilistic)**입니다.
| 구분 | **Hooks** | **Skills** |
| :--- | :--- | :--- |
| 주도권 | **시스템(System-driven)** — 이벤트 발생 시 강제 실행 | **모델(Agent-driven)** — 모델이 필요하다고 판단할 때 호출 |
| 결정론성 | 결정론적, 항상 같은 입력에 같은 행동 | 확률적, 모델 판단에 따라 호출 여부가 달라짐 |
| 실행 트리거 | 라이프사이클 이벤트 | 모델의 자연어 추론 결과 |
| 주된 목적 | 가드레일·보안·자동화·로깅 | 도메인 전문성, 복잡한 도구 사용, API 연동 |
| 비유 | 공장 자동화 라인의 **센서·차단기** | 필요할 때 부르는 **전문가 컨설턴트** |
요약하면: **"반드시 매번 일어나야 하는 일은 Hooks, 모델이 똑똑하게 판단해서 쓰면 좋은 능력은 Skills"**.
---
## 6. 고품질 결과를 얻기 위한 조합 전략
### 6.1 핵심 원칙: "Trust, but Verify"
1. **Skills로 지능을 증폭**: 프로젝트 컨벤션·라이브러리 사용법·도메인 지식을 Skill로 외부화하여 모델이 좋은 코드를 *처음부터* 쓰도록 유도.
2. **Hooks로 자동 검증**: `PostToolUse` 훅으로 린트·테스트·빌드를 자동 실행하여, 모델이 산출한 코드가 실제로 동작하는지 *기계적으로* 확인.
3. **피드백 루프 폐쇄**: 훅이 실패(non-zero exit)를 반환하면 모델은 즉시 그 결과를 받아 자기 수정에 들어감 — 사람의 개입 없이 품질이 수렴.
### 6.2 시나리오별 조합 예시
- **보안 강화형**
- `PreToolUse` 훅: `.env`·개인키·`rm -rf` 등 위험 패턴 차단
- `Security Auditor Skill`: 코드 변경분에 대한 OWASP 관점 리뷰 수행
- **품질 자동화형**
- `PostToolUse` 훅: `npm run lint --fix`, `pytest`, `tsc --noEmit` 자동 실행
- `Architect Skill`: 리팩토링 설계, 모듈 경계 의사결정 담당
- **컨텍스트 최적화형**
- `SessionStart` 훅: `README.md`, 최근 이슈, 현재 브랜치 diff를 자동 주입
- `Domain Skill`: 해당 프로젝트 특유의 비즈니스 규칙·용어집 제공
### 6.3 권장 설계 사고
> **"반드시 지켜야 하는 규칙은 Hooks로, 모델이 참고해야 할 전문 지식은 Skills로."**
이 분리가 명확할수록 시스템은 예측 가능해지고, 모델은 자신이 잘하는 일(추론·생성)에 집중할 수 있습니다.
---
## 7. 보안 유의사항 — 절대 가볍게 보지 말 것
Round 3 자료는 Hooks가 본질적으로 **임의 코드 실행(Arbitrary Code Execution) 권한**을 갖는다는 점에서 비롯되는 보안 위험을 강조합니다.
- **CVE-2025-59536**: 신뢰할 수 없는 리포지토리에 악의적인 `SessionStart` 훅이 포함된 `.claude/settings.json`이 있으면, `claude` 실행 즉시 로컬에서 임의 코드가 실행될 수 있음.
- **CVE-2026-33068**: 리포지토리 설정이 사용자 승인보다 먼저 처리되는 권한 우회 취약점.
- **대응**:
- Claude Code **v2.1.53 이상**으로 업데이트(Workspace Trust 도입)
- 처음 보는 리포지토리에서는 **`claude` 실행 전 `.claude/` 디렉토리를 반드시 검토**
- 필요 시 글로벌 설정에서 `"disableHooks": true`로 비활성화
또한 훅은 **동기적으로 실행**되므로, 무거운 작업(대규모 테스트 등)을 직접 박으면 CLI 응답성이 크게 떨어집니다. 이런 작업은 백그라운드 프로세스로 분리하거나, `Stop` 이벤트에서 사후 검증으로 돌리는 편이 낫습니다.
---
## 8. 결론 및 시사점
Hooks는 클로드 에이전트를 "똑똑한 챗봇"에서 **"신뢰할 수 있는 동료 엔지니어"**로 격상시키는 마지막 한 조각입니다. 모델이 아무리 똑똑해도 **시스템적으로 강제되는 가드레일과 자동화** 없이는 상용 환경의 신뢰 수준에 도달하기 어렵습니다. 반대로 Hooks만으로는 창의적·전문적 판단을 다 담을 수 없으며, 이를 보완하는 것이 Skills입니다.
본 조사에서 자료 간 모순(공식화 시점, settings.json 스키마)이 일부 확인되었으므로, **실제 구축 시에는 본인이 사용하는 클로드 코드 버전의 공식 문서**(`docs.anthropic.com/.../claude-code/configuration` 및 `.../security`)에서 정확한 스키마와 이벤트 목록을 한 번 더 검증하시길 권합니다. 그 다음 단계는 단순합니다 — **"규칙은 Hooks로, 지식은 Skills로"** 분리하고, 둘을 연결하는 피드백 루프를 만드는 것입니다.
## 라운드 간 모순
- Round1은 훅 공식화 시점을 '2025~2026'로 폭넓게 기술한 반면 Round2는 'Claude Code가 2025년에 공식 도입'으로 더 구체적으로 명시 — 정확한 출시/공식화 시점 재확인 필요
- settings.json의 hooks 값 형태가 Round1은 '이벤트→matcher→hooks 배열' 객체 구조, Round2는 '이벤트→문자열 명령' 단축 구조로 서로 달라 실제 공식 스키마 검증 필요
---
## References
- [Anthropic Claude Code Configuration](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/configuration)
- [Anthropic Claude Code Security](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/security)
- [Anthropic Trust Center (CVE-2025-59536 advisory)](https://trust.anthropic.com)
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기