Skills (스킬) 마스터하기
스킬이란?
반복 작업을 자동화하는 마크다운 레시피입니다. 자주 하는 작업 패턴을 파일로 저장해두면, Claude Code가 일관되게 처리합니다. "업무 매뉴얼을 Claude Code에게 등록해두는 것"입니다.스킬 파일 위치와 구조
~/.claude/skills/ # 전역 스킬 (모든 프로젝트)
.claude/skills/ # 프로젝트 스킬 (Git 공유 가능)
/skills # 사용 가능한 스킬 목록 보기
스킬 파일은 YAML 프런트매터 + 마크다운 본문:
---
name: cafe24-order-cleaner
description: 카페24 스토어의 주문 데이터를 정리합니다. 카페24 엑셀 정리가 필요할 때 사용하세요.
---
# 카페24 주문 데이터 정리
1. input 폴더의 카페24 주문 엑셀 읽기
2. 불필요한 칼럼 제거 (카페24 기본 내보내기에 포함된 시스템 칼럼 등)
3. 칼럼명 한글 통일 (영문/영문+한글 혼합 → 한글)
4. SKU별 주문수/매출/평균단가 요약 시트 추가
5. 기간별(일/주/월) 집계 시트 추가
6. output 폴더에 정리된 엑셀 저장
description이 중요합니다. Claude Code가 이 설명을 보고 언제 이 스킬을 사용할지 판단합니다.
실전 스킬 3가지
1. 카페24 데이터 정리 - 위 예시. "카페24 주문 데이터 정리해줘"로 호출. 2. 주간 브랜드 리포트 (~/.claude/skills/weekly-brand-report.md):
---
name: weekly-brand-report
description: 주간 브랜드별 매출 리포트를 생성합니다. 매주 월요일 리포트 정리할 때 사용하세요.
---
# 주간 브랜드 리포트
1. 브랜드별 주간 매출 집계 (8개 브랜드)
2. 전주 대비 증감률 계산
3. 채널별 매출 비중 (자사몰/쿠팡/네이버/기타)
4. Top 10 SKU 랭킹
5. 특이사항 (전주 대비 30% 이상 증감 SKU 자동 추출)
6. 마크다운 + 엑셀 두 형태로 output/ 저장
3. 경쟁사 모니터링 (~/.claude/skills/competitor-monitor.md):
---
name: competitor-monitor
description: 경쟁사 가격/프로모션 데이터를 정리합니다. 경쟁사 분석이 필요할 때 사용하세요.
---
# 경쟁사 모니터링
1. 경쟁사 제품별 가격 추출 (스크린샷 또는 엑셀)
2. 우리 제품과 1:1 매칭 (유사 카테고리 기준)
3. 가격 차이 계산, 프로모션 정보 정리
4. "우리가 비싼 제품 / 우리가 싼 제품" 분류
5. output/ 에 비교 테이블 엑셀 저장
스킬 vs CLAUDE.md vs 서브에이전트
| 구분 | 스킬 (Skills) | CLAUDE.md | 서브에이전트 |
|---|---|---|---|
| 역할 | 반복 작업 레시피 | 프로젝트 맥락/규칙 | 독립 하위 작업 수행 |
| 적용 | 명시적 호출 또는 자동 매칭 | 항상 자동 로드 | 메인 에이전트가 위임 |
| 저장 | .claude/skills/ (Git 공유) | 프로젝트 루트 (Git 공유) | 코드 내 설정 |
판단 기준: "매번 같은 패턴" -> 스킬 / "항상 적용할 규칙" -> CLAUDE.md / "병렬 처리" -> 서브에이전트
Hooks (훅) 활용하기
훅이란?
Claude Code 라이프사이클의 특정 시점에 자동 실행되는 명령입니다. AI 판단이 아닌 확정적(deterministic) 규칙 기반으로 동작합니다. "파일 수정 시 Prettier 실행"을 AI에게 말로 부탁하면 잊을 수 있지만, 훅은 100% 실행됩니다.주요 훅 이벤트
| 이벤트 | 발생 시점 | 활용 예시 |
|---|---|---|
PreToolUse | 도구 실행 전 | 위험 명령 차단, .env 수정 방지 |
PostToolUse | 도구 실행 후 | 자동 포맷팅 (Prettier), 로그 기록 |
Notification | 입력 대기 상태 진입 시 | 데스크톱 알림, Slack 알림 |
Stop | 응답 완료 시 | 작업 완료 검증, 세션 요약 저장 |
SessionStart | 세션 시작/재개 시 | 환경 변수 로드, 컨텍스트 주입 |
PermissionRequest | 권한 요청 시 | 특정 도구 자동 승인 |
실전 설정 예시 3가지
1. 데스크톱 알림 (Notification) - 긴 작업 중 다른 일을 해도 놓치지 않음:{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude Code 확인 필요\" with title \"Claude Code\" sound name \"Ping\"'"
}
]
}
]
}
}
matcher가 빈 문자열이면 모든 알림에 반응. 정규식으로 특정 키워드 필터링 가능.
2. 파일 편집 후 자동 포맷 (PostToolUse + Prettier):
{
"hooks": {
"PostToolUse": [
{
"matcher": "write|edit",
"hooks": [
{
"type": "command",
"command": "npx prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
}
]
}
]
}
}
$CLAUDE_FILE_PATH는 방금 수정한 파일 경로로 자동 치환됩니다.
3. 보호 파일 편집 차단 (PreToolUse):
먼저 .claude/hooks/protect-files.sh 스크립트를 만듭니다:
#!/bin/bash
INPUT=$(cat)
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
# 보호할 파일 패턴
PROTECTED=(".env" ".env.local" "package-lock.json" "yarn.lock")
for pattern in "${PROTECTED[@]}"; do
if [[ "$FILE_PATH" == *"$pattern"* ]]; then
echo "BLOCKED: $FILE_PATH 는 수동으로만 편집하세요" >&2
exit 2
fi
done
exit 0
그리고 settings.json에 훅을 등록합니다:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/protect-files.sh"
}
]
}
]
}
}
exit 2로 종료하면 해당 도구 실행이 차단되고, stderr 메시지가 Claude에게 피드백됩니다. "이 파일 수정하지 마"라고 말하는 것보다 확실합니다.
설정 파일 위치와 우선순위
| 위치 | 적용 범위 | Git 공유 | 용도 |
|---|---|---|---|
~/.claude/settings.json | 모든 프로젝트 | X (로컬) | 개인 전역 설정 |
.claude/settings.json | 현재 프로젝트 | O (Git) | 팀 공유 설정 |
.claude/settings.local.json | 현재 프로젝트 | X (로컬) | 개인 프로젝트 설정 |
우선순위: 프로젝트 로컬 > 프로젝트 공유 > 전역.
Prompt 기반 훅과 Agent 기반 훅
type: "command" 외에 두 가지 타입이 더 있습니다.
type: "prompt" - AI 판단으로 조건부 제어. Stop 훅에서 "모든 작업 완료 여부 확인"에 유용:
{
"hooks": {
"Stop": [{
"matcher": "",
"hooks": [{
"type": "prompt",
"prompt": "사용자가 요청한 모든 작업이 완료되었는지 확인하세요. 미완료 항목이 있으면 계속 진행하세요."
}]
}]
}
}
type: "agent" - 서브에이전트가 실제로 도구를 사용해 검증. 테스트 통과 확인 후 종료 같은 복잡한 검증에 사용:
{
"hooks": {
"Stop": [{
"matcher": "",
"hooks": [{
"type": "agent",
"prompt": "npm test를 실행하고 모든 테스트가 통과하는지 확인하세요. 실패하면 수정하세요."
}]
}]
}
}
prompt는 AI가 판단만, agent는 서브에이전트가 실제 도구를 실행하여 검증합니다.
❓
퀴즈
이 챕터의 핵심 내용을 확인해보세요
1
Claude Code에서 반복 작업을 자동화하는 마크다운 레시피를 무엇이라 하나?
2
Hooks의 주요 역할은?