Claude Code의 확장 기능은 크게 두 가지 축으로 정리할 수 있어요.
- Knowledge - Claude가 “알고 있는 것”
- Workers - Claude가 “따로 일하는 것”
그리고 이것들을 묶어서 공유하는 Plugins까지, 총 세 가지 개념을 정리해보았어요.
Knowledge
1. CLAUDE.md
항상 켜져 있는 규칙 파일이에요. 매 세션 시작 시 로드되고, 매 턴마다 컨텍스트를 소비해요.
2. Skills
필요할 때만 불러오는 워크플로우예요. 평소에는 이름과 설명만 참조하다가, 관련 작업이 생기면 그때 전체 내용을 로드해요.
토큰 관점에서 보면 아래처럼 정리할 수 있어요.
- CLAUDE.md에 넣어야 할 내용을 Skills로 빼면 → 토큰 절약
- Skills에 넣어야 할 내용을 CLAUDE.md에 넣으면 → 매 턴마다 낭비
따라서 “매번 필요한 규칙인가, 아니면 가끔 필요한 워크플로우인가”를 기준으로 생각해볼 수 있어요. 컨텍스트 윈도우는 유한하기 때문에, 해당 결정이 중요해요.
-> 컨텍스트 윈도우(Context Window): AI 언어 모델이 한 번에 처리할 수 있는 텍스트의 최대 양을 의미 (시스템 프롬프트, 히스토리, 인풋, 첨부 파일 및 문서를 모두 포함)
3. Commands
/슬래시로 직접 호출하는 워크플로우예요. 마크다운 파일로 만들 수 있어요.
Skills와 Commands는 커맨드로 만들 수 있지만, ‘실행 시점’에서 차이점이 있어요.
- Commands - 내가 호출할 때만 실행
- Skills - Claude가 상황을 판단해서 자동으로도 실행 가능. frontmatter, 자동 트리거, 참조 파일 등 더 많은 기능을 가지고 있어요.
Workers
1. Subagents
독립적으로 일하는 워커예요. 작업을 시키고, 결과를 받으면 끝나요. 서로 소통하지 않는 것이 특징이에요.
2. Agent Teams
Subagents와 달리 서로 소통하는 워커예요. 태스크 리스트를 공유하고 직접 메시지를 주고받아요.
둘의 구분 기준은 ‘의존성’ 이에요. 서로 의존성이 있으면 Team, 없으면 Subagent예요.
Workers를 쓰는 이유?
메인 세션에서 파일 N개를 분석하면 그만큼 컨텍스트 윈도우가 금방 차버려요. Subagent에게 시키면 별도 컨텍스트에서 처리하고 결과만 돌려주기 때문에, 메인 대화를 깔끔하게 유지할 수 있어요.
Workers의 목적은 컨텍스트 보호라고 정리할 수 있어요.
Plugins
Skills와 Agents를 잘 만들어놨다면, Plugin으로 묶어서 다른 프로젝트나 팀에 공유할 수 있어요. 매번 복사, 붙여넣기 할 필요 없이 라이브러리처럼 설치하면 끝나요.
실제로 어떻게 쓰고 있나요?
현재 Plugin 18개, 슬래시 커맨드 10개를 매일 사용하고 있어요.
그중에서 실제로 가장 많이 쓰는 건 Commands예요. /today, /capture, /learned, /park 같은 것들인데, 자동 트리거보다 필요할 때 직접 호출하는 방식이 제 워크플로우에 더 잘 맞아요.
Skills는 주로 Plugin 안에 포함된 것들이 상황에 맞게 알아서 작동하고 있어요. superpowers, figma, hookify 같은 플러그인들이 그런 경우예요.
결국 일상적인 워크플로우는 Commands가 담당하고, Skills는 좀 더 맥락 의존적인 작업을 자동으로 처리하는 역할로 나뉘어 사용하고 있어요.
설계 결정 기준
각 기능을 선택할 때 기준이 되는 핵심 질문은 조금씩 달라요.
| 기능 | 핵심 질문 |
|---|---|
| CLAUDE.md | 매번 필요한 규칙인가? |
| Skills | 특정 상황에서만 필요한 워크플로우인가? |
| Commands | 내가 직접 호출해서 즉시 실행할 작업인가? |
| Subagents | 작업이 서로 독립적인가? |
| Agent Teams | 작업 간 의존성이 있는가? |
| Plugins | 다른 프로젝트나 팀에 공유할 것인가? |
CLAUDE.md와 Skills는 토큰 소비 관점으로 판단할 수 있다고 정리할 수 있어요. (= 매 턴 소모되는 토큰 비용이 정당한가? 정당하다면 CLAUDE.md 로 세팅할 수 있을 거에요.)
- 저는 현재 진행 중인 프로젝트에서 모노레포의 구조 및 디렉터리 규칙, 모델-훅-타입 등의 컨벤션, 특정 작업 때 실행하는 스크립트 규칙 등을 200줄 이하로 유지하며 관리하고 있어요.
- 개인적으로 제일 많이 사용하고 있는 기능은 ‘Commands’에요. 특히 Jira, Figma MCP 서버를 호출해서 사용하는 Commands 들을 업무에서 가장 의미있게 사용하고 있어요.
Subagents는 병렬성과 독립성이 핵심이에요. 토큰이 충분히 남아 있어도, 작업이 독립적이라면 Subagent가 더 나은 선택이에요. Workers를 “컨텍스트 보호”라고 보는 것도 맞지만, 더 정확하게는 “독립적인 작업을 격리해서 병렬 처리하는 것이에요.
- 독립적인 병렬 작업으로는 E2E 실행(시나리오 별로 나눠 동시에 진행), 대규모 파일 분석(파일 N개를 각 Subagnet 에게 나눠서 분석 후 결과 수집), 다국어 번역(언어별로 Subagent를 나눠 병렬 처리) 등을 사례로 들 수 있어요.
- 의존성있는 협업 작업으로는 리팩토링(하나의 에어전트가 인터페이스를 설계하고, 다른 에이전트가 구현하며 서로 결과물을 참조), 풀스택 기능 구현(BE에이전트와 FE에이전트가 API 스펙을 공유하며 작업) 등이 있을 거 같아요.
해당 기준으로 각 기능을 바라보면, Claude Code가 어떻게 작동하는지 훨씬 명확하게 이해할 수 있어요.
참고: Dean Blank, “A Mental Model for Claude Code” (Level Up Coding)