클로드 코드 스킬, 왜 필요한지 쉽게 설명해보겠습니다
들어가며
Claude Code를 처음 쓰면 이런 느낌을 받을 때가 있습니다. 분명히 똑똑한데, 어떤 작업은 놀랍게 잘하고 어떤 작업은 다시 처음부터 설명해야 합니다. 같은 에이전트인데 결과의 밀도가 왜 이렇게 다를까 생각하게 됩니다.
제 생각에 그 차이를 크게 만드는 것 중 하나가 바로 스킬(Skills)입니다. 스킬은 마법 옵션이 아닙니다. 에이전트가 반복적으로 잘해야 하는 일을, 더 안정적이고 더 팀답게 수행하도록 만드는 작업 기준 묶음에 가깝습니다.
이 글에서는 클로드 코드의 스킬을 어렵지 않게 설명해보겠습니다. 목수와 요리사 비유로 개념을 먼저 잡고, Claude Code에서 스킬이 실제로 어떤 역할을 하는지, 그리고 직접 만들 때 무엇부터 시작하면 좋은지까지 순서대로 정리해보겠습니다.
왜 스킬이 중요한가
Claude Code 같은 코딩 에이전트는 기본적으로 굉장히 범용적입니다. 코드를 읽고, 수정하고, 문서를 쓰고, 테스트를 제안하는 일까지 꽤 넓게 할 수 있습니다. 문제는 범용적이라는 말이 곧바로 일관적이라는 뜻은 아니라는 점입니다.
프로젝트를 오래 다루다 보면 반복되는 요청이 생깁니다. 예를 들면 이런 것들입니다.
- 우리 프로젝트 컨벤션에 맞춰 API를 만들어달라
- 코드 리뷰를 보안, 회귀, 테스트 관점으로 해달라
- 구현 내용을 청사진 문서 형태로 정리해달라
- 블로그 포스트를 현재 톤과 포맷에 맞게 작성해달라
이런 요청을 매번 긴 프롬프트로 다시 설명할 수도 있습니다. 하지만 어느 시점부터는 그 방식이 비효율적입니다. 같은 설명을 반복하게 되고, 말하는 사람도 지치고, 에이전트의 결과도 조금씩 흔들립니다.
저는 이 지점에서 스킬의 가치가 분명해진다고 봅니다. 스킬은 결국 반복되는 설명을 구조로 바꾸는 방법입니다. 한 번 잘 정리해두면, 이후에는 같은 맥락을 훨씬 짧은 지시로 다시 불러올 수 있습니다.
에이전트와 스킬을 목수와 요리사로 보면 쉽습니다
스킬 개념은 목수와 요리사를 떠올리면 빠르게 이해됩니다.
에이전트는 일을 맡을 수 있는 전문가입니다
목수는 나무를 다루는 사람입니다. 책장 하나를 만들어달라고 하면, 재료를 고르고, 자르고, 조립하고, 마감하는 흐름을 스스로 판단합니다.
요리사도 비슷합니다. 볶음밥을 만들어달라고 하면, 재료 손질부터 불 조절, 간 맞추기까지 전체 과정을 책임지고 움직입니다.
Claude Code도 마찬가지입니다. 코딩이라는 영역에서 일을 맡아 수행하는 전문가에 가깝습니다. 버그 수정, API 구현, 문서 작성, 리팩토링 같은 일을 목표 단위로 받아서 처리합니다.
스킬은 전문가가 필요할 때 꺼내 쓰는 세부 기술입니다
목수에게는 망치질, 톱질, 대패질 같은 세부 기술이 있습니다. 요리사에게는 칼질, 볶기, 양념 배합 같은 기술이 있습니다. 중요한 건, 이 기술들이 항상 한꺼번에 작동하지는 않는다는 점입니다. 상황에 맞는 기술이 적절한 순간에 호출됩니다.
Claude Code의 스킬도 이와 비슷합니다.
- 코드 리뷰 스킬은 무엇을 먼저 의심해야 하는지 알려줍니다.
- API 구현 스킬은 어떤 패키지 구조와 DTO 패턴을 따라야 하는지 알려줍니다.
- 문서 작성 스킬은 어떤 형식과 톤으로 써야 하는지 알려줍니다.
즉, 에이전트가 누가 일을 하느냐에 대한 개념이라면, 스킬은 이 일을 우리 방식으로 어떻게 하느냐에 대한 개념입니다.
Claude Code에서 스킬이 실제로 하는 일
스킬을 단순히 "프롬프트를 저장해두는 기능"으로만 이해하면 조금 아쉽습니다. 실제로는 더 중요한 역할을 합니다.
1. 반복 설명을 줄여줍니다
프로젝트마다 규칙이 다릅니다. 폴더 구조도 다르고, 응답 형식도 다르고, 리뷰 기준도 다릅니다. 스킬은 그런 반복 설명을 한곳에 묶어둡니다. 그래서 에이전트가 매번 처음부터 오리엔테이션을 다시 받지 않아도 됩니다.
2. 판단 기준을 고정해줍니다
좋은 결과는 단순히 "많이 아는 모델"에서만 나오지 않습니다. 무엇을 먼저 보고, 무엇을 위험으로 판단하고, 어떤 순서로 움직일지를 고정해야 결과의 품질이 안정됩니다. 스킬은 바로 그 기준을 문서화합니다.
3. 관련 자료를 함께 묶어줍니다
실무에서는 본문 지침만으로 부족할 때가 많습니다. 예시 템플릿, 참조 문서, 체크리스트, 스크립트가 함께 필요할 수 있습니다. 스킬은 이런 자료와 연결되면서 하나의 작은 실행 패키지처럼 동작합니다.
4. 에이전트가 다뤄야 할 범위를 좁혀줍니다
거대한 코드베이스를 아무 조건 없이 바라보게 하면, 에이전트는 쉽게 흔들립니다. 반대로 "이 작업은 이런 기준으로, 이 문서와 이 패턴을 참고해서 처리하라"는 경계가 생기면 훨씬 안정적으로 움직입니다. 저는 이 점이 스킬의 가장 큰 장점 중 하나라고 생각합니다.
왜 그냥 긴 프롬프트로 버티면 안 될까
처음에는 긴 프롬프트로도 충분해 보입니다. 실제로 초기에는 그 방식이 가장 빠르기도 합니다. 하지만 프로젝트가 커질수록 문제가 생깁니다.
첫째, 같은 설명을 계속 복붙하게 됩니다.
둘째, 조금만 빠뜨려도 결과가 흔들립니다.
셋째, 팀이나 미래의 나에게 지식이 남지 않습니다.
스킬은 여기서 차이를 만듭니다. 한 번 잘 만든 스킬은 일회성 요청이 아니라 재사용 가능한 작업 방식으로 남습니다. 즉, 잘 만든 프롬프트가 한 번의 좋은 결과를 만든다면, 잘 만든 스킬은 좋은 결과가 반복될 확률을 높여줍니다.
스킬은 보통 이런 식으로 로드됩니다
스킬을 처음 들으면 "그러면 에이전트가 모든 스킬을 항상 다 읽고 있는 건가?"라는 궁금증이 생깁니다. 보통은 그렇게 동작하지 않습니다. 필요한 것만 단계적으로 불러오는 방식에 가깝습니다.
| 단계 | 언제 읽는가 | 무엇을 읽는가 |
|---|---|---|
| 1 | 평소 | 스킬 이름, 설명 |
| 2 | 관련 작업이 들어왔을 때 | SKILL.md 본문 |
| 3 | 본문 안에서 필요할 때 | 참조 문서, 템플릿, 스크립트 |
이 구조가 중요한 이유는 단순합니다. 스킬이 많아져도 무조건 무거워지지 않기 때문입니다. 이름과 설명만 보고 어떤 스킬이 필요한지 먼저 판단하고, 실제 본문과 참조 자료는 정말 필요할 때만 읽습니다.
즉, 스킬은 많아질수록 혼란스러워지는 기능이 아니라, 잘 나누어둘수록 오히려 더 다루기 쉬워지는 기능에 가깝습니다.
어떤 작업부터 스킬로 만드는 게 좋을까
모든 작업을 스킬로 만들 필요는 없습니다. 오히려 너무 많은 것을 억지로 스킬화하면 관리가 더 어려워집니다. 저는 아래 조건에 맞는 작업부터 시작하는 게 좋다고 생각합니다.
- 같은 요청을 세 번 이상 반복해서 하고 있다
- 결과물의 형식이나 품질 기준이 비교적 명확하다
- 프로젝트 고유의 규칙을 자주 설명해야 한다
- 단계가 여러 개라서 순서를 자주 놓친다
- 실수했을 때 비용이 꽤 크다
예를 들면 이런 작업들이 좋은 후보입니다.
- 코드 리뷰
- API 엔드포인트 구현
- 아키텍처 청사진 문서 작성
- 프론트엔드 handover 문서 작성
- 블로그 포스트 작성 및 번역
반대로, 정말 일회성인 요청이나 기준이 아직 자주 바뀌는 작업은 스킬로 만들기 이릅니다. 스킬은 아이디어 메모보다 반복되는 판단의 압축본에 더 가깝습니다.
직접 만들어보면 감이 빨리 옵니다
스킬의 저장 위치나 호출 규칙은 사용하는 환경에 따라 조금씩 다를 수 있습니다. 다만 구조는 대체로 비슷합니다. 핵심은 SKILL.md를 중심으로 필요한 참조 자료를 함께 두는 것입니다.
예를 들면 이런 형태입니다.
my-skill/
SKILL.md
references/
checklist.md
templates/
output-template.md
그리고 SKILL.md에는 보통 이런 내용이 들어갑니다.
---
name: code-review
description: 보안, 회귀, 테스트 관점으로 코드 리뷰를 수행합니다.
---
# Code Review Skill
## 우선 확인할 것
- 입력 검증 누락
- 권한 체크 누락
- 회귀 가능성이 큰 변경
- 테스트 부재
## 리뷰 방식
- 문제를 먼저 적는다
- 왜 문제인지 설명한다
- 가능한 수정 방향을 함께 제안한다
중요한 건 거창하게 시작하지 않는 것입니다. 처음부터 거대한 프레임워크를 만들려고 하면 오래 못 갑니다. 가장 반복되는 요청 하나를 골라서, "이 작업은 어떤 순서와 기준으로 처리해야 하나"만 먼저 정리해도 충분합니다.
다만 실제 작업에서는 처음부터 빈 SKILL.md를 손으로 채우는 방식이 생각보다 비효율적일 때가 많습니다. 좋은 스킬은 이름 하나 정한다고 바로 완성되지 않습니다. 범위를 어떻게 좁힐지, 출력 형식을 어디까지 고정할지, 어떤 참조 문서를 연결할지, 어떤 예시를 넣어야 할지까지 꽤 섬세한 판단이 들어갑니다.
그래서 저는 가능하면 이미 preload되어 있는 스킬 생성기를 먼저 사용하는 편을 권합니다. 스킬 생성 스킬은 초안의 구조를 먼저 잡아주고, 빠뜨리기 쉬운 항목을 체크해주며, 처음부터 너무 넓거나 모호한 스킬이 만들어지는 것을 줄여줍니다. 직접 쓰는 방법을 알아두는 것은 필요하지만, 실전에서는 잘 만든 생성기를 발판으로 삼는 편이 훨씬 빠르고 안정적입니다.
좋은 스킬과 아쉬운 스킬의 차이
좋은 스킬은 읽는 순간 무엇을 하려는지 분명합니다. 반대로 아쉬운 스킬은 이름은 거창한데 실제로는 범위가 너무 넓고, 결과물 기준도 모호합니다.
좋은 스킬은 보통 이런 특징을 가집니다.
- 맡는 작업 범위가 좁고 명확합니다.
- 출력 형식이나 완료 조건이 분명합니다.
- 꼭 필요한 참조 자료만 연결합니다.
- 예시가 실제 작업과 닮아 있습니다.
반대로 이런 경우는 금방 약해집니다.
- 하나의 스킬이 너무 많은 역할을 하려 할 때
- "잘 해줘", "전문적으로 해줘" 같은 추상적 지시만 많을 때
- 참조 문서가 너무 많아 어디서부터 읽어야 할지 모를 때
- 프로젝트가 바뀌었는데 스킬은 예전 규칙에 머물러 있을 때
결국 스킬도 유지보수 대상입니다. 한 번 만들고 끝나는 것이 아니라, 실제 작업을 거치며 계속 다듬어야 합니다.
마무리
저는 스킬을 "AI를 위한 추가 기능"이라기보다, 에이전트에게 일을 잘 시키기 위해 사람이 정리해둔 작업 기준이라고 보는 편이 더 정확하다고 생각합니다.
Claude Code가 기본적으로 똑똑한 것은 맞습니다. 하지만 똑똑한 에이전트가 곧바로 우리 프로젝트를 잘 이해하는 것은 아닙니다. 그 사이를 메워주는 것이 스킬입니다. 반복되는 요청, 고정된 품질 기준, 팀의 말투와 출력 형식을 스킬로 묶어두면, 에이전트는 훨씬 덜 흔들리고 훨씬 더 팀다운 결과를 냅니다.
만약 지금 Claude Code를 쓰면서 "매번 설명은 길어지는데 결과는 들쭉날쭉하다"는 느낌을 받고 있다면, 그때가 스킬을 만들기 좋은 시점입니다. 다만 처음부터 혼자 좋은 스킬을 손으로 설계하려고 하기보다는, 이미 preload된 스킬 생성 스킬을 먼저 호출해보시는 것을 권합니다. 생성기가 초안 구조와 체크 포인트를 먼저 잡아주고, 사람은 그 위에서 프로젝트 규칙과 팀의 말투를 덧씌우는 편이 훨씬 효율적이기 때문입니다. 생각보다 거기서부터 작업 방식 전체가 달라지기 시작합니다.