Claude Code 응용편 정리 (1) - 스킬, 훅(hooks), 권한 설정, 서브 에이전트, 에이전트 팀
요약
본 글은 Claude Code의 고급 기능을 활용하여 개발 워크플로우를 자동화하는 방법을 안내합니다. 스킬(Skill), 훅(hooks), 권한 설정, 서브 에이전트, 에이전트 팀 등 다양한 요소를 조합해 복잡한 절차와 규칙을 시스템적으로 구현할 수 있습니다.
핵심 포인트
- 스킬(Skill)은 반복되는 절차를 이름으로 호출하여 자동화합니다.
- 훅(hooks)과 권한 설정은 특정 동작을 사전에 막거나 검증하는 역할을 합니다.
- 작업의 복잡도에 따라 '절차 작성' 또는 '일 나누어 맡기기' 방식으로 접근할 수 있습니다.
- 폴더 구조와 `.claude/` 설정을 통해 기능의 적용 범위를 관리해야 합니다.
Claude Code의 기본 기능(요청/허가 모드/CLAUDE.md/명령어 등)을 사용할 수 있게 된 분들을 위한 글입니다. 다음으로 무엇을 배워야 더 많은 일을 맡길 수 있는지에 대해 답합니다.
응용편 영상 #1부터 #5까지의 기능을, 겪는 어려움별로 선택할 수 있도록 정리했습니다. 이 글을 다 읽으면 스킬(skill), 훅(hooks), 권한 설정, 서브 에이전트, 에이전트 팀 중에서 맞는 것을 골라 첫 단계를 시작할 수 있습니다.
5가지 기능은 '절차와 규칙을 작성해 두기'와 '일을 나누어 맡기기'의 두 계통입니다. 모두 작은 연습용 리포지토리에서 실제로 실행해 보고, 돌아온 화면으로 확인했습니다.
#6부터 #10(MCP/명령어 등)은 후자에 묶여 있습니다.
시리즈 목차
응용편 전체 내용입니다. #1~#5는 그 1에, #6~#10은 그 2에 있으며, 각 항목 끝에 (그 1)(그 2)라고 적혀 있습니다. 제목 끝의 '영상 #N'은 영상 회차 번호이며, 아래 영상 목록과 대응합니다.
1. 절차와 규칙을 작성해 두기
2. 일을 나누어 맡기기
3. 대화를 오가며 화면을 열지 않고 움직이기
- #7 /resume 및 /branch: 이름으로 돌아가고, 원본을 남긴 채 가지를 쳐내기 (그 2)
- #8 claude -p: 정해진 요청을 한 줄로 부탁하기 (그 2)
- #9 /loop: 대화를 열어둔 동안 같은 확인 작업을 반복시키기 (그 2)
4. 외부 도구와 화면 추가하기
#11부터는 5가지가 갖춰질 때마다 추가됩니다.
전제: 위치(置き場)와 폴더의 신뢰성
기본 사용법은 기본편 글에 정리되어 있습니다. 응용편 기능의 대부분은 설정 파일이나 폴더에 작성하여 사용하며, 놓는 장소에 따라 효력이 미치는 범위가 달라집니다.
| 위치 | 적용 범위 |
|---|---|
홈 디렉토리의 ~/.claude/ (settings.json ・skills/ 등) | 자신의 모든 리포지토리 (해당 머신 내에서만) |
리포지토리의 .claude/ (settings.json ・skills/ 등) | 해당 리포지토리. 커밋하면 팀과 공유 가능 |
리포지토리의 .claude/settings.local.json | 해당 리포지토리에서 자신만 |
처음 폴더에서 claude를 열면 '이 폴더를 신뢰할까요?'라는 확인 메시지가 나옵니다. 리포지토리의 .claude/settings.json에 작성한 allow(확인 없이 통과시키는 규칙)나 hooks는 이 확인을 승낙해야 효력이 발생합니다. 처음 접하는 폴더는 먼저 일반적인 claude로 열어 승낙해 두어야 합니다.
1. 절차와 규칙을 작성해 두기
절차를 호출할 수 있는 형태로 만들고, 지켜야 할 규칙을 시스템으로 막거나 확인에 대한 답을 미리 작성합니다.
스킬(Skill): 반복되는 절차를 이름으로 부르기 (영상 #1)
매번 채팅창에 붙여 넣던 절차를 하나의 메모(SKILL.md)로 만들고, /이름 한마디로 호출할 수 있게 합니다. 폴더명이 호출할 때의 이름이 됩니다.
---
name: run-tests-and-report
description: 변경을 가한 후 테스트를 실행하고 결과를 보고한다. 코드를 편집한 직후나 '테스트해', '확인해'라고 부탁받았을 때 사용한다.
...
/run-tests-and-report 라고 치자, 실패한 테스트의 이름과 이유가 돌아왔습니다. 이름을 치지 않고
스크립트에는 chmod +x
으로 실행 권한을 부여합니다. 멈출 때는 종료 코드 2로 끝냅니다. 표준 에러에 작성된 문구가 이유로서 Claude에게 전달됩니다. 종료 코드 1로는 멈추지 않고 그대로 진행됩니다. "dummy.txt를 rm -rf로 지워"라고 요청하자, hook이 실행 전에 막았습니다.

빨간색 글씨가 hook이 반환한 이유(2026-09-28)
Claude는 이유대로 -rf를 뺀 rm으로 수정했고, 그것은 평소의 허가 확인 절차에서 막혔습니다. hook은 작성된 조건에 해당하는 것만 막습니다. 이 스크립트는 jq가 없으면 그냥 지나가기 때문에, jq가 설치되어 있는지 먼저 확인합니다.
권한 설정: 같은 확인에 대한 답을 미리 쓰기 (영상 #5)
확인에 대한 답변을 permissions에 작성해 두면, 자주 사용하는 명령어는 확인 없이 통과하고, 정한 명령어는 요청해도 막힙니다.
{
"permissions": {
"allow": ["Bash(npm test *)", "Bash(npm test)"],
...
}
규칙은 allow(확인 없음)・ask(매번 확인)・deny(사용 금지)의 3가지 종류가 있으며, deny → ask → allow 순서로 적용됩니다. 작성된 규칙은 /permissions에서 확인할 수 있습니다.

위는 allow에 해당한 npm test 요청으로, Claude는 출력을 tail로 제한하여 실행했습니다. 아래는 deny에 해당한 curl로, 확인 화면도 없이 멈췄습니다(2026-09-28)
Bash 규칙은 Claude가 작성한 명령어의 문자에 적용됩니다. Bash(curl *)는 전체 경로인 /usr/bin/curl나 sh -c 안의 curl을 막지 않습니다. 반드시 지키게 하고 싶을 때는, sandbox 기능(/sandbox・기본값 꺼짐)과 조합하는 것이 공식에서 작성되어 있습니다. sandbox는 OS의 메커니즘으로 파일과 연결 대상의 경계를 보호합니다.
2. 일을 나누어 맡기기
하나의 대화에 모든 것을 요청하면, 읽은 내용이 쌓입니다. 조사와 담당을 나눕니다. 작업할 장소를 분리하는 worktree는 그 2에 있습니다.
서브 에이전트: 많이 읽어야 하는 조사를 맡기기 (영상 #2)
서브 에이전트는 자신의 대화(context)에서 작업을 수행하고, 요약만 반환합니다. 맡기는 방법은 요청 맨 앞에 한마디를 추가하는 것뿐입니다.
서브 에이전트에게 맡겨. 이 리포의 모든 파일을 읽고, 모듈별 역할과 테스트 유무를 목록으로 만들어줘
맡긴 직후에 /context를 입력하고, 대화의 분(Messages) 줄을 봅니다. 새로운 대화에서 같은 요청을 하여 비교했습니다(단위는 토큰).
| 조사 내용 | 그대로 요청할 때 | 맡길 때 |
|---|---|---|
| 파일 22개 읽기 | 12.9k~13.6k | 11.2k~11.3k |
| 파일 7개 읽기 | 7.0k~7.5k | 9.4k |
많이 읽어야 하는 조사에서는 대화에 남는 양이 줄어들었고, 목록의 내용은 같았습니다. 작은 조사는 오히려 늘었습니다. 많이 읽어야 하는 조사만 맡기기로 했습니다. 전용 서브 에이전트는 .claude/agents/ (해당 리포지토리) 또는 ~/.claude/agents/ (모든 리포지토리)에 정의를 작성하여 만들 수 있습니다. 서브 에이전트의 분량도 같은 사용량 상한에 계산됩니다.
agent teams: 담당들끼리 상담하게 하기 (영상 #3)
agent teams는 첫 대화가 정리 역할을 하여 담당을 생성하고, 담당들끼리가 직접 주고받으며 진행하는 메커니즘입니다. 실험적 기능이며, 기본값은 꺼져 있습니다.
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
...
}
활성화한 후에는 평범한 말로 요청합니다.
두 명의 팀으로 분담합니다. 제작 담당은 함수 splitBill을 src/split.js에 만듭니다. 인자, 반환값, 나머지 처리, 오류 사양을 정해서 테스트 담당에게 전달합니다. 테스트 담당은 구현을 보지 않고, 사양을 만든 담당에게 확인한 후에 test/split.test.js에 테스트를 작성합니다.
제작 담당과 테스트 담당이 구성되어, 테스트 담당은 구현을 한 번도 읽지 않은 채, 제작 담당으로부터 들은 사양만으로 테스트를 작성하고 통과시켰습니다.
팀은 조정 과정의 수고가 필요하며, 하나의 대화보다 토큰을 훨씬 많이 사용합니다. 공식 문서는 먼저 가벼운 방법으로 충분한지 확인하도록 권장합니다. 우선 서브 에이전트를 사용하고, 담당 간의 상담이 필요할 때만 팀을 구성하는 것이 좋습니다.
요약
- 매번의 절차는 스킬(skill)로 만들어
/이름으로 호출합니다. 설명에 맞는 요청이라면 Claude가 스스로 사용할 수도 있습니다. - 지키게 하고 싶은 규칙은 hook (종료 코드 2), 정해진 답변은permissions에 작성합니다. 이들은 모두 배치(place)에서 효력 범위가 달라집니다. - 많이 읽는 조사/조사는 서브 에이전트에게 맡깁니다. 담당 간의 상담이 필요할 때만 agent teams를 사용합니다.
다음으로 읽을 자료
- Claude Code 응용편 정리 그 2 (#6~#10): MCP・/resume 및 /branch・claude -p・/loop・worktree
- Claude Code 사용법 입문 (기본편 기사): 요청, 허가 모드, CLAUDE.md, /clear, /rewind의 기본
각 회차 영상 (1개당 5분 이내)
재생 목록: https://www.youtube.com/playlist?list=PLX_mQcKD-ZbQ
참고 링크 (일차 정보)
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기