DevClaude Code

서브에이전트 vs 슬래시 커맨드 vs 스킬: 헷갈리는 셋의 차이와 선택 기준

2026.04.13

셋이 다 같은 거 아니야?

Claude Code 문서를 처음 읽으면 비슷한 단어가 세 번 등장한다. 서브에이전트(Subagent), 슬래시 커맨드(Slash Command), 스킬(Skill). 셋 다 "AI에게 어떤 일을 시키는 사용자 정의 단위"처럼 보인다.

처음에는 나도 셋을 섞어 썼다. 그러다 셋이 각자 다른 시점에 호출되고, 다른 컨텍스트를 받고, 다른 결과를 만든다는 걸 알게 됐다. 잘못 고르면 작동은 하는데 어딘가 어색하다.

이 글은 셋의 차이를 한 번에 정리한다.

호출 방식부터 다르다

가장 큰 차이는 누가, 언제, 어떻게 호출하는가다.

| 항목 | 슬래시 커맨드 | 서브에이전트 | 스킬 | |------|---------------|--------------|------| | 호출자 | 사용자 | 메인 AI | 메인 AI 또는 사용자 | | 호출 시점 | 사용자가 /foo 입력 | AI가 Task 도구로 부름 | 작업 시작 전, 자동 매칭 | | 컨텍스트 | 새 메시지 | 새 컨텍스트 (격리) | 메인 컨텍스트에 주입 | | 출력 | 사용자에게 표시 | 메인 AI에게 반환 | AI 행동 가이드 |

이 표 한 줄씩이 셋을 구분하는 본질이다.

슬래시 커맨드: 사용자가 누르는 단축키

슬래시 커맨드는 사용자가 직접 입력해서 시작하는 매크로다. ~/.claude/commands/ 또는 프로젝트 .claude/commands/에 마크다운 파일을 두면 자동으로 등록된다.

---
description: 현재 브랜치의 변경사항을 한국어로 요약
---
 
git diff main...HEAD을 분석해서 다음 형식으로 요약해줘:
- 추가된 기능: ...
- 수정된 파일: ...
- 잠재적 이슈: ...

이 파일을 summarize-branch.md로 저장하면, Claude Code 입력창에 /summarize-branch를 치는 순간 그 내용이 프롬프트로 들어간다.

본질은 재사용 가능한 프롬프트 템플릿이다. 매번 같은 지시문을 손으로 치는 대신 단축키로 만든다.

언제 쓰나:

  • 자주 반복하는 지시가 있을 때
  • 팀에서 공유할 표준 작업 흐름이 있을 때
  • 인수($ARGUMENTS)를 받아 동적으로 변하는 프롬프트가 필요할 때

서브에이전트: AI가 격리된 인스턴스에 일을 맡긴다

서브에이전트는 메인 AI가 다른 Claude 인스턴스를 띄워서 일을 위임하는 메커니즘이다. Task 도구로 호출된다.

> 코드베이스 전체에서 deprecated된 API 호출을 찾아줘

이 지시를 받은 메인 AI는 직접 검색하지 않고 general-purpose 또는 Explore 서브에이전트를 띄운다. 서브에이전트는 자기만의 컨텍스트에서 grep/find를 돌리고, 결과 요약만 메인 AI에게 돌려준다.

핵심 특징은 컨텍스트 격리다.

  • 서브에이전트의 작업 로그는 메인 컨텍스트를 오염시키지 않는다
  • 메인 AI는 결과 텍스트만 받는다
  • 토큰 사용량이 메인 컨텍스트에서 분리된다

언제 쓰나:

  • 결과는 짧지만 검색/탐색이 많은 작업 (전체 grep, 파일 100개 분석)
  • 병렬로 여러 일을 동시에 처리할 때
  • 메인 컨텍스트를 깨끗하게 유지하고 싶을 때

전문 서브에이전트(code-reviewer, architect, debugger 등)는 OMC 같은 플러그인이 추가한다.

스킬: 작업 전에 자동으로 매칭되는 가이드

스킬이 가장 헷갈리는 개념이다. 스킬은 AI에게 "이런 작업을 할 때는 이렇게 해라"라는 가이드를 자동 매칭해서 주입한다.

~/.claude/skills/<skill-name>/SKILL.md 형식이다.

---
name: writing-tests
description: 새 함수를 만들거나 버그를 고치기 전에 사용. TDD 워크플로우를 강제한다.
---
 
## 워크플로우
1. 실패하는 테스트를 먼저 쓴다
2. 테스트가 실패하는 것을 확인한다
3. 테스트를 통과하는 최소 구현을 작성한다
4. 리팩토링한다

이 파일이 등록되면, AI가 "테스트 추가" 같은 작업을 시작할 때 description을 보고 자동으로 스킬을 활성화한다. 스킬 본문이 메인 AI의 컨텍스트에 주입돼 행동을 지배한다.

슬래시 커맨드와의 차이:

  • 슬래시 커맨드: 사용자가 명시적으로 입력
  • 스킬: AI가 자동으로 매칭하거나 사용자가 Skill 도구로 호출

서브에이전트와의 차이:

  • 서브에이전트: 다른 AI 인스턴스가 작업
  • 스킬: 메인 AI 자신의 행동을 바꾸는 가이드

언제 쓰나:

  • 특정 종류의 작업을 할 때 항상 따라야 하는 규율을 강제할 때
  • AI가 잘못된 방식으로 일하는 패턴을 발견했을 때
  • 팀 공유 워크플로우(브레인스토밍, 디버깅 절차 등)를 정의할 때

헷갈릴 때의 판단 기준

작업을 새로 정의하려는데 셋 중 뭘 고를지 모르겠다면, 이 세 질문 순서로 고른다.

Q1. 사용자가 직접 호출하는가, AI가 자동으로 따라야 하는가

  • 사용자 직접 호출 → 슬래시 커맨드
  • AI가 자동 — 다음 질문으로

Q2. 메인 AI 자신의 행동을 바꾸는가, 다른 AI에게 일을 시키는가

  • 메인 AI 자신 → 스킬
  • 다른 AI에게 위임 → 서브에이전트

이 트리만 따르면 90%는 정확하게 고를 수 있다.

같은 일을 셋으로 다 만들 수도 있다

같은 작업을 셋으로 다 만들 수도 있다. 예를 들어 "코드 리뷰" 작업이라면:

  • 슬래시 커맨드 /review: 사용자가 직접 누르면 현재 브랜치의 diff를 받아 리뷰 프롬프트가 실행된다
  • 서브에이전트 code-reviewer: AI가 PR을 만들기 전에 자동으로 띄워서 격리된 컨텍스트에서 리뷰한다
  • 스킬 code-review-protocol: AI가 코드를 작성한 직후 자동으로 매칭돼, 리뷰 절차(보안, 성능, 가독성 순으로 체크)를 강제한다

셋을 동시에 쓰는 것도 가능하다. 슬래시 커맨드 안에서 서브에이전트를 호출하고, 서브에이전트가 스킬을 따라 일하는 식이다. OMCSuperpowers가 정확히 이런 구조다.

흔한 실수들

실수 1: 모든 워크플로우를 슬래시 커맨드로 만든다

슬래시 커맨드는 사용자가 매번 눌러야 한다는 제약이 있다. AI가 자동으로 따라야 하는 규율은 스킬이 맞다. 슬래시 커맨드만 잔뜩 만들어두면 결국 안 누르게 된다.

실수 2: 작은 작업도 서브에이전트로 위임한다

서브에이전트는 새 컨텍스트를 띄우는 비용이 있다. 파일 한 개 읽는 작업까지 서브에이전트로 보내면 오히려 느려진다. 서브에이전트는 결과 요약은 짧지만 작업량이 많을 때만 가치가 있다.

실수 3: 스킬 description을 대충 쓴다

스킬은 description으로 매칭된다. "Code review skill" 같은 모호한 설명은 AI가 매칭을 못 하거나, 엉뚱한 상황에 매칭한다. "사용자가 PR 생성 직전이거나, 큰 변경 후 자체 검토를 요청했을 때 사용"처럼 트리거 조건을 명확히 적는다.

정리

셋의 차이를 한 줄로 요약하면 이렇다.

  • 슬래시 커맨드: 사용자가 누르는 매크로
  • 서브에이전트: 격리된 다른 AI에게 위임
  • 스킬: 메인 AI 행동을 자동으로 가이드

비슷해 보이지만 호출 시점과 컨텍스트가 다르다. 작업 하나를 새로 정의할 때 "사용자가 누르는가, AI 자신을 바꾸는가, 다른 AI에 맡기는가"만 자문하면 답이 나온다.

처음에는 슬래시 커맨드만 만들어보다가, 같은 패턴이 반복되면 스킬로 승격하고, 작업이 비대해지면 서브에이전트로 분리하는 흐름이 자연스럽다. 셋을 같이 쓰는 게 어색하지 않게 느껴질 때, Claude Code의 진짜 확장이 시작된다.