슬래시 명령어
읽는 시간: 6분 | 난이도: 중급
이 섹션에서는 슬래시 명령어를 사용하여 자주 사용하는 작업을 빠르게 실행하는 방법을 알아봅니다.
슬래시 명령어란 무엇인가요?
슬래시 명령어(/command)는 자주 사용하는 프롬프트를 단축키로 만드는 기능입니다. 반복적인 작업을 훨씬 빠르게 수행할 수 있습니다.
예시
# 일반적인 프롬프트
"README 파일을 한국어로 번역해줘"
# 슬래시 명령어 사용
/kr
기본 슬래시 명령어
Claude Code는 몇 가지 내장된 슬래시 명령어를 제공합니다:
| 명령어 | 설명 |
|---|---|
/help |
도움말 표시 |
/commit |
커밋 메시지 생성 |
/read |
파일 내용 확인 |
/edit |
파일 편집 모드 |
/test |
테스트 실행 |
커스텀 슬래시 명령어 만들기
설정 파일 위치
~/.claude/commands.json
기본 형식
{
"commands": {
"명령어": {
"prompt": "실제 프롬프트 내용",
"description": "설명 (선택)"
}
}
}
실용 예시
1. 코드 리뷰
{
"commands": {
"review": {
"prompt": "현재 파일을 리뷰하고 다음을 확인해줘:\n1. 버그 가능성\n2. 성능 문제\n3. 코드 스타일\n4. 개선 제안",
"description": "코드 리뷰 수행"
},
"review:security": {
"prompt": "보안 관점에서 현재 코드를 검토해줘:\n1. SQL 인젝션\n2. XSS 공격\n3. 인증/인가 문제\n4. 민감 정보 노출",
"description": "보안 리뷰"
}
}
}
2. 번역
{
"commands": {
"kr": {
"prompt": "선택한 텍스트를 자연스러운 한국어로 번역해줘. 기술 용어는 원문을 유지해.",
"description": "한국어 번역"
},
"en": {
"prompt": "Translate the selected text to natural English. Keep technical terms in original form.",
"description": "English translation"
}
}
}
3. 테스트
{
"commands": {
"test:unit": {
"prompt": "현재 파일에 대한 단위 테스트를 작성해줘. edge case를 포함하고, given-when-then 패턴을 사용해.",
"description": "단위 테스트 작성"
},
"test:integration": {
"prompt": "통합 테스트를 작성해줘. 실제 API 엔드포인트를 테스트하고, 성공/실패 시나리오를 모두 커버해.",
"description": "통합 테스트 작성"
},
"test:coverage": {
"prompt": "현재 테스트 커버리지를 확인하고, 커버리지가 부족한 부분을 찾아줘.",
"description": "테스트 커버리지 확인"
}
}
}
4. 문서화
{
"commands": {
"doc": {
"prompt": "현재 함수/클래스에 JSDoc/Docstring 주석을 추가해줘.\n포함할 내용:\n- 설명\n- 파라미터 (@param)\n- 반환값 (@returns)\n- 예시 (@example)",
"description": "문서 주석 추가"
},
"readme": {
"prompt": "프로젝트에 대한 README.md를 작성해줘.\n포함할 내용:\n- 프로젝트 설명\n- 설치 방법\n- 사용법\n- 기여 가이드",
"description": "README 작성"
}
}
}
5. 리팩토링
{
"commands": {
"refactor": {
"prompt": "현재 코드를 리팩토링해줘.\n개선할 부분:\n1. 함수 길이 (20줄 이상 분리)\n2. 중복 코드 제거\n3. 명확한 이름 사용\n4. 복잡도 감소",
"description": "코드 리팩토링"
},
"refactor:ts": {
"prompt": "TypeScript 코드를 더 타입 안전하게 만들어줘.\n1. any 타입 제거\n2. 제네릭 활용\n3. 유니언 타입 최적화\n4. 타입 가드 추가",
"description": "TypeScript 리팩토링"
}
}
}
6. Git 워크플로우
{
"commands": {
"commit": {
"prompt": "현재 변경사항을 기반으로 컨벤셔널 커밋 메시지를 작성해줘.\n형식: type(scope): description\n\n타입: feat, fix, docs, refactor, test, chore",
"description": "커밋 메시지 작성"
},
"pr": {
"prompt": "Pull Request 설명을 작성해줘.\n포함할 내용:\n- 변경사항 요약\n- 관련 이슈\n- 테스트 방법\n- 스크린샷 (필요시)",
"description": "PR 설명 작성"
},
"changelog": {
"prompt": "마지막 태그 이후의 커밋을 기반으로 CHANGELOG 항목을 작성해줘.",
"description": "Changelog 작성"
}
}
}
프로젝트별 명령어
프로젝트별로 다른 명령어를 사용할 수 있습니다:
project-a/.claude/commands.json
project-b/.claude/commands.json
예시: 프론트엔드 프로젝트
{
"commands": {
"component": {
"prompt": "React 컴포넌트를 생성해줘.\n구조:\n- 타입 Props 인터페이스\n- 함수 컴포넌트\n- export default\n\n파일명과 컴포넌트명은 일치해야 해.",
"description": "React 컴포넌트 생성"
},
"hook": {
"prompt": "React 커스텀 훅을 생성해줘.\n구조:\n- 'use' 접두사\n- 타입 정의\n- export default",
"description": "커스텀 훅 생성"
},
"style": {
"prompt": "Tailwind CSS 클래스를 사용하여 스타일을 적용해줘.\n조건:\n- 반응형 지원\n- 다크 모드 지원\n- 접근성 고려",
"description": "Tailwind 스타일 적용"
}
}
}
예시: 백엔드 프로젝트
{
"commands": {
"endpoint": {
"prompt": "FastAPI 엔드포인트를 생성해줘.\n구조:\n- 경로 매개변수 타입\n- 요청/응답 모델\n- 상태 코드\n- 에러 처리",
"description": "API 엔드포인트 생성"
},
"model": {
"prompt": "SQLAlchemy 모델을 생성해줘.\n포함:\n- 테이블 이름\n- 컬럼 정의\n- 관계 (foreign key)\n- 메서드",
"description": "DB 모델 생성"
},
"migration": {
"prompt": "Alembic 마이그레이션을 생성해줘.\n1. 변경사항 분석\n2. upgrade() 함수\n3. downgrade() 함수",
"description": "DB 마이그레이션 생성"
}
}
}
동적 인자 사용
슬래시 명령어에 인자를 전달할 수 있습니다:
{
"commands": {
"explain": {
"prompt": "\"{code}\"를 설명해줘. 동작 방식과 사용 예시를 포함해.",
"description": "코드 설명"
}
}
}
사용:
/explain const result = array.reduce((acc, item) => acc + item.value, 0)
명령어 체이닝
여러 명령어를 조합하여 사용할 수 있습니다:
/review /refactor /test:unit
이는 코드를 리뷰한 후 리팩토링하고 테스트를 작성합니다.
팁
- 명령어 이름은 짧게:
/test:unit:coverage보다는/cov - 설명을 명확히: 나중에 무엇을 하는지 알 수 있게
- 카테고리화:
:로 구분하여 관련 명령어 그룹화 - 점진적 추가: 자주 사용하는 프롬프트부터 명령어로 등록
- 팀과 공유:
.claude/commands.json을 버전 관리에 포함
다음 단계
이 섹션이 도움이 되셨나요?
