
요즘 개발 환경에서는 “테스트 자동화”가 선택이 아니라 기본값이 되었습니다.
CI가 없는 프로젝트는 거의 없고, Pull Request에서 테스트가 돌지 않으면 오히려 이상하게 느껴집니다.
그런데 한 가지는 여전히 사람의 영역으로 남아 있습니다.
코드를 보고 “이거 위험하지 않을까?”, “이 케이스 빠진 것 같은데?”라고 판단하는 일입니다.
테스트 코드는 통과했지만 실제로는 버그가 숨어 있는 경우, 리뷰어가 놓친 예외 케이스, 성능이나 보안 문제처럼 명시적 테스트로 잡기 어려운 영역들.
여기에 AI를 붙이면 어떻게 될까요?
이번 글에서는 GitHub Actions와 Claude Code를 연동하여 AI가 CI 단계에서 코드 분석 및 테스트 보조를 수행하도록 구성하는 방법을 다룹니다.
기존 CI 파이프라인은 보통 이런 구조입니다.
Push → Build → Unit Test → Lint → Deploy
여기까지는 “정해진 규칙”을 검사합니다.
하지만 AI는 다른 영역을 다룹니다.
즉,
기존 CI가 “정답 검사기”라면
AI는 “추론 기반 코드 분석가”입니다.
아키텍처는 매우 단순합니다.
Developer → PR 생성
↓
GitHub Actions 실행
↓
변경 파일 추출
↓
Claude Code 분석 실행
↓
분석 결과를 PR에 자동 코멘트
핵심은 변경된 파일만 AI에게 전달하는 것입니다.
전체 코드베이스를 매번 분석하면 비용과 시간이 급격히 증가합니다.
.github/workflows/ai-analysis.yml
name: AI Code Analysis
on:
pull_request:
branches:
- main
- develop
jobs:
ai-review:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Get Changed Files
run: |
git fetch origin ${{ github.base_ref }}
git diff --name-only origin/${{ github.base_ref }} > changed.txt
- name: Run Claude Analysis
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude analyze --files changed.txt --output report.md
- name: Comment on PR
uses: marocchino/sticky-pull-request-comment@v2
with:
path: report.md
AI 품질은 결국 프롬프트 품질에 달려 있습니다.
예시 prompt.txt:
You are a senior software engineer performing a code review.
Analyze the provided code changes and:
1. Identify potential runtime errors
2. Suggest missing edge cases
3. Recommend additional test cases
4. Detect possible performance bottlenecks
5. Identify security concerns
Respond in markdown format with:
- Issue
- Severity (Low/Medium/High)
- Explanation
- Suggested Fix
실행:
claude analyze --files changed.txt --prompt-file prompt.txt
이렇게 하면 단순 요약이 아니라 실제 코드 리뷰 수준의 분석을 얻을 수 있습니다.
AI 분석은 기존 테스트를 대체하지 않습니다.
추천 구성은 다음과 같습니다.
1️⃣ Unit Test 실행
2️⃣ Integration Test 실행
3️⃣ Lint 검사
4️⃣ Claude Code 분석
AI는 “테스트의 보완 장치”로 사용하는 것이 가장 안전합니다.
AI 분석 결과에 특정 키워드가 포함되면 CI를 실패시키는 것도 가능합니다.
if grep -q "Severity: High" report.md; then
exit 1
fi
이렇게 하면 고위험 코드 변경이 자동으로 차단됩니다.
모든 파일을 분석할 필요는 없습니다.
예를 들어:
git diff --name-only origin/main | grep '\.js$\|\.ts$\|\.java$' > changed.txt
또는 특정 디렉토리만 분석:
grep '^src/' changed.txt > filtered.txt
이 방식은 비용을 크게 줄여줍니다.
GitHub Secrets에 API Key 저장:
ANTHROPIC_API_KEY
절대 로그에 노출하지 않도록 주의해야 합니다.
Claude Code는 코드베이스 분석에 특화된 CLI를 제공합니다.
특히:
이 점이 CI 통합에 매우 유리합니다.
요즘 프로젝트는 규모와 상관없이 빠르게 변화합니다.
기능은 계속 추가되고, 리뷰 속도는 빨라져야 하며, 품질 기준은 오히려 높아졌습니다.
AI를 CI에 붙이는 것은 거창한 혁신이 아닙니다.
리뷰어 한 명을 추가로 두는 것과 비슷합니다.
다만 그 리뷰어는 지치지 않고, 감정이 없고, 항상 동일한 기준으로 코드를 분석합니다.
GitHub Actions와 Claude Code를 연동하면 기존 CI 흐름을 깨지 않으면서도 코드 품질을 한 단계 끌어올릴 수 있습니다.
이제 질문은 이것입니다.
“테스트 자동화를 하고 있는가?”가 아니라
“AI를 활용한 테스트 보완까지 하고 있는가?”
CI는 이미 기본입니다.
그 위에 AI를 얹는 순간, 개발 프로세스는 한 단계 더 정교해집니다.