DaleSchool

나만의 슬래시 명령어

중급15분

학습 목표

  • 커스텀 슬래시 명령어를 만들고 사용할 수 있다
  • 프롬프트 파일의 구조와 문법을 이해한다
  • 팀 공유용 명령어와 개인용 명령어의 차이를 안다

동작하는 코드

프로젝트에 커스텀 명령어를 만들어봅시다. .claude/commands/ 디렉토리에 마크다운 파일을 생성합니다:

> .claude/commands/review.md 파일을 만들어줘. 내용은:
>
> 현재 git diff의 변경 사항을 코드 리뷰해주세요.
> 다음 관점에서 확인해주세요:
> 1. 버그 가능성
> 2. 보안 취약점
> 3. 성능 이슈
> 4. 코딩 컨벤션 위반
>
> 각 항목에 대해 문제가 없으면 "통과", 문제가 있으면 구체적으로 설명해주세요.

이제 Claude Code 세션에서 이렇게 사용합니다:

> /project:review

커스텀 명령어가 실행되어 코드 리뷰를 자동으로 수행합니다.

직접 수정하기

더 실용적인 명령어를 만들어보세요:

테스트 생성 명령어.claude/commands/test.md:

$ARGUMENTS 파일의 모든 public 함수에 대한 유닛 테스트를 작성해주세요.

요구사항:

- 테스트 프레임워크: 프로젝트에서 사용 중인 것
- 정상 케이스, 에러 케이스, 엣지 케이스 포함
- 각 테스트에 명확한 설명 추가
- 파일명: 원본 파일명.test.{확장자}

사용법:

> /project:test src/utils/validator.ts

$ARGUMENTSsrc/utils/validator.ts로 치환됩니다.

"왜?" — 반복 작업의 패턴화

개발하다 보면 같은 유형의 요청을 반복하게 됩니다. "코드 리뷰해줘", "테스트 만들어줘", "타입을 추가해줘" 같은 것들이요. 매번 상세한 프롬프트를 입력하는 대신, 한 번 잘 만든 명령어를 재사용하는 게 효율적입니다.

명령어 저장 위치

| 위치 | 사용법 | 용도 | | --------------------- | ----------------- | ---------------------------------- | | .claude/commands/ | /project:명령어 | 프로젝트 공유 (Git에 포함) | | ~/.claude/commands/ | /user:명령어 | 개인 전용 (모든 프로젝트에서 사용) |

$ARGUMENTS 변수

명령어 파일 안에 $ARGUMENTS를 넣으면 슬래시 명령어 뒤에 오는 텍스트가 대입됩니다:

/project:test src/utils/validator.ts
                ^^^^^^^^^^^^^^^^^^^^^^^^
                이 부분이 $ARGUMENTS로 들어감

좋은 커스텀 명령어의 조건

  1. 구체적인 지시 — "잘 해줘" 대신 체크리스트 형태로
  2. 재사용 가능$ARGUMENTS로 대상을 동적으로 지정
  3. 결과 형식 지정 — "표 형태로 정리해줘", "마크다운으로 출력해줘"

심화 학습

팀 전체가 쓸 수 있는 명령어 모음 예시

실무에서 유용한 명령어들:

  • /project:review — 코드 리뷰
  • /project:test — 테스트 생성
  • /project:docs — 함수/모듈 문서 생성
  • /project:migrate — DB 마이그레이션 생성
  • /project:changelog — 변경 로그 작성

이 파일들을 .claude/commands/에 두고 Git에 커밋하면 팀 전체가 같은 명령어를 사용할 수 있습니다.

  1. .claude/commands/docs.md를 만들어서 $ARGUMENTS 파일의 JSDoc/TSDoc을 생성하는 명령어를 작성해보세요.
  2. ~/.claude/commands/explain.md를 만들어서 코드를 한국어로 설명하는 개인 명령어를 작성해보세요.
  3. /project:docs src/index.ts로 실행해보고 결과를 확인하세요.

Q1. 팀 전체가 공유하는 커스텀 명령어의 저장 위치는?

  • A) ~/.claude/commands/
  • B) .claude/commands/
  • C) /etc/claude/commands/
  • D) node_modules/.claude/