동작하는 코드
프로젝트에 커스텀 명령어를 만들어봅시다. .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
$ARGUMENTS가 src/utils/validator.ts로 치환됩니다.
"왜?" — 반복 작업의 패턴화
개발하다 보면 같은 유형의 요청을 반복하게 됩니다. "코드 리뷰해줘", "테스트 만들어줘", "타입을 추가해줘" 같은 것들이요. 매번 상세한 프롬프트를 입력하는 대신, 한 번 잘 만든 명령어를 재사용하는 게 효율적입니다.
명령어 저장 위치
| 위치 | 사용법 | 용도 |
| --------------------- | ----------------- | ---------------------------------- |
| .claude/commands/ | /project:명령어 | 프로젝트 공유 (Git에 포함) |
| ~/.claude/commands/ | /user:명령어 | 개인 전용 (모든 프로젝트에서 사용) |
$ARGUMENTS 변수
명령어 파일 안에 $ARGUMENTS를 넣으면 슬래시 명령어 뒤에 오는 텍스트가 대입됩니다:
/project:test src/utils/validator.ts
^^^^^^^^^^^^^^^^^^^^^^^^
이 부분이 $ARGUMENTS로 들어감
좋은 커스텀 명령어의 조건
- 구체적인 지시 — "잘 해줘" 대신 체크리스트 형태로
- 재사용 가능 —
$ARGUMENTS로 대상을 동적으로 지정 - 결과 형식 지정 — "표 형태로 정리해줘", "마크다운으로 출력해줘"
심화 학습
팀 전체가 쓸 수 있는 명령어 모음 예시
실무에서 유용한 명령어들:
/project:review— 코드 리뷰/project:test— 테스트 생성/project:docs— 함수/모듈 문서 생성/project:migrate— DB 마이그레이션 생성/project:changelog— 변경 로그 작성
이 파일들을 .claude/commands/에 두고 Git에 커밋하면 팀 전체가 같은 명령어를 사용할 수 있습니다.
.claude/commands/docs.md를 만들어서$ARGUMENTS파일의 JSDoc/TSDoc을 생성하는 명령어를 작성해보세요.~/.claude/commands/explain.md를 만들어서 코드를 한국어로 설명하는 개인 명령어를 작성해보세요./project:docs src/index.ts로 실행해보고 결과를 확인하세요.
Q1. 팀 전체가 공유하는 커스텀 명령어의 저장 위치는?
- A)
~/.claude/commands/ - B)
.claude/commands/ - C)
/etc/claude/commands/ - D)
node_modules/.claude/