8장. 반복을 버튼으로 — Skills 설계, Hooks 자동화, 평가 기준
이 챕터를 읽으면 자주 쓰는 프롬프트를 슬래시 명령어로 만들고, Hooks로 실수를 자동으로 막고, Skill/Plugin/MCP의 차이를 구분해서 필요한 도구를 직접 고를 수 있어요.
박선생님의 고민
금요일 오후, 박선생님은 한 달간의 Claude Code 대화 기록을 훑어보다가 멈칫했어요.
"퀴즈 5문항 만들어줘. 선택지 4개, 해설 포함, 4학년 수준으로..."
이 문장을 30번 넘게 입력했어요. 매번 같은 형식인데, 매번 처음부터 타이핑했어요. 월요일엔 과학 퀴즈, 수요일엔 국어 퀴즈, 금요일엔 수학 퀴즈. 내용만 달라졌을 뿐 나머지는 전부 복사-붙여넣기였어요.
"이 긴 프롬프트를 매번 입력해야 해? 단축키 같은 거 없나?"
박선생님은 지난 대화에서 프롬프트를 찾아 복사하고, 단원 내용만 바꿔 붙여넣는 일을 반복하고 있었어요. 복사하다 빠뜨린 조건 때문에 결과물이 이상하게 나온 적도 있었어요.
반복은 실수를 불러요. 매번 같은 조건을 타이핑하면, 언젠가 하나를 빠뜨려요.
김선생님 한마디
"그 30번의 반복을 버튼 하나로 줄일 수 있어요.
/quiz라고 치면 끝이에요. 자판기에서 버튼 하나 누르면 커피가 나오잖아요. Skills도 같은 원리예요. 긴 프롬프트를 파일 하나에 저장해두면, 슬래시 한 번으로 실행돼요. 그리고 Hooks라는 자동 안전장치를 걸어두면, 실수가 생기기 전에 환경이 알아서 막아줘요."
이게 왜 되나요?
이 챕터의 핵심 개념은 세 가지예요.
- Skills — 반복 프롬프트를 슬래시 명령어로 만드는 기능
- Hooks — 특정 상황에서 자동으로 작동하는 안전장치
- Skill/Plugin/MCP 삼분법 — 세 가지 도구의 역할 구분
하나씩 풀어보겠어요.
8-1. Skills 기초: /quiz Skill 만들기
Skills는 자판기 버튼이에요. 자판기에서 "캔커피" 버튼을 누르면 커피가 나오듯, /quiz를 입력하면 퀴즈가 나와요. 기술적으로 말하면, Skills는 자주 쓰는 프롬프트를 마크다운 파일로 저장해두고 슬래시 명령어로 실행하는 기능이에요.
원리는 단순해요. .claude/commands/ 폴더에 마크다운 파일을 하나 만들면, 그 파일 이름이 곧 명령어가 돼요.
| 파일 이름 | 실행 명령어 |
|---|---|
quiz.md | /quiz |
lesson-plan.md | /lesson-plan |
notice.md | /notice |
파일 안에는 Claude Code에게 시킬 작업 내용을 적어요. 여기서 핵심은 $ARGUMENTS라는 특별한 자리 표시예요.
레시피를 떠올려보세요. 카레 레시피에는 "재료를 볶는다 - 물을 붓는다 - 카레 가루를 넣는다"라는 순서가 정해져 있지만, 재료는 매번 달라요. 오늘은 닭고기, 내일은 소고기. $ARGUMENTS가 바로 이 "재료 자리"이에요.
/quiz 물의 상태 변화라고 입력하면, "물의 상태 변화"가 $ARGUMENTS 자리에 들어가요.
quiz.md 파일 내용 예시:
$ARGUMENTS에 대한 퀴즈를 만들어주세요.
- 문항 수: 10개
- 형식: 4지선다
- 난이도: 중
- 해설: 각 문항에 포함
- 출력 파일: outputs/quiz-날짜.md
이 파일을 .claude/commands/ 폴더에 저장해두면, 이후로는 이렇게만 입력하면 돼요:
/quiz 윤동주의 서시
10문항짜리 4지선다 퀴즈가 자동으로 만들어져요. 30번 반복하던 긴 프롬프트가 한 줄로 줄어든 거예요.
Skills가 없을 때:
매번 타이핑:
"퀴즈 10문항 만들어줘. 4지선다, 난이도 중, 해설 포함,
4학년 수준으로. 출력은 마크다운 파일로. 주제는: [내용]"
Skills가 있을 때:
/quiz 광합성의 정의와 과정
이게 전부예요.
8-2. Skill 설계 템플릿과 평가 기준
Skills에 익숙해지면 폴더 구조로 확장할 수 있어요. 처음에는 마크다운 파일 한 장이면 충분하지만, 자주 쓰는 Skill일수록 참고 자료와 예시를 함께 두면 결과물 품질이 올라가요.
서랍장을 떠올려보세요. 서랍 하나에 모든 서류를 넣으면 찾기 어려워요. 설명서, 참고 자료, 좋은 예시, 검증 도구를 칸별로 나누면 필요할 때 바로 꺼낼 수 있어요. Skill 폴더도 같은 원리예요.
고급 Skill 폴더 구조:
.claude/commands/lesson-plan/
├── SKILL.md # 주 명령 파일 (작업 순서와 규칙)
├── references/ # 참고 자료 (교육과정 성취기준 등)
├── examples/ # 좋은 출력 예시
└── scripts/ # 검증 스크립트 (선택)
각 폴더의 역할을 정리하면 이래요:
- SKILL.md: "무엇을, 어떤 순서로 할지" 적는 곳
- references/: 교육과정 성취기준, 학교 양식 등 고정 배경 자료
- examples/: "이런 결과물이 잘 만든 것이야"라는 기준 예시
- scripts/: 날짜 검증, 형식 확인 등 자동 검사 도구 (나중에 필요할 때 추가)
처음부터 이 구조를 다 갖출 필요는 없어요. SKILL.md 한 장으로 시작해서, 필요할 때 하나씩 추가하면 돼요.
gotchas 섹션이 중요해요. gotchas는 "이 Skill이 자주 실수하는 지점"을 미리 적어두는 섹션이에요. 시험 출제 전에 "이 문제는 학생들이 자주 틀리는 유형이야"라고 메모하는 것과 같아요. AI도 마찬가지예요. 실패 사례를 미리 알려주면 같은 실수를 피해요.
예시:
# Gotchas
- 6학년 이상 과학에서는 실험 절차를 누락할 수 있다.
반드시 실험 안전 주의사항을 포함하도록 지시할 것.
- 수학 서술형 문제에서 풀이 과정 없이 답만 제시하는
경우가 있다. "풀이 과정 필수"를 명시할 것.
- 저학년 국어에서 맞춤법 오류가 포함된 선택지를 만드는
경우가 있다. 선택지 맞춤법 검토를 요청할 것.
이렇게 적어두면 Claude Code가 해당 실수를 의식하고 더 주의하게 돼요.
Skill 테스트 체크리스트 4가지:
Skill은 만들고 끝이 아니에요. 수업 자료를 만들면 동료에게 검토를 부탁하듯, Skill도 네 가지 점검을 거치면 품질이 확 올라가요.
- 트리거 테스트: 다른 표현으로도 작동하는가?
/quiz뿐 아니라 "퀴즈 만들어줘"라고 해도 이 Skill이 호출되는가? - 부정 테스트: 관련 없는 요청에는 작동하지 않는가? "수업안 만들어줘"라고 했을 때 퀴즈 Skill이 엉뚱하게 발동하지 않는가?
- 형식 테스트: 출력이 정해진 형식을 따르는가? 4지선다, 해설 포함, 마크다운 파일 저장이 모두 지켜지는가?
- 함정 테스트: 불확실한 내용을 만나면 추측하지 않고 "확인 필요"로 표시하는가?
네 가지 전부 통과할 필요 없이, 하나씩 점검하면서 Skill을 다듬어가면 돼요.
어떤 Skill부터 써야 하는가?
교사에게 우선 추천하는 Skill 세 가지예요:
- brand-guidelines (학교 문서 톤 통일): 가정통신문, 공문, 안내문의 어조와 형식을 학교 기준에 맞추는 Skill
- docx (한글 문서 변환): 마크다운 결과물을 워드 문서로 바꿔주는 Skill
- pptx (발표 자료 생성): 수업 내용을 슬라이드로 정리하는 Skill
Skill을 고를 때 가장 중요한 기준은 description 필드예요. description은 "이 Skill이 소개글"이 아니라 "이 Skill이 언제 호출되어야 하는가"를 기준으로 작성되어야 해요. 좋은 description은 이래요:
description: 가정통신문, 안내문, 학부모 공지를 작성할 때 사용한다.
나쁜 description은 이래요:
description: 학교 문서를 잘 만들어주는 유용한 도구입니다.
전자는 "언제 쓸지"가 명확해요. 후자는 모호해서 Claude Code가 언제 이 Skill을 불러야 할지 판단하기 어려워요.
8-2-1. 나만의 Skill 만들기 — 재료 세 가지면 충분해요
Skill을 만드는 데 세 가지만 있으면 돼요: 이름, 설명, 지시문. 이 세 가지만 적으면 나만의 Skill이 완성돼요.
수업 지도안을 떠올려보세요. 지도안에는 "단원명, 학습 목표, 수업 흐름"이 적혀 있어요. 이 세 가지만 있으면 다른 선생님도 그 수업을 진행할 수 있잖아요. Skill도 똑같아요. "이름, 설명, 지시문" 세 가지만 적으면, Claude Code가 그 Skill을 언제, 어떻게 실행할지 알아요. Skill은 Claude Code를 위한 수업 지도안이에요.
앞서 .claude/commands/quiz.md처럼 단순한 마크다운 파일 하나로도 Skill을 만들 수 있었어요. 여기서 한 걸음 더 나아가면, SKILL.md라는 파일에 상단 메타데이터(frontmatter)를 붙여서 더 체계적인 Skill을 만들 수 있어요.
걱정하지 마세요. 어렵지 않아요. 세 줄이면 돼요.
SKILL.md 상단 메타데이터의 핵심 세 가지:
| 필드 | 역할 | 비유 |
|---|---|---|
name | Skill의 이름. 슬래시 명령어로 쓰여요 | 수업 지도안의 "단원명" |
description | 이 Skill을 언제 쓰는지 설명 | 수업 지도안의 "학습 목표" |
model | 어떤 AI 모델을 쓸지 (기본값 그대로 두면 돼요) | 수업 지도안의 "활용 교구" |
name은 명령어가 돼요. name: lesson-plan이라고 적으면 /lesson-plan으로 실행할 수 있어요.
description은 Claude Code가 "이 Skill을 불러야 할까 말까" 판단하는 기준이에요. 앞에서 배운 것처럼, "학교 문서를 잘 만들어주는 도구"보다 "수업안을 작성할 때 사용한다"가 훨씬 좋아요.
model은 처음에는 건드리지 않아도 돼요. 기본값으로 충분해요. 나중에 특정 Skill에 더 똑똑한 모델을 쓰고 싶을 때만 바꾸면 돼요.
실제 SKILL.md 파일은 이렇게 생겼어요:
---
name: lesson-plan
description: 수업안을 작성할 때 사용한다. 단원명과 학습 목표를 입력하면 45분 수업안을 생성한다.
---
# 수업안 생성기
$ARGUMENTS 내용으로 45분 수업안을 만들어주세요.
## 구조
- 도입(5분): 전시학습 확인 + 동기유발
- 전개(30분): 핵심 활동 3단계
- 정리(10분): 요약 + 형성평가
## 규칙
- 활동마다 소요 시간 표시
- 필요한 준비물 목록 포함
- 성취기준 코드 명시
---로 감싼 세 줄이 상단 메타데이터(frontmatter)예요. 그 아래가 지시문이에요. 이게 전부예요.
처음에는 name과 description만 적어도 충분해요. model이나 다른 고급 필드는 나중에 필요할 때 하나씩 추가하면 돼요.
교사 맥락 예시 1: 수업안 Skill
4학년 과학 수업을 준비하는 김선생님이 만든 Skill이에요.
파일 위치: .claude/commands/lesson-plan/SKILL.md
---
name: lesson-plan
description: 수업안을 작성할 때 사용한다. "수업안 만들어줘", "수업 계획 세워줘"라고 요청하면 이 Skill을 실행한다.
---
# 수업안 생성기
$ARGUMENTS 단원에 대한 45분 수업안을 만들어주세요.
## 수업 구조
1. **도입 (5분)**
- 전시학습 확인: 지난 시간에 배운 내용 간단 복습
- 동기유발: 학생 흥미를 끌 질문이나 영상 제안
2. **전개 (30분)**
- 활동 1: 핵심 개념 설명 (10분)
- 활동 2: 모둠 탐구 활동 (10분)
- 활동 3: 발표 및 토의 (10분)
3. **정리 (10분)**
- 학습 내용 요약 (3문장)
- 형성평가 문항 3개 (O/X 또는 단답)
- 다음 시간 예고
## 규칙
- 모든 활동에 소요 시간 표시
- 준비물 목록을 맨 위에 표시
- 교육과정 성취기준 코드가 있다면 명시
- 한국어로 작성
## 출력 파일
outputs/lesson-plan-주제명.md
사용법:
/lesson-plan 식물의 한살이
이 한 줄이면 45분짜리 수업안이 만들어져요. 단원명만 바꾸면 어떤 과목이든 같은 형식으로 수업안을 받을 수 있어요.
교사 맥락 예시 2: 채점 기준 Skill
서술형 평가를 자주 내는 이선생님이 만든 Skill이에요. 서술형 답안의 채점 기준표(루브릭)를 자동으로 만들어줘요.
파일 위치: .claude/commands/rubric/SKILL.md
---
name: rubric
description: 서술형 평가 채점 기준표를 만들 때 사용한다. "채점 기준 만들어줘", "루브릭 만들어줘"라고 요청하면 이 Skill을 실행한다.
---
# 서술형 채점 기준표 생성기
$ARGUMENTS 문항에 대한 채점 기준표를 만들어주세요.
## 채점 기준 구조
| 등급 | 점수 | 기준 |
|------|------|------|
| 상 | 5점 | 핵심 개념을 정확히 서술하고, 예시를 들어 설명함 |
| 중 | 3점 | 핵심 개념은 서술했으나, 예시가 부족하거나 부정확함 |
| 하 | 1점 | 핵심 개념이 누락되거나 오류가 있음 |
## 규칙
- 등급은 상/중/하 3단계
- 각 등급의 구분 기준을 구체적으로 서술
- 모범 답안 1개 포함
- 자주 나오는 오답 유형 2~3개 제시
- 한국어로 작성
## 출력 파일
outputs/rubric-문항명.md
사용법:
/rubric 광합성의 과정을 순서대로 서술하시오
채점 기준표가 자동으로 만들어져요. 서술형 평가를 출제할 때마다 기준 만드느라 고민하던 시간을 줄일 수 있어요.
Skill 테스트 체크리스트
Skill을 만들었으면 네 가지만 확인해보세요. 전부 한 번에 통과할 필요 없어요. 하나씩 점검하면서 다듬으면 돼요.
| 점검 항목 | 확인 질문 | 통과 기준 |
|---|---|---|
| 트리거 | 맞는 상황에서 실행되는가? | /lesson-plan 광합성이라고 치면 수업안이 나온다 |
| 형식 | 결과물이 원하는 형식인가? | 도입-전개-정리 구조, 시간 배분이 포함되어 있다 |
| 한국어 | 출력이 한국어인가? | 영어 섞임 없이 깔끔한 한국어로 나온다 |
| 안전 | 개인정보가 포함되지 않는가? | 학생 실명, 연락처 등이 결과물에 없다 |
첫 번째 확인부터 시작하세요. /lesson-plan을 입력했을 때 수업안이 나오면, 일단 성공이에요. 나머지는 쓰면서 다듬으면 돼요.
처음이라 걱정된다면
처음에는 상단 메타데이터 없이 지시문만 있어도 충분해요. 앞서 배운 .claude/commands/quiz.md처럼, 마크다운 파일에 원하는 작업 내용만 적으면 그것이 바로 Skill이에요.
# 퀴즈 만들기
$ARGUMENTS에 대한 퀴즈를 만들어주세요.
- 문항 수: 10개
- 형식: 4지선다
- 해설 포함
이것만으로도 /quiz가 작동해요. name, description 같은 상단 메타데이터는 Skill이 여러 개 쌓이고 나서 추가해도 늦지 않아요. "폴더 구조를 다 갖춰야 Skill이다"라는 부담은 버리세요. 마크다운 파일 한 장이면 이미 Skill이에요.
한 장짜리 Skill로 시작해서, 쓰다 보면 "참고 자료가 있으면 좋겠다" 싶을 때 references/ 폴더를, "좋은 예시를 보여주고 싶다" 싶을 때 examples/ 폴더를 하나씩 추가하면 돼요. 서랍을 한 칸씩 늘려가는 거예요.
8-3. Hooks: 자동 개입 규칙
Hooks는 이 챕터에서 가장 중요한 새 개념이에요. 걱정하지 마세요. 원리는 간단해요.
학교 건물의 비상구 자동문을 떠올려보세요. 평소에는 잠겨 있지만, 화재 감지기가 연기를 감지하면 자동으로 열려요. 사람이 일일이 문을 열 필요가 없어요. Hooks도 같은 원리예요. 특정 상황이 되면 자동으로 작동하는 규칙이에요.
Skills가 "내가 부를 때 실행"되는 버튼이라면, Hooks는 "조건이 맞으면 자동으로 실행"되는 안전장치예요.
Hooks의 4대 기능:
| 기능 | 하는 일 | 교사 예시 |
|---|---|---|
| 차단(Block) | 위험한 동작 방지 | 학생 실명이 포함된 파일을 수정하려 할 때 자동 차단 |
| 후처리(Post-process) | 파일 저장 후 자동 검사 | 가정통신문 저장 시 날짜/요일 자동 검증 |
| 알림(Signal) | 작업 완료 시 알림 | 30명 피드백 생성 완료 시 소리 알림 |
| 필터(Filter) | 불필요한 출력 축약 | 긴 오류 메시지를 핵심만 요약해서 보여주기 |
하나씩 예를 들어보겠어요.
차단: 학생 개인정보가 담긴 학생명부.xlsx 파일을 Claude Code가 수정하려 할 때, "이 파일은 수정할 수 없어요"라고 자동으로 막아요. 선생님이 매번 "그 파일은 건드리지 마"라고 말할 필요가 없어요.
후처리: 가정통신문을 작성해서 저장하면, 자동으로 날짜와 요일이 맞는지 검증해요. "3월 31일 (월요일)"이라고 적었는데 실제로는 화요일이면 경고를 띄워줘요.
알림: 학생 30명분의 개별 피드백 생성이 끝나면 자동으로 알림 소리가 나요. 다른 일을 하면서 기다려도 돼요.
필터: Claude Code가 긴 오류 메시지를 출력할 때, 핵심 내용만 추려서 보여줘요. 기술 용어가 가득한 10줄짜리 오류 대신 "파일을 찾을 수 없어요"라는 한 줄 요약을 보여주는 거예요.
settings.json에 Hook 등록하는 법:
Hook을 등록하려면 settings.json 파일에 규칙을 추가해요. 아래 예시를 그대로 복사해서 붙여넣으면 돼요.
{
"hooks": {
"afterFileEdit": [
{
"command": "echo '파일이 수정되었습니다'",
"description": "파일 수정 알림"
}
]
}
}
이 Hook은 파일이 수정될 때마다 "파일이 수정되었어요"라는 메시지를 보여줘요. 가장 간단한 Hook이지만, 원리를 이해하기에 충분해요.
Hook에서 가장 중요한 시점은 다음 네 가지예요:
beforeCommand: 명령 실행 전에 개입 (차단용)afterCommand: 명령 실행 후에 개입 (후처리용)afterFileEdit: 파일 수정 후에 개입 (검증용)notification: 작업 완료 시 알림
핵심 원칙이 있어요. "AI에게 '기억해'라고 말하지 마세요. 환경에 심어두세요."
Claude Code에게 "학생 명부는 절대 수정하지 마"라고 매번 말하는 것은 사람의 기억력에 의존하는 것과 같아요. 언젠가 까먹어요. Hook으로 등록해두면 환경이 자동으로 막아요. 사람의 기억이 아니라 시스템의 규칙에 의존하는 거예요.
이것은 학교에서 복도에 "뛰지 마세요" 표지판을 붙이는 것과, 복도 바닥에 미끄럼 방지 매트를 까는 것의 차이예요. 표지판은 읽어야 작동해요. 매트는 밟기만 해도 작동해요. Hook은 매트예요.
8-4. Skill/Plugin/MCP 삼분법
Skills, Plugin, MCP. 이름이 세 개라 복잡해 보이지만, 부엌에 비유하면 금방 정리돼요.
- Skill = 레시피: 반복 절차를 적어둔 거예요. 마크다운 파일 하나예요. "카레 만드는 순서"를 종이에 적어둔 것과 같아요.
- Plugin = 요리사: 레시피 + 재료 + 도구 + 규칙을 묶은 역할 패키지예요. Skill 하나가 아니라, Skill + Agent + Hook + MCP를 한 번에 배포할 수 있어요. "카레 전문 요리사를 고용하면 레시피, 재료 구매, 조리, 맛 검증까지 한 번에 해결되는 것"과 같아요.
- MCP = 주방 도구: 외부 시스템과 연결하는 규격이에요. 구글드라이브, Gmail, 노션 같은 외부 서비스에 Claude Code가 접근할 수 있게 해주는 통로예요. "주방에 오븐이 있어야 빵을 구울 수 있듯, MCP가 있어야 외부 서비스를 쓸 수 있다"고 이해하면 돼요.
한 문장으로 정리하면: Skill은 하나, Plugin은 뭉치, MCP는 도구예요.
| 구분 | 비유 | 크기 | 예시 |
|---|---|---|---|
| Skill | 레시피 한 장 | 마크다운 파일 1개 | /quiz, /lesson-plan |
| Plugin | 요리사 한 명 | Skill + Agent + Hook + MCP 묶음 | 코드 리뷰 플러그인 |
| MCP | 주방 도구 한 개 | 외부 연결 규격 1개 | 구글드라이브 MCP |
Connector와 MCP의 차이도 간단해요. Connector는 "연결 버튼"이고, MCP는 "통신 규격"이에요. 리모컨의 버튼(Connector)을 누르면, 적외선 신호(MCP)가 TV로 전달되는 것과 같아요. 선생님이 직접 다룰 일은 거의 없지만, 이름이 나왔을 때 당황하지 않도록 알아두면 좋아요.
MCP가 있어도 Skill이 필요한 이유가 있어요. 많은 분이 "구글드라이브를 연결했으니 알아서 잘 쓰겠지"라고 기대해요. 하지만 연결과 사용법은 달라요.
MCP는 "도구를 쥐어주는 것"이에요. Skill은 "도구로 무엇을, 어떤 순서로 하라는 매뉴얼"이에요.
구글드라이브 MCP가 있어도, 어떤 폴더에 어떤 형식으로 파일을 저장할지는 별도로 알려줘야 해요. 주방에 오븐이 있다고 해서 자동으로 빵이 구워지지 않아요. 레시피가 필요해요.
실습해보기
실습 1: /lesson-plan Skill 만들기
Step 1. Claude Code 채팅창에 이렇게 요청하세요:
.claude/commands/lesson-plan.md 파일을 새로 만들어줘.
파일 내용은 아래와 같아:
Step 2. 파일 내용:
# 수업안 생성기
$ARGUMENTS 내용으로 45분 수업안을 만들어주세요.
구조:
- 도입(5분): 전시학습 확인 + 동기유발
- 전개(30분): 핵심 활동 3단계
- 정리(10분): 요약 + 형성평가
규칙:
- 내 CLAUDE.md 설정을 참고해서 학교급과 학년에 맞출 것
- 활동마다 소요 시간 표시
- 필요한 준비물 목록 포함
결과 파일: outputs/lesson-plan-주제명.md
Step 3. "파일 생성 완료"라는 응답이 오면 성공이에요. 테스트해보세요:
/lesson-plan 식물의 광합성
45분짜리 수업안이 자동으로 만들어져요.
실습 2: /notice Skill 만들기
같은 방법으로 가정통신문용 Skill을 만들어봅시다.
파일: .claude/commands/notice.md
# 가정통신문 생성기
$ARGUMENTS 내용으로 가정통신문을 작성해주세요.
형식:
- 제목: [ ] 안에 주제 표시
- 인사말: 계절에 맞는 인사 1문장
- 본문: 300~400자, 학부모가 읽기 쉬운 문체
- 안내 사항: 번호 매기기
- 회신란: 동의/참가 여부 체크 포함
규칙:
- 교육 용어는 풀어서 설명
- 날짜와 요일이 실제로 맞는지 확인
- 내 CLAUDE.md의 학교 정보 참고
결과 파일: outputs/notice-주제명.md
테스트:
/notice 4월 현장체험학습 안내
가정통신문이 학교 양식에 맞게 자동으로 만들어져요.
실습 3: afterFileEdit Hook 등록
이제 Hook을 하나 등록해봅시다. Claude Code 채팅창에 이렇게 요청하세요:
내 settings.json에 afterFileEdit Hook을 추가해줘.
파일이 수정될 때마다 "파일이 수정되었습니다"라고 알려주는 Hook이야.
Claude Code가 settings.json 파일에 다음 내용을 추가해줘요:
{
"hooks": {
"afterFileEdit": [
{
"command": "echo '파일이 수정되었습니다'",
"description": "파일 수정 알림"
}
]
}
}
이후 Claude Code가 파일을 수정할 때마다 알림이 표시돼요. 작은 Hook이지만, "환경에 규칙을 심는다"는 원리를 직접 경험할 수 있어요.
settings.json 파일은 .claude/ 폴더 안에 있어요. 직접 편집해도 되고, Claude Code에게 부탁해도 돼요. 처음이라면 Claude Code에게 부탁하는 방법이 더 안전해요.
실습 4: 만든 Skill을 동료에게 공유하기
Skill 파일은 마크다운 텍스트 파일이에요. 공유 방법은 세 가지예요:
- 이메일:
.claude/commands/폴더의.md파일을 첨부해서 보내기 - 구글드라이브: 공유 폴더에 올려두기
- USB: 파일을 복사해서 전달하기
받은 선생님은 자기 프로젝트의 .claude/commands/ 폴더에 파일을 넣으면 바로 사용할 수 있어요. 설치 과정이 따로 없어요. 파일을 넣는 것이 곧 설치예요.
오해 바로잡기
"Skill은 프로그래머만 만들 수 있다"
아니에요. Skill은 마크다운 파일 하나예요. 프로그래밍 언어가 아니라 한국어로 적어요. 선생님이 수업 지도안을 쓸 수 있다면, Skill도 쓸 수 있어요.
수업 지도안에는 "도입 5분 - 전개 30분 - 정리 10분"처럼 순서와 규칙을 적어요. Skill 파일에도 "문항 수 10개 - 형식 4지선다 - 해설 포함"처럼 순서와 규칙을 적어요. 형식이 같아요. 다만 읽는 사람이 학생 대신 Claude Code일 뿐이에요.
"Hooks 설정이 어려울 것 같다"
settings.json 파일에 정해진 형식으로 적는 것이 전부예요. 위 실습 3에서 본 것처럼, Claude Code에게 "이런 Hook을 추가해줘"라고 말하면 알아서 넣어줘요. 직접 코드를 짤 필요가 없어요.
"MCP까지 알아야 하나?"
지금 당장은 아니에요. Skill만 잘 써도 반복 업무의 대부분이 줄어들어요. MCP는 "이런 것도 가능하다"는 정도만 알아두세요. 나중에 구글드라이브나 노션과 연결하고 싶을 때 다시 찾아보면 돼요.
이번 주 딱 한 가지
가장 자주 쓰는 프롬프트 하나를 Skill로 만들어보세요.
지난 한 달간 Claude Code와 나눈 대화를 훑어보세요. 가장 많이 반복한 프롬프트가 보일 거예요. 그 프롬프트를 .claude/commands/ 폴더에 마크다운 파일로 저장하세요. 파일 만드는 데 3분, 테스트에 2분. 총 5분이면 돼요.
한번 만들어두면 이번 학기 내내 쓸 수 있어요.
이 챕터의 핵심:
- Skills는 자판기 버튼이다 — 자주 쓰는 프롬프트를
.claude/commands/폴더에 마크다운 파일로 저장하면, 슬래시 한 번으로 실행된다.$ARGUMENTS로 매번 다른 내용을 넣을 수 있다. - Hooks는 자동 안전장치다 — 차단, 후처리, 알림, 필터 4가지 기능으로 실수를 환경이 막아준다. "AI에게 기억하라고 하지 말고, 환경에 심어두세요."
- Skill(레시피) - Plugin(요리사) - MCP(주방 도구)의 삼분법을 이해하면, 어떤 도구를 언제 써야 할지 판단할 수 있다. Skill은 하나, Plugin은 뭉치, MCP는 도구다.
참고 출처
- Anthropic, Claude Code 공식 문서: Skills, Hooks 섹션 — https://docs.anthropic.com/en/docs/claude-code (최신 정보는 공식 문서를 참조하세요)
- CHOI, "클로드 코드 및 Cowork 마스터 가이드" Ch.6 (2026)
여기까지 수업 안에서 AI를 활용하는 방법을 다뤘어요. 이제 시선을 교실 밖으로 돌려, 수업 외 학교 업무 전체에 AI를 적용하는 법을 살펴봐요.