GitHub Actions + Claude Code로 AI 기반 테스트 자동화 환경 구성하기

Kirogramer·2026년 2월 12일

AI

목록 보기
5/10
post-thumbnail

요즘 개발 환경에서는 “테스트 자동화”가 선택이 아니라 기본값이 되었습니다.
CI가 없는 프로젝트는 거의 없고, Pull Request에서 테스트가 돌지 않으면 오히려 이상하게 느껴집니다.

그런데 한 가지는 여전히 사람의 영역으로 남아 있습니다.
코드를 보고 “이거 위험하지 않을까?”, “이 케이스 빠진 것 같은데?”라고 판단하는 일입니다.

테스트 코드는 통과했지만 실제로는 버그가 숨어 있는 경우, 리뷰어가 놓친 예외 케이스, 성능이나 보안 문제처럼 명시적 테스트로 잡기 어려운 영역들.

여기에 AI를 붙이면 어떻게 될까요?

이번 글에서는 GitHub Actions와 Claude Code를 연동하여 AI가 CI 단계에서 코드 분석 및 테스트 보조를 수행하도록 구성하는 방법을 다룹니다.


왜 CI에 AI를 붙이는가?

기존 CI 파이프라인은 보통 이런 구조입니다.

Push → Build → Unit Test → Lint → Deploy

여기까지는 “정해진 규칙”을 검사합니다.

  • 테스트가 통과하는가?
  • 코드 스타일이 맞는가?
  • 빌드가 성공하는가?

하지만 AI는 다른 영역을 다룹니다.

  • 이 코드에서 잠재적인 런타임 에러 가능성은?
  • 예외 처리가 부족한 부분은?
  • 테스트 케이스로 보강해야 할 부분은?
  • 보안 취약점은 없는가?
  • 복잡도가 과도하지는 않은가?

즉,

기존 CI가 “정답 검사기”라면
AI는 “추론 기반 코드 분석가”입니다.

전체 구성 구조

아키텍처는 매우 단순합니다.

Developer → PR 생성
        ↓
GitHub Actions 실행
        ↓
변경 파일 추출
        ↓
Claude Code 분석 실행
        ↓
분석 결과를 PR에 자동 코멘트

핵심은 변경된 파일만 AI에게 전달하는 것입니다.
전체 코드베이스를 매번 분석하면 비용과 시간이 급격히 증가합니다.

GitHub Actions 워크플로우 구성

.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는 “테스트의 보완 장치”로 사용하는 것이 가장 안전합니다.

CI 실패 조건 추가하기

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

이 방식은 비용을 크게 줄여줍니다.

보안과 비용 관리

1. Secrets 관리

GitHub Secrets에 API Key 저장:

ANTHROPIC_API_KEY

절대 로그에 노출하지 않도록 주의해야 합니다.

2. 비용 최적화 전략

  • Diff 기반 분석
  • PR 파일 수 제한
  • 대용량 파일 제외
  • 모델 선택 전략 (필요한 수준만 사용)

확장 아이디어

  • AI가 테스트 코드 자동 생성
  • AI가 코드 복잡도 점수 계산
  • PR에 “AI Quality Score” 표시
  • 보안 전용 프롬프트 분리 운영
  • 사내 규칙 기반 커스텀 리뷰 프롬프트 구축

GPT 대신 Claude Code를 쓰는 이유

Claude Code는 코드베이스 분석에 특화된 CLI를 제공합니다.

특히:

  • 긴 코드 컨텍스트 처리
  • 파일 단위 분석 자동화
  • CLI 기반 CI 연동

이 점이 CI 통합에 매우 유리합니다.


요즘 프로젝트는 규모와 상관없이 빠르게 변화합니다.
기능은 계속 추가되고, 리뷰 속도는 빨라져야 하며, 품질 기준은 오히려 높아졌습니다.

AI를 CI에 붙이는 것은 거창한 혁신이 아닙니다.
리뷰어 한 명을 추가로 두는 것과 비슷합니다.
다만 그 리뷰어는 지치지 않고, 감정이 없고, 항상 동일한 기준으로 코드를 분석합니다.

GitHub Actions와 Claude Code를 연동하면 기존 CI 흐름을 깨지 않으면서도 코드 품질을 한 단계 끌어올릴 수 있습니다.

이제 질문은 이것입니다.

“테스트 자동화를 하고 있는가?”가 아니라
“AI를 활용한 테스트 보완까지 하고 있는가?”

CI는 이미 기본입니다.
그 위에 AI를 얹는 순간, 개발 프로세스는 한 단계 더 정교해집니다.

profile
기로그래머

0개의 댓글