πŸš€ Claude Skills둜 반볡 μž‘μ—… μžλ™ν™”ν•˜κΈ° - 5단계 μ‹€μ „ κ°€μ΄λ“œ

β€’

μ†Œκ°œ

ν”„λ‘ νŠΈμ—”λ“œ κ°œλ°œμ„ ν•˜λ‹€ 보면 컀밋 λ©”μ‹œμ§€ μž‘μ„±, μ½”λ“œ 리뷰, λ¬Έμ„œν™” λ“± 반볡적인 μž‘μ—…μ΄ λ§Žμ•„μš”. Claude SkillsλŠ” μ΄λŸ¬ν•œ 반볡 μž‘μ—…μ„ μžλ™ν™”ν•˜λŠ” λ„κ΅¬μ˜ˆμš”. Claude Code CLIμ—μ„œ μ»€μŠ€ν…€ μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ •μ˜ν•˜μ—¬, λ³΅μž‘ν•œ 닀단계 μž‘μ—…μ„ ν•˜λ‚˜μ˜ λͺ…λ Ήμ–΄λ‘œ μ‹€ν–‰ν•  수 μžˆμ–΄μš”.

이 κΈ€μ—μ„œλŠ” Claude Skills의 κΈ°λ³Έ κ°œλ…λΆ€ν„° μ‹€μ „ μ˜ˆμ œκΉŒμ§€ λ‹¨κ³„λ³„λ‘œ μ•Œμ•„λ³Όκ²Œμš”. 이 글을 읽으면 λ‚˜λ§Œμ˜ μŠ€ν‚¬μ„ λ§Œλ“€μ–΄ 개발 생산성을 높일 수 μžˆμ–΄μš”.

이 글은 Claude Code CLIλ₯Ό μ„€μΉ˜ν•˜κ³  κΈ°λ³Έ μ‚¬μš©λ²•μ„ μ΄ν•΄ν•œ 개발자λ₯Ό λŒ€μƒμœΌλ‘œ ν•΄μš”.

Claude Skills μ‹œμž‘ν•˜κΈ°

μ„€μΉ˜ 확인

Claude Codeκ°€ μ„€μΉ˜λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•΄λ³΄μ„Έμš”.

claude --version

디렉토리 ꡬ쑰

Claude SkillsλŠ” ν”„λ‘œμ νŠΈμ˜ .claude/skills/ 디렉토리에 μ €μž₯λΌμš”.

.claude/
└── skills/
    └── my-skill/
        β”œβ”€β”€ SKILL.md        # μŠ€ν‚¬ μ •μ˜ 파일 (ν•„μˆ˜)
        └── references/     # μ°Έμ‘° 파일 (선택)
            β”œβ”€β”€ template.md
            └── config.json

μŠ€ν‚¬ μžλ™ 인식

.claude/skills/ 디렉토리에 μžˆλŠ” λͺ¨λ“  μŠ€ν‚¬μ€ μžλ™μœΌλ‘œ μΈμ‹λΌμš”. λ³„λ„μ˜ 등둝 과정이 ν•„μš” μ—†μ–΄μš”.

첫 번째 μŠ€ν‚¬ λ§Œλ“€κΈ°

κ°€μž₯ κ°„λ‹¨ν•œ μŠ€ν‚¬λΆ€ν„° μ‹œμž‘ν•΄λ³Όκ²Œμš”. SKILL.md νŒŒμΌμ€ YAML frontmatter와 μ›Œν¬ν”Œλ‘œμš° μ§€μ‹œμ‚¬ν•­μœΌλ‘œ κ΅¬μ„±λΌμš”.

## <!-- .claude/skills/hello-skill/SKILL.md -->

name: hello-skill
description: μ‚¬μš©μžμ—κ²Œ κ°„λ‹¨ν•œ 인사 λ©”μ‹œμ§€λ₯Ό μƒμ„±ν•΄μš”

---

# hello-skill

κ°„λ‹¨ν•œ 인사 λ©”μ‹œμ§€λ₯Ό μƒμ„±ν•˜λŠ” μŠ€ν‚¬μ΄μ—μš”.

## μ›Œν¬ν”Œλ‘œμš°

### Step 1: μ‚¬μš©μž 이름 확인

μ‚¬μš©μžκ°€ 인자둜 이름을 μ œκ³΅ν–ˆλŠ”μ§€ ν™•μΈν•΄μš”.

- 제곡된 경우: ν•΄λ‹Ή 이름 μ‚¬μš© (첫 번째 인자λ₯Ό μ΄λ¦„μœΌλ‘œ μ‚¬μš©)
- μ œκ³΅λ˜μ§€ μ•Šμ€ 경우: μ‚¬μš©μžμ—κ²Œ 이름 μž…λ ₯ μš”μ²­

### Step 2: 인사 λ©”μ‹œμ§€ 생성 및 좜λ ₯

λ‹€μŒ ν˜•μ‹μœΌλ‘œ 인사 λ©”μ‹œμ§€λ₯Ό μƒμ„±ν•˜μ—¬ 좜λ ₯ν•΄μš”.

μ•ˆλ…•ν•˜μ„Έμš”, [이름]λ‹˜!
Claude Skills에 μ˜€μ‹  것을 ν™˜μ˜ν•©λ‹ˆλ‹€.

SKILL.mdλŠ” μ§€μ‹œμ‚¬ν•­μ΄μ—μš”

SKILL.mdλŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ μ•„λ‹ˆλΌ Claudeλ₯Ό μœ„ν•œ μ§€μ‹œμ‚¬ν•­μ΄μ—μš”. Claudeκ°€ 이 λ‚΄μš©μ„ 읽고 ν•΄μ„ν•˜μ—¬ ν•„μš”ν•œ 도ꡬ(Read, Write, Bash λ“±)λ₯Ό μžλ™μœΌλ‘œ μ„ νƒν•΄μ„œ μ‚¬μš©ν•΄μš”.

μŠ€ν‚¬ μ‹€ν–‰ 방법은 λ‹€μŒκ³Ό κ°™μ•„μš”.

# CLIμ—μ„œ
claude skills hello-skill "홍길동"

# λ˜λŠ” λŒ€ν™”ν˜• λͺ¨λ“œμ—μ„œ
/hello-skill 홍길동

μ‹€μ „ 예제: 컀밋 λ©”μ‹œμ§€ μžλ™ 생성

이제 μ‹€μ „ 예제둜 Conventional Commits ν˜•μ‹μ˜ 컀밋 λ©”μ‹œμ§€λ₯Ό μžλ™ μƒμ„±ν•˜λŠ” μŠ€ν‚¬μ„ λ§Œλ“€μ–΄λ³Όκ²Œμš”.

μ›Œν¬ν”Œλ‘œμš° 섀계

컀밋 λ©”μ‹œμ§€ 생성 μŠ€ν‚¬μ€ λ‹€μŒ 5λ‹¨κ³„λ‘œ κ΅¬μ„±λΌμš”.

  1. 변경사항 뢄석: git diff둜 μˆ˜μ •λœ 파일과 λ‚΄μš© 확인
  2. λ³€κ²½ μœ ν˜• λΆ„λ₯˜: feat, fix, refactor λ“± νƒ€μž… κ²°μ •
  3. 영ν–₯ λ²”μœ„ νŒŒμ•…: μ–΄λ–€ λͺ¨λ“ˆ/μ»΄ν¬λ„ŒνŠΈκ°€ λ³€κ²½λ˜μ—ˆλŠ”μ§€ 뢄석
  4. λ©”μ‹œμ§€ 생성: Conventional Commits ν˜•μ‹μœΌλ‘œ μž‘μ„±
  5. μ‚¬μš©μž 확인: λ©”μ‹œμ§€ 승인 ν›„ ν΄λ¦½λ³΄λ“œ 볡사 λ˜λŠ” 직접 컀밋

SKILL.md μž‘μ„±

## <!-- .claude/skills/commit-msg/SKILL.md -->

name: commit-msg
description: git 변경사항을 λΆ„μ„ν•˜μ—¬ Conventional Commits ν˜•μ‹μ˜ 컀밋 λ©”μ‹œμ§€λ₯Ό μžλ™ μƒμ„±ν•΄μš”
allowed-tools: Bash, Read

---

# commit-msg μŠ€ν‚¬

git 변경사항을 λΆ„μ„ν•˜μ—¬ Conventional Commits ν˜•μ‹μ˜ 컀밋 λ©”μ‹œμ§€λ₯Ό μžλ™ μƒμ„±ν•΄μš”.

## μ›Œν¬ν”Œλ‘œμš°

### Step 1: 변경사항 뢄석

λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ—¬ 변경사항을 λΆ„μ„ν•΄μš”.

```bash
git diff --cached --stat
git diff --cached
```

λ³€κ²½λœ 파일 λͺ©λ‘κ³Ό diff λ‚΄μš©μ„ λΆ„μ„ν•΄μš”.

  • λ³€κ²½λœ 파일 개수
  • μΆ”κ°€/μ‚­μ œλœ 라인 수
  • μ£Όμš” λ³€κ²½ λ‚΄μš©

Step 2: λ³€κ²½ μœ ν˜• λΆ„λ₯˜

references/commit-types.mdλ₯Ό 읽어 λ‹€μŒ κΈ°μ€€μœΌλ‘œ νƒ€μž…μ„ κ²°μ •ν•΄μš”.

  • feat: μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€
  • fix: 버그 μˆ˜μ •
  • refactor: μ½”λ“œ λ¦¬νŒ©ν† λ§
  • style: μ½”λ“œ ν¬λ§·νŒ…, μ„Έλ―Έμ½œλ‘  λ“±
  • docs: λ¬Έμ„œ μˆ˜μ •
  • test: ν…ŒμŠ€νŠΈ μ½”λ“œ
  • chore: λΉŒλ“œ μ„€μ •, νŒ¨ν‚€μ§€ μ—…λ°μ΄νŠΈ

파일 κ²½λ‘œμ™€ λ³€κ²½ λ‚΄μš©μ„ 기반으둜 νƒ€μž…μ„ μžλ™ μ„ νƒν•΄μš”. 뢈λͺ…ν™•ν•œ 경우 AskUserQuestion으둜 μ‚¬μš©μžμ—κ²Œ ν™•μΈν•΄μš”.

Step 3: 영ν–₯ λ²”μœ„ νŒŒμ•…

λ³€κ²½λœ 파일 경둜λ₯Ό λΆ„μ„ν•΄μš”.

  • src/components/ β†’ scope: "components"
  • src/utils/ β†’ scope: "utils"
  • src/pages/ β†’ scope: "pages"

μ—¬λŸ¬ λ²”μœ„κ°€ μ„žμΈ 경우 κ°€μž₯ μ£Όμš”ν•œ λ²”μœ„λ₯Ό μ„ νƒν•΄μš”.

Step 4: λ©”μ‹œμ§€ 생성

Conventional Commits ν˜•μ‹μœΌλ‘œ λ©”μ‹œμ§€λ₯Ό μƒμ„±ν•΄μš”.

<type>(<scope>): <subject>

<body>

<footer>

μ˜ˆμ‹œ

feat(components): add dark mode toggle button

- Add DarkModeToggle component with theme switching
- Integrate with ThemeProvider context
- Add animation for smooth transition

Closes #123

Step 5: μ‚¬μš©μž 확인 및 적용

μƒμ„±λœ λ©”μ‹œμ§€λ₯Ό μ‚¬μš©μžμ—κ²Œ 보여주고 선택을 μš”μ²­ν•΄μš”.

AskUserQuestion 도ꡬ μ‚¬μš©

  • μ˜΅μ…˜ 1: "이 λ©”μ‹œμ§€λ‘œ 컀밋" (Recommended)
  • μ˜΅μ…˜ 2: "ν΄λ¦½λ³΄λ“œμ— 볡사"
  • μ˜΅μ…˜ 3: "μˆ˜μ • ν•„μš”"

μ˜΅μ…˜ 1 선택 μ‹œ

git commit -m "μƒμ„±λœ λ©”μ‹œμ§€"

μ˜΅μ…˜ 2 선택 μ‹œ

echo "μƒμ„±λœ λ©”μ‹œμ§€" | pbcopy  # macOS
# λ˜λŠ” xclip -selection clipboard  # Linux

μ˜΅μ…˜ 3 선택 μ‹œ μˆ˜μ • 사항을 μž…λ ₯λ°›μ•„ Step 4둜 λŒμ•„κ°€μš”.

SKILL.mdλŠ” Claudeκ°€ μ‹€ν–‰ν•  ν”„λ‘œκ·Έλž¨μ²˜λŸΌ μž‘μ„±ν•΄μ•Ό ν•΄μš”. λ‹¨κ³„λ³„λ‘œ λͺ…ν™•ν•œ 쑰건문, 도ꡬ 호좜, 검증 λ‘œμ§μ„ ν¬ν•¨ν•˜μ„Έμš”.

References 파일 ꡬ성

μŠ€ν‚¬μ΄ μ°Έμ‘°ν•  νŒŒμΌμ„ references/ 디렉토리에 μ €μž₯ν•΄μš”.

<!-- .claude/skills/commit-msg/references/commit-types.md -->

# Conventional Commits νƒ€μž… κ°€μ΄λ“œ

## feat (κΈ°λŠ₯)

μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•˜λŠ” κ²½μš°μ˜ˆμš”.

**νŒ¨ν„΄**

- μƒˆ μ»΄ν¬λ„ŒνŠΈ 생성
- μƒˆ API μ—”λ“œν¬μΈνŠΈ μΆ”κ°€
- μƒˆ κΈ°λŠ₯ κ΅¬ν˜„

**μ˜ˆμ‹œ**

- `feat(auth): add OAuth login`
- `feat(ui): add loading spinner component`

## fix (버그 μˆ˜μ •)

버그λ₯Ό μˆ˜μ •ν•˜λŠ” κ²½μš°μ˜ˆμš”.

**νŒ¨ν„΄**

- μ—λŸ¬ ν•΄κ²°
- μ˜λ„ν•˜μ§€ μ•Šμ€ λ™μž‘ μˆ˜μ •
- 버그 ν”½μŠ€

**μ˜ˆμ‹œ**

- `fix(login): resolve token expiration issue`
- `fix(ui): correct button alignment`

## refactor (λ¦¬νŒ©ν† λ§)

κΈ°λŠ₯ λ³€κ²½ 없이 μ½”λ“œ ꡬ쑰만 κ°œμ„ ν•΄μš”.

**νŒ¨ν„΄**

- μ½”λ“œ 정리
- ν•¨μˆ˜ 뢄리
- λ³€μˆ˜λͺ… λ³€κ²½

## docs (λ¬Έμ„œ)

λ¬Έμ„œλ§Œ μˆ˜μ •ν•΄μš”.

**νŒ¨ν„΄**

- README μˆ˜μ •
- 주석 μΆ”κ°€/μˆ˜μ •
- λ¬Έμ„œ 파일 μ—…λ°μ΄νŠΈ

## style (μŠ€νƒ€μΌ)

μ½”λ“œ ν¬λ§·νŒ…, μ„Έλ―Έμ½œλ‘  등을 μˆ˜μ •ν•΄μš”.

## test (ν…ŒμŠ€νŠΈ)

ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μˆ˜μ •ν•΄μš”.

## chore (기타)

λΉŒλ“œ μ„€μ •, νŒ¨ν‚€μ§€ μ—…λ°μ΄νŠΈ 등을 μ²˜λ¦¬ν•΄μš”.

SKILL.md 핡심 κ°œλ…

YAML Frontmatter

λͺ¨λ“  SKILL.md νŒŒμΌμ€ 상단에 YAML frontmatterκ°€ ν•„μš”ν•΄μš”.

---
name: μŠ€ν‚¬μ΄λ¦„
description: μŠ€ν‚¬ μ„€λͺ… (Claudeκ°€ μžλ™ μ‹€ν–‰ νŒλ‹¨μ— μ‚¬μš©)
allowed-tools: Bash, Read, Write # 선택사항
disable-model-invocation: false # 선택사항
---

ν•„μˆ˜ ν•„λ“œ:

  • name: μŠ€ν‚¬ 이름 (kebab-case, μ΅œλŒ€ 64자)
  • description: μŠ€ν‚¬ μ„€λͺ… (μ–Έμ œ μ‚¬μš©ν•˜λŠ”μ§€ λͺ…ν™•νžˆ μž‘μ„±)

선택 ν•„λ“œ:

  • allowed-tools: μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ μ œν•œ
  • disable-model-invocation: true둜 μ„€μ • μ‹œ μˆ˜λ™ μ‹€ν–‰λ§Œ κ°€λŠ₯

인자 μ‚¬μš©ν•˜κΈ°

μŠ€ν‚¬ μ‹€ν–‰ μ‹œ μ „λ‹¬λœ 인자λ₯Ό μ‚¬μš©ν•  수 μžˆμ–΄μš”.

---
name: greet
description: μ‚¬μš©μžμ—κ²Œ μΈμ‚¬ν•˜κΈ°
---

μ•ˆλ…•ν•˜μ„Έμš”, $0λ‹˜!
였늘 λ‚ μ”¨λŠ” $1μ΄μ—μš”.

μ‹€ν–‰ μ˜ˆμ‹œ:

/greet 홍길동 λ§‘μŒ
# κ²°κ³Ό: μ•ˆλ…•ν•˜μ„Έμš”, ν™κΈΈλ™λ‹˜! 였늘 λ‚ μ”¨λŠ” λ§‘μŒμ΄μ—μš”.
  • $0, $1, $2 λ“±μœΌλ‘œ 각 μΈμžμ— μ ‘κ·Ό
  • $ARGUMENTS둜 λͺ¨λ“  인자 λ¬Έμžμ—΄μ— μ ‘κ·Ό

κ³ κΈ‰ 팁

μ‚¬μš©μž μž…λ ₯ λ°›κΈ°

SKILL.mdμ—μ„œ μ‚¬μš©μžμ—κ²Œ μ§ˆλ¬Έν•˜κ³  선택을 받을 수 μžˆμ–΄μš”.

### 배포 ν™˜κ²½ 선택

μ‚¬μš©μžμ—κ²Œ λ‹€μŒ 쀑 배포 ν™˜κ²½μ„ μ„ νƒν•˜λ„λ‘ μš”μ²­ν•΄μš”.

1. Staging (ν…ŒμŠ€νŠΈ ν™˜κ²½) - ꢌμž₯
2. Production (μ‹€μ„œλΉ„μŠ€)

**Staging 선택 μ‹œ**
`npm run deploy:staging` μ‹€ν–‰

**Production 선택 μ‹œ**
μΆ”κ°€ 확인 ν›„ λ°±μ—… 생성 및 배포

Claudeκ°€ 이 μ§€μ‹œμ‚¬ν•­μ„ 읽고 μ‚¬μš©μžμ—κ²Œ 선택지λ₯Ό μ œμ‹œν•΄μš”.

λ³΅μž‘ν•œ μ›Œν¬ν”Œλ‘œμš° ꡬ성

μ—¬λŸ¬ μž‘μ—…μ„ μ‘°ν•©ν•˜μ—¬ λ³΅μž‘ν•œ μ›Œν¬ν”Œλ‘œμš°λ₯Ό κ΅¬ν˜„ν•  수 μžˆμ–΄μš”.

### μ½”λ“œλ² μ΄μŠ€ 뢄석

1. `**/*.tsx` νŒ¨ν„΄μœΌλ‘œ λͺ¨λ“  TSX 파일 μ°ΎκΈ°
2. 각 파일 λ‚΄μš© 읽기
3. `useState` νŒ¨ν„΄ 검색
4. `npm list` λͺ…λ Ήμ–΄λ‘œ μ˜μ‘΄μ„± 확인

κ²°κ³Όλ₯Ό μ’…ν•©ν•˜μ—¬ ν”„λ‘œμ νŠΈ ꡬ쑰 λ³΄κ³ μ„œλ₯Ό μƒμ„±ν•΄μš”.

Claudeκ°€ 이 μ§€μ‹œμ‚¬ν•­μ„ 읽고 Glob, Read, Grep, Bash 도ꡬλ₯Ό μžλ™μœΌλ‘œ μ„ νƒν•΄μ„œ μ‚¬μš©ν•΄μš”. 각 λ‹¨κ³„μ˜ κ²°κ³Όλ₯Ό λ‹€μŒ λ‹¨κ³„μ˜ μž…λ ₯으둜 μ‚¬μš©ν•˜λŠ” νŒŒμ΄ν”„λΌμΈ λ°©μ‹μœΌλ‘œ μ„€κ³„ν•˜μ„Έμš”.

νŠΈλŸ¬λΈ”μŠˆνŒ…

Skills이 μΈμ‹λ˜μ§€ μ•Šμ„ λ•Œ

μŠ€ν‚¬μ΄ μΈμ‹λ˜μ§€ μ•ŠλŠ” 경우 λ‹€μŒμ„ ν™•μΈν•΄λ³΄μ„Έμš”.

  1. 디렉토리 μœ„μΉ˜ 확인
ls -la .claude/skills/
  1. SKILL.md 파일 쑴재 확인
ls .claude/skills/my-skill/SKILL.md
  1. Claude Code μž¬μ‹œμž‘
exit
claude

주의

μŠ€ν‚¬ 디렉토리 이름은 kebab-case(ν•˜μ΄ν”ˆ ꡬ뢄)λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•΄μš”. κ³΅λ°±μ΄λ‚˜ νŠΉμˆ˜λ¬Έμžκ°€ ν¬ν•¨λ˜λ©΄ μΈμ‹λ˜μ§€ μ•Šμ„ 수 μžˆμ–΄μš”.

디버깅 방법

단계별 좜λ ₯을 μΆ”κ°€ν•˜μ—¬ 디버깅할 수 μžˆμ–΄μš”.

### Step 2: 파일 뢄석

Glob λ„κ΅¬λ‘œ `**/*.tsx` 검색

**디버깅**
κ²€μƒ‰λœ 파일 λͺ©λ‘ 좜λ ₯:

κ²€μƒ‰λœ 파일: [N]개

각 νŒŒμΌμ„ Read λ„κ΅¬λ‘œ 읽기

**디버깅**
읽은 파일 개수 좜λ ₯:

총 [N]개 파일 읽기 μ™„λ£Œ

마무리

Claude Skills의 핡심 κ°œλ…μ„ μ •λ¦¬ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μ•„μš”.

  • SKILL.md: μ›Œν¬ν”Œλ‘œμš°λ₯Ό μ •μ˜ν•˜λŠ” λ§ˆν¬λ‹€μš΄ 파일. λͺ…ν™•ν•œ 단계별 μ§€μ‹œμ‚¬ν•­μ„ μž‘μ„±ν•΄μš”
  • References: ν…œν”Œλ¦Ώ, 체크리슀트 등을 별도 파일둜 κ΄€λ¦¬ν•΄μš”
  • 도ꡬ 톡합: Read, Write, Glob, Grep, Bash, AskUserQuestion 등을 μ‘°ν•©ν•΄μš”
  • 단계별 확인: μ£Όμš” λ‹¨κ³„λ§ˆλ‹€ μ‚¬μš©μž μŠΉμΈμ„ λ°›μ•„ ν’ˆμ§ˆμ„ 보μž₯ν•΄μš”

μ™ΈλΆ€ 링크