第9講

코드 리뷰 자동화와 품질 관리

4 閲覧 1

슬래시 명령과 Hooks로 코드 리뷰 프로세스를 자동화하고, 팀 품질 기준을 코드로 강제하는 방법.

코드 리뷰 자동화 — 품질 게이트를 자동으로

코드 리뷰는 팀 개발에서 가장 중요하고 동시에 가장 많은 대기 시간이 발생하는 프로세스입니다. PR 제출 → 리뷰어 할당 → 리뷰 완료까지 평균 수 시간에서 수일이 걸립니다. Claude Code로 1차 자동 리뷰를 구축하면, 사람 리뷰어는 형식·스타일 오류 지적 대신 설계·로직 검토에 집중할 수 있습니다.

/review 슬래시 명령 구축

# .claude/commands/review.md
현재 스테이징된 변경사항(git diff --staged)을 코드 리뷰해줘.

다음 항목을 체크하고 문제가 있으면 코드를 직접 수정해줘:

## 타입 안전성
- TypeScript 타입 오류 또는 any 남용
- Supabase 쿼리 결과 타입 처리 (null 체크)
- 함수 반환 타입 명시

## 보안
- 하드코딩된 API 키, 시크릿, URL
- SQL 인젝션 가능성 (사용자 입력 → 쿼리 직접 삽입)
- 클라이언트에서 민감 정보 노출

## 에러 핸들링
- try-catch 누락 (async 함수)
- Server Action 응답 { success, message } 형식 준수
- 사용자 친화적 에러 메시지

## 코딩 규칙 (CLAUDE.md 기준)
- Server Action에 getAdminInfo() 인증 포함
- 'use client' 남용 (서버 컴포넌트 가능한지 확인)
- DB 변경 시 마이그레이션 파일 생성 여부

문제 없으면 "✅ 리뷰 통과" 출력.
문제가 있으면 수정 후 "수정된 항목: [목록]" 출력.

이제 PR 전에 /review 한 번으로 1차 품질 게이트를 통과합니다.

자동화 품질 게이트 — Hooks 활용

// .claude/settings.json — 파일 저장마다 자동 검증
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "if [[ '$FILE' == *.ts || '$FILE' == *.tsx ]]; then npx eslint '$FILE' --max-warnings 0 2>&1 | head -20; fi"
          }
        ]
      }
    ]
  }
}

파일을 저장할 때마다 ESLint가 자동으로 실행됩니다. 오류가 있으면 즉시 피드백을 받고, Claude가 다음 수정에 반영합니다.

PR 전 체크리스트 자동화

# .claude/commands/pre-pr.md
PR 제출 전 최종 점검을 실행해줘.

1. 코드 품질
   npx tsc --noEmit → 타입 오류 0개
   npm run lint → 린트 오류 0개

2. 테스트
   npm run test → 실패 테스트 없음
   (새로 추가한 함수에 테스트 있는지 확인)

3. 보안
   git diff --staged | grep -E "sk-|API_KEY|password|secret" → 민감 정보 없음

4. 커밋 메시지
   git log --oneline origin/main..HEAD 검토
   → Conventional Commits 형식 준수

5. PR 설명 초안
   변경사항 요약, 테스트 방법, 주의사항 포함

모든 항목 통과 시 "🚀 PR 준비 완료" 출력.
실패 항목 있으면 수정 후 재확인.

GitHub Actions 자동 리뷰 설정

# .github/workflows/ai-review.yml
name: AI Code Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }

      - name: Claude 자동 리뷰
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          DIFF=$(git diff origin/${{ github.base_ref }}...HEAD -- '*.ts' '*.tsx' | head -c 50000)
          REVIEW=$(echo "$DIFF" | claude -p "
            PR diff를 리뷰해줘. 다음만 지적해줘 (스타일 말고):
            1. 버그 가능성 (null 접근, 비동기 오류, 타입 불일치)
            2. 보안 취약점
            3. 성능 문제 (N+1 쿼리, 불필요한 리렌더)
            각 문제: 파일명:줄번호 | 문제 설명 | 권장 수정 형식
            문제 없으면 '✅ 리뷰 통과' 만 출력.
          " --output-format text)
          echo "$REVIEW" >> $GITHUB_STEP_SUMMARY

리뷰 피로도 줄이기

# 리뷰어가 "왜 이렇게 했어?" 질문하기 전에 먼저 설명
/review 실행 후

"이 PR에서 비자명한 결정들을 설명하는 주석을 추가해줘.
 리뷰어가 '왜 이렇게?'라고 물을 만한 부분 위주로.
 너무 많은 주석은 오히려 방해 — 진짜 필요한 곳만."
자동화된 코드 리뷰의 목적은 사람 리뷰어를 대체하는 것이 아니라 해방시키는 것입니다. 타입 오류, 린트 오류, 하드코딩된 키 — 이런 것들은 도구가 잡아야 합니다. 사람 리뷰어는 "이 설계가 6개월 후에도 유지보수 가능한가?" 같은 질문에 집중해야 합니다.

핵심 정리

  • /review 슬래시 명령으로 PR 전 1차 자동 리뷰 — 타입·보안·에러핸들링·코딩규칙 체크 후 직접 수정까지
  • PostToolUse Hook + ESLint — 파일 저장마다 즉시 피드백, 오류 누적 없이 실시간 품질 유지
  • GitHub Actions ai-review.yml — PR 오픈 시 버그·보안·성능 자동 감지, 사람 리뷰어는 설계 검토에 집중

관련 검색어  ·  클로드 코드 코드 리뷰  ·  AI 자동 코드 리뷰  ·  Claude Code 품질 관리  ·  클로드 코드 완벽 마스터  ·  GitHub Actions AI 리뷰

채용정보
공지사항
인사이트
MY