복잡한 자동화 스크립트와 씨름하지 않고 CI/CD 파이프라인에 지능을 주입할 방법을 찾고 계셨다면, Claude Code Skills가 바로 필요했던 것일 수 있습니다. 이러한 맞춤형 AI 기반 워크플로우는 사전 커밋 보안 검사부터 배포 유효성 검사까지 모든 것을 자동화합니다. 깨지기 쉬운 셸 스크립트 대신 자연어 지침을 사용하여 정의합니다.
CI/CD를 위한 Claude Code Skills의 강력한 기능:
- 자연어 자동화: 복잡한 YAML 대신 일반 영어로 워크플로우를 정의합니다.
- 지능형 의사 결정: AI가 컨텍스트를 분석하고, 수정 사항을 제안하며, 다양한 시나리오에 적응할 수 있습니다.
- 재사용 가능한 워크플로우: 한 번 생성하여 간단한 슬래시 명령으로 어디서든 호출할 수 있습니다.
- Git 통합: Git 이벤트(pre-commit, pre-push, post-merge)에 직접 연결됩니다.
- 확장 가능: Bash, 파일 작업, 웹 검색 등 15가지 이상의 도구에 접근할 수 있습니다.
버튼
이 가이드에서는 Claude Code Skills가 무엇인지, 사용자 지정 CI/CD 워크플로우를 구축하는 방법, 그리고 오늘 바로 구현할 수 있는 실제 사례를 살펴봅니다.
Claude Code Skills 이해하기
스킬이란 무엇인가요?
Claude Code Skills는 Claude Code의 기능을 확장하는 맞춤형 재사용 가능한 AI 워크플로우입니다. 이들을 다음과 같은 기능을 수행할 수 있는 지능형 스크립트로 생각할 수 있습니다.
- 복잡한 다단계 작업을 자율적으로 실행합니다.
- 상황에 맞는 결정을 내립니다.
- 파일에 액세스하고, 명령을 실행하고, 웹을 검색하는 등의 작업을 수행합니다.
- 세션 간에 상태를 유지합니다.
- 기존 개발 도구와 통합됩니다.

엄격한 논리를 따르는 기존 스크립트와 달리, 스킬은 Claude의 추론 기능을 활용하여 예외 상황을 처리하고, 개선 사항을 제안하며, 변화하는 조건에 적응합니다.
스킬 작동 방식
스킬은 몇 가지 주요 메커니즘을 통해 작동합니다.
1. 사용자 호출 가능 명령
# Run a skill with a slash command
/deploy-validation --env production
/security-review
/ci-pipeline-monitor --branch main
2. 허용된 도구
스킬은 사용할 수 있는 도구를 지정합니다.
Bash: 셸 명령 실행Read,Write,Edit: 파일 작업Glob,Grep: 검색 작업WebFetch,WebSearch: 외부 데이터Task: 복잡한 작업을 위한 하위 에이전트 생성
3. 라이프사이클 훅
스킬은 특정 시점에 작업을 트리거할 수 있습니다.
SessionStart: 스킬이 시작될 때PreToolUse: 각 도구 실행 전PostToolUse: 각 도구 실행 후Stop: 스킬이 종료될 때
4. 계획 파일
스킬은 마크다운 파일을 사용하여 진행 상황을 추적하고, 발견 사항을 저장하며, 재개 가능한 워크플로우를 활성화하여 상태를 유지할 수 있습니다.
스킬이 CI/CD에서 뛰어난 이유
기존 CI/CD 스크립트는 예기치 않은 조건에 직면하면 쉽게 실패합니다. 스킬은 자동화에 지능을 부여합니다.
- 상황 이해: 로그를 읽고, 오류를 이해하며, 수정 사항을 제안할 수 있습니다.
- 적응형 동작: 다양한 프로젝트 구조 및 구성에 맞게 조정됩니다.
- 자기 문서화: 자연어 지침을 통해 워크플로우가 투명해집니다.
- 오류 복구: 문제를 진단하고 해결책을 제시할 수 있습니다.
- 지속적인 학습: 결과를 기반으로 워크플로우를 개선합니다.
스킬 해부학: 구성 요소 및 구조
디렉토리 구조
스킬은 .claude/skills/에 다음 레이아웃으로 존재합니다.
.claude/
├── skills/
│ ├── deploy-validation/
│ │ ├── SKILL.md # Skill manifest and instructions
│ │ ├── planning.md # State tracking (optional)
│ │ └── scripts/ # Helper scripts (optional)
│ ├── security-review/
│ │ └── SKILL.md
│ └── ci-monitor/
│ └── SKILL.md
└── skills.md # Index of all skills
SKILL.md 매니페스트
모든 스킬은 YAML 프런트매터로 시작하여 마크다운 지침이 뒤따릅니다.
---
name: deploy-validation
version: "1.0.0"
description: Validates deployment readiness with comprehensive checks
user-invocable: true
allowed-tools:
- Bash
- Read
- Edit
- Grep
- Glob
hooks:
SessionStart:
- matcher: command
command: "echo '[Deploy Validator] Starting pre-deployment checks...'"
Stop:
- matcher: command
command: "echo '[Deploy Validator] Checks complete. Review output above.'"
---
# Deployment Validation Skill
Comprehensive pre-deployment validation for production releases.
## Usage
```bash
/deploy-validation --env production
/deploy-validation --env staging --dry-run
/deploy-validation --skip-tests # Use cautiously
이 스킬이 하는 일
환경 검증
- 필수 환경 변수 존재 여부 확인
- 구성 파일 유효성 검사
- 서비스 종속성 접근 가능 여부 확인
코드 품질 검사
- 린팅 실행 (ESLint, Pylint 등)
- 코드 포맷팅 확인
- 디버그 문이 남아 있지 않은지 확인
테스팅
- 단위 테스트 스위트 실행
- 통합 테스트 실행
- 코드 커버리지 임계값 확인
빌드 유효성 검사
- 애플리케이션 컴파일/빌드
- 빌드 아티팩트 확인
- 번들 크기를 제한에 대해 확인
보안 스캐닝
- 취약점 없는지 종속성 스캔
- 하드코딩된 비밀 정보 확인
- 권한 및 접근 제어 유효성 검사
문서 확인
- CHANGELOG이 업데이트되었는지 확인
- API 문서가 코드와 일치하는지 확인
- 필요한 경우 마이그레이션 가이드 확인
배포 보고서
- 종합 보고서 생성
deployment-reports/{timestamp}.md에 저장- 통과/실패를 나타내는 상태 코드로 종료
Claude를 위한 지침
호출 시:
- 명령줄 인수를 파싱하여 환경 및 옵션 결정
- 현재 git 브랜치 및 커밋 SHA 확인
- 각 유효성 검사 단계를 순서대로 실행
- 각 실패에 대해 문제를 기록하고 계속 진행 (모든 오류 수집)
- 모든 검사 후 요약 보고서 생성
- 중요 검사가 실패하면 오류 코드 1로 종료
- 모든 검사가 통과하면 코드 0으로 종료하고 성공 메시지 표시
---
## CI/CD 활용 사례
### 1. 사전 커밋 유효성 검사
**스킬: `/pre-commit-guard`**
커밋 전에 변경 사항을 자동으로 검증합니다.
- 린팅 및 포맷팅
- 비밀 정보 보안 스캔
- 단위 테스트 실행
- 파일 크기 확인
- 호환성 파괴 변경 감지
**이점**: 코드가 코드베이스에 들어가기 전에 문제를 잡아냅니다.
### 2. Pull Request 분석
**스킬: `/pr-review`**
다음과 같은 지능형 PR 검토:
- 코드 변경에서 품질 문제 분석
- 보안 취약점 확인
- 테스트 커버리지 검증
- 개선 사항 제안
- 검토 댓글 생성
**이점**: 사람의 병목 현상 없이 일관되고 철저한 코드 검토.
### 3. 자동화된 테스트 워크플로우
**스킬: `/test-runner`**
다음과 같은 스마트 테스트 실행:
- 변경 사항과 관련된 테스트 감지
- 최적의 순서로 테스트 실행
- 실패 분석 및 수정 사항 제안
- 커버리지 보고서 생성
- 테스트 성능 추세 추적
**이점**: 지능적인 테스트 선택으로 더 빠른 피드백.
### 4. 배포 유효성 검사
**스킬: `/deploy-validator`**
다음과 같은 배포 전 검사:
- 환경 구성 유효성 검사
- 종속성 확인
- 데이터베이스 마이그레이션 확인
- API 호환성 테스트
- 성능 회귀 감지
**이점**: 배포 실패를 사전에 방지합니다.
### 5. CI 파이프라인 모니터링
**스킬: `/ci-monitor`**
파이프라인 상태 모니터링:
- 빌드 성공률 추적
- 불안정한 테스트 식별
- 성능 추세 분석
- 성능 저하 시 경고
- 최적화 제안
**이점**: 사전 예방적 파이프라인 유지보수 및 최적화.
### 6. 릴리스 자동화
**스킬: `/release-manager`**
릴리스 프로세스 오케스트레이션:
- 버전 범핑
- 변경 로그 생성
- 태그 생성
- 빌드 아티팩트 확인
- 릴리스 노트 초안 작성
**이점**: 일관되고 오류 없는 릴리스.
### 7. API 테스트 자동화
API를 구축하는 팀의 경우, Claude Code Skills와 Apidog를 결합하여 포괄적인 API 유효성 검사를 수행할 수 있습니다.
- **테스트 케이스 생성**: OpenAPI/Swagger 사양에서 API 테스트 생성
- **자동화된 테스트 실행**: 파이프라인에서 Apidog 테스트 컬렉션 실행
- **응답 유효성 검사**: 상태 코드, 스키마 및 응답 시간 확인
- **종속성 모의**: 격리된 테스트를 위한 모의 서버 설정
- **커버리지 추적**: API 엔드포인트 테스트 커버리지 모니터링
**스킬 통합 예시:**
```bash
/api-test-runner --collection ./tests/api-collection.json --env production
이점: 시각적 디버깅 및 상세 보고서를 통해 배포 전에 API 회귀를 잡아냅니다. Apidog의 CI/CD 통합을 통해 어떤 파이프라인에도 API 테스트를 쉽게 추가할 수 있습니다.

첫 CI/CD 스킬 생성
실용적인 스킬을 만들어 봅시다: 커밋 전에 코드를 검사하는 보안 검토 도구입니다.
단계 1: 스킬 디렉토리 생성
mkdir -p .claude/skills/security-review
단계 2: 스킬 매니페스트 작성
.claude/skills/security-review/SKILL.md를 생성합니다.
---
name: security-review
version: "1.0.0"
description: Security scan for common vulnerabilities and secrets
user-invocable: true
allowed-tools:
- Bash
- Read
- Grep
- Glob
- Write
hooks:
SessionStart:
- matcher: command
command: "echo '[Security Review] Starting security scan...'"
Stop:
- matcher: command
command: "echo '[Security Review] Scan complete'"
---
# Security Review Skill
Scans code for security issues before commits.
## Usage
```bash
/security-review # Scan all changed files
/security-review --all # Scan entire codebase
/security-review --file src/auth.js # Scan specific file
감지 패턴
이 스킬은 다음을 확인합니다.
하드코딩된 비밀 정보
- API 키
- 비밀번호
- 개인 키
- 액세스 토큰
일반적인 취약점
- SQL 인젝션 패턴
- XSS 취약점
- 명령어 삽입
- 경로 탐색
안전하지 않은 구성
- 디버그 모드 활성화
- 안전하지 않은 기본값
- 인증 누락
- 취약한 암호화
종속성 문제
- 알려진 취약 패키지
- 오래된 종속성
- 의심스러운 패키지
지침
호출 시:
스캔 범위 결정
--all플래그가 있으면: 전체 코드베이스 스캔--file이 제공되면: 해당 파일 스캔- 기본값: Git 스테이징/수정된 파일만 스캔
비밀 정보 검색
- Grep을 사용하여 다음 패턴 찾기:
(api[_-]?key|password|secret|token)\s*[:=]\s*['"]\w+['"]-----BEGIN (RSA |)PRIVATE KEY------ 일반적인 비밀 정보 형식 (AWS, GitHub 등)
.gitignore의 파일 무시node_modules,vendor등 건너뛰기
취약점 패턴 확인
- SQL 인젝션: 문자열 연결을 사용한 원시 SQL
- XSS: HTML에서 이스케이프되지 않은 사용자 입력
- 명령어 삽입: 사용자 입력이 포함된 셸 실행
- Read 도구로 코드를 읽어 컨텍스트 분석
종속성 스캔
package-lock.json,requirements.txt등 확인- Bash를 사용하여 보안 스캐너 실행:
- Node.js용
npm audit - Python용
pip-audit - Ruby용
bundle audit
보고서 생성
- 다음과 같이 모든 발견 사항 나열:
- 파일 경로 및 줄 번호
- 문제 유형 및 심각도
- 권장 수정 사항
.claude/security-reports/{date}.md에 저장- 터미널에 요약 표시
종료 상태
- 문제가 없으면 0으로 종료
- HIGH 심각도 문제가 있으면 1로 종료
- 스캔을 완료할 수 없으면 2로 종료
### 단계 3: 스킬 등록
`.claude/skills.md`에 추가:
```markdown
# 사용 가능한 스킬
## 보안 및 품질
### /security-review
취약점 및 비밀 정보를 위한 보안 스캔.
- **버전**: 1.0.0
- **사용법**: `/security-review [--all] [--file PATH]`
- **사용 시기**: 커밋 전, PR 검토 중
단계 4: 스킬 테스트
# In Claude Code
/security-review
이제 Claude는 보안 검토 워크플로우를 실행하여 코드에서 문제를 확인합니다.
고급 스킬 패턴
패턴 1: 계획 파일을 사용한 상태 저장 워크플로우
다단계 프로세스의 경우, 계획 파일을 사용하여 진행 상황을 추적합니다.
---
name: release-manager
version: "1.0.0"
user-invocable: true
allowed-tools:
- Bash
- Read
- Write
- Edit
---
# Release Manager
Manages the complete release process.
## State Management
This skill uses `planning.md` to track release progress:
```markdown
# Release v2.5.0 Progress
## Phase 1: Pre-Release Validation [DONE]
- [x] Run full test suite
- [x] Check code coverage > 80%
- [x] Scan for security issues
## Phase 2: Version Bumping [IN PROGRESS]
- [x] Update package.json
- [ ] Update CHANGELOG.md
- [ ] Update documentation
## Phase 3: Build & Tag [PENDING]
- [ ] Create production build
- [ ] Run smoke tests
- [ ] Create git tag
- [ ] Push to registry
## Phase 4: Post-Release [PENDING]
- [ ] Create GitHub release
- [ ] Update release notes
- [ ] Notify team
지침
planning.md 존재 여부 확인
- 있으면: 마지막으로 완료되지 않은 단계부터 재개
- 없으면: 새 계획 파일 생성
각 단계 실행:
- 작업이 완료되면 체크박스 업데이트
- 각 단계 후 진행 상황 저장
- 중단된 경우 나중에 재개 가능
각 작업에 대해:
- 전제 조건 확인
- 작업 실행
- 결과 유효성 검사
- 계획 파일 업데이트
### 패턴 2: 조건부 워크플로우
스킬은 프로젝트 유형에 따라 적응할 수 있습니다.
```markdown
## 지침
1. **프로젝트 유형 감지**
- `package.json` 확인 → Node.js 프로젝트
- `requirements.txt` 확인 → Python 프로젝트
- `Cargo.toml` 확인 → Rust 프로젝트
2. **적절한 테스트 실행**
- Node.js: `npm test`
- Python: `pytest`
- Rust: `cargo test`
3. **커버리지 보고서 생성**
- Node.js: Jest/Istanbul 사용
- Python: pytest-cov 사용
- Rust: tarpaulin 사용
패턴 3: 병렬 실행
독립적인 작업의 경우, 동시에 실행합니다.
## 지침
1. **병렬 검사** (동시 실행):
- 린팅 (ESLint, Prettier)
- 타입 검사 (TypeScript)
- 보안 스캔 (npm audit)
- 문서 빌드
2. **결과 수집**
- 모든 작업이 완료될 때까지 대기
- 발견 사항 집계
- 모든 실패 보고
패턴 4: 대화형 의사 결정
스킬은 사용자 입력을 요청할 수 있습니다.
## 지침
1. **배포 위험 분석**
- 호환성 파괴 변경 사항 확인
- 마이그레이션 스크립트 검토
- 롤백 복잡성 평가
2. **높은 위험 감지 시**
- 사용자에게 발견 사항 제시
- 질문: "그래도 배포하시겠습니까? (예/아니요/취소)"
- 예: 배포 진행
- 아니요: 중단 및 결정 기록
- 취소: 작업 없이 종료
3. **낮은 위험 시**
- 배포 자동 승인
- 감사용 결정 기록
GitHub Actions와 스킬 통합
방법 1: 직접 스킬 호출
GitHub Actions 워크플로우에 Claude Code를 추가하세요.
# .github/workflows/security-scan.yml
name: Security Scan
on:
pull_request:
branches: [main, develop]
jobs:
security-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Claude Code
run: |
curl -fsSL https://install.claude.com | sh
- name: Run Security Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude /security-review --all
- name: Upload Report
if: always()
uses: actions/upload-artifact@v3
with:
name: security-report
path: .claude/security-reports/
방법 2: 사용자 지정 GitHub Action
재사용 가능한 액션을 생성합니다.
# .github/actions/claude-skill/action.yml
name: 'Run Claude Code Skill'
description: 'Execute a Claude Code skill in CI'
inputs:
skill-name:
description: 'Name of the skill to run'
required: true
skill-args:
description: 'Arguments to pass to the skill'
required: false
default: ''
api-key:
description: 'Anthropic API key'
required: true
runs:
using: 'composite'
steps:
- name: Setup Claude
shell: bash
run: |
curl -fsSL https://install.claude.com | sh
- name: Run Skill
shell: bash
env:
ANTHROPIC_API_KEY: ${{ inputs.api-key }}
run: |
claude /${{ inputs.skill-name }} ${{ inputs.skill-args }}
워크플로우에서 사용법:
# .github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
validate-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Pre-Deployment Validation
uses: ./.github/actions/claude-skill
with:
skill-name: deploy-validation
skill-args: '--env production'
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
- name: Deploy
if: success()
run: ./deploy.sh production
- name: Post-Deployment Check
uses: ./.github/actions/claude-skill
with:
skill-name: health-check
skill-args: '--url https://api.example.com'
api-key: ${{ secrets.ANTHROPIC_API_KEY }}
방법 3: 매트릭스 테스팅
여러 환경에서 스킬을 실행합니다.
# .github/workflows/test-matrix.yml
name: Test Matrix
on: [push, pull_request]
jobs:
test:
strategy:
matrix:
node-version: [16, 18, 20]
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Run Test Skill
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude /test-runner --node-version ${{ matrix.node-version }}
Git 훅 통합
Git 훅 설정
Git 훅을 사용하면 Git 이벤트 발생 시 스킬을 자동으로 실행할 수 있습니다.
Pre-Commit 훅
잘못된 커밋이 발생하기 전에 방지합니다.
# .git/hooks/pre-commit
#!/bin/bash
echo "사전 커밋 보안 검토를 실행 중입니다..."
# Claude Code 보안 검토 실행
claude /security-review
if [ $? -ne 0 ]; then
echo "실패: 보안 문제가 감지되었습니다. 커밋이 차단되었습니다."
echo "위에 표시된 문제를 해결하거나 'git commit --no-verify'를 사용하여 우회하세요 (권장하지 않음)"
exit 1
fi
echo "통과: 보안 검사가 통과되었습니다."
exit 0
실행 가능하게 만듭니다.
chmod +x .git/hooks/pre-commit
Pre-Push 훅
원격 저장소로 푸시하기 전에 유효성을 검사합니다.
# .git/hooks/pre-push
#!/bin/bash
echo "사전 푸시 유효성 검사를 실행 중입니다..."
# 푸시되는 브랜치 가져오기
BRANCH=$(git rev-parse --abbrev-ref HEAD)
# 브랜치에 따라 다른 검사 실행
if [ "$BRANCH" = "main" ]; then
echo "main으로 푸시 중 - 전체 유효성 검사 실행..."
claude /deploy-validation --env production
elif [ "$BRANCH" = "develop" ]; then
echo "develop으로 푸시 중 - 스테이징 유효성 검사 실행..."
claude /deploy-validation --env staging
else
echo "기능 브랜치 - 빠른 유효성 검사 실행 중..."
claude /quick-check
fi
if [ $? -ne 0 ]; then
echo "실패: 유효성 검사에 실패했습니다. 푸시가 차단되었습니다."
exit 1
fi
echo "통과: 유효성 검사가 통과되었습니다."
exit 0
Post-Merge 훅
브랜치를 병합한 후 실행합니다.
# .git/hooks/post-merge
#!/bin/bash
echo "병합 후 검사 중..."
# 종속성 변경 확인
if git diff-tree -r --name-only --no-commit-id HEAD@{1} HEAD | grep -q "package-lock.json"; then
echo "종속성이 변경되었습니다 - 보안 감사를 실행 중입니다..."
claude /dependency-audit
fi
# 데이터베이스 마이그레이션 존재 여부 확인
if git diff-tree -r --name-only --no-commit-id HEAD@{1} HEAD | grep -q "migrations/"; then
echo "마이그레이션이 감지되었습니다 - 유효성을 검사 중입니다..."
claude /migration-validator
fi
exit 0
Husky 통합
Husky를 사용하여 Git 훅을 관리하는 팀의 경우:
// package.json
{
"husky": {
"hooks": {
"pre-commit": "claude /security-review && claude /lint-check",
"pre-push": "claude /test-runner --quick",
"post-merge": "claude /dependency-audit"
}
}
}
또는 Husky v6+와 함께:
# .husky/pre-commit
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
claude /security-review
claude /lint-check
결론
Claude Code Skills는 CI/CD를 깨지기 쉬운 스크립트에서 지능적이고 적응력 있는 워크플로우로 전환합니다. AI 추론을 기존 자동화와 결합함으로써 스킬은 다음을 수행할 수 있습니다.
- 상황을 이해하고 다양한 시나리오에 적응합니다.
- 단순히 실패를 보고하는 대신 개선 사항을 제안합니다.
- 코드베이스의 패턴으로부터 학습합니다.
- 자연어 지침을 통해 자기 문서화합니다.
CI/CD 파이프라인에 API 엔드포인트가 포함되어 있다면, Claude Code Skills와 Apidog를 결합하여 두 가지 장점을 모두 얻을 수 있습니다.
| 기능 | 이점 |
|---|---|
| 시각적 API 테스팅 | 코드 작성 없이 테스트 케이스 구축 |
| OpenAPI 가져오기 | 사양에서 자동으로 테스트 생성 |
| 모의 서버 | 백엔드가 준비되기 전에 통합 테스트 |
| CI/CD CLI | 어떤 파이프라인에서도 Apidog 테스트 실행 |
| 팀 협업 | 팀 전체에 테스트 컬렉션 공유 |
API 워크플로우를 간소화할 준비가 되셨나요? Apidog를 무료로 다운로드하고 몇 분 만에 첫 API 테스트 컬렉션을 만드세요.
버튼
