Logo
본문으로 이동
중급6분 소요slash-commandsaliasesproductivity

슬래시 명령어

읽는 시간: 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

이는 코드를 리뷰한 후 리팩토링하고 테스트를 작성합니다.

  1. 명령어 이름은 짧게: /test:unit:coverage보다는 /cov
  2. 설명을 명확히: 나중에 무엇을 하는지 알 수 있게
  3. 카테고리화: :로 구분하여 관련 명령어 그룹화
  4. 점진적 추가: 자주 사용하는 프롬프트부터 명령어로 등록
  5. 팀과 공유: .claude/commands.json을 버전 관리에 포함

다음 단계


이 섹션이 도움이 되셨나요?

관련 가이드

슬래시 명령어 | Claude Code 가이드 | GodDaeHee | GodDaeHee