Claude Code 가이드 #15 — PR을 올릴 때마다 팀원에게 리뷰를 요청하는 대신, Claude Code가 자동으로 코드를 검토하게 할 수 있습니다. 이 편에서는 claude review 명령어부터 GitHub Actions를 통한 PR 자동 리뷰 파이프라인, 커스텀 리뷰 규칙 설정까지 실전 기준으로 정리합니다. claude review 는 현재 브랜치의 변경 사항을 Claude Code가 분석하고 코드 품질, 보안 취약점, 스타일 위반 사항을 보고하는 명령어입니다.
Claude Code 가이드 #15 — PR을 올릴 때마다 팀원에게 리뷰를 요청하는 대신, Claude Code가 자동으로 코드를 검토하게 할 수 있습니다. 이 편에서는 claude review 명령어부터 GitHub Actions를 통한 PR 자동 리뷰 파이프라인, 커스텀 리뷰 규칙 설정까지 실전 기준으로 정리합니다.
claude review는 현재 브랜치의 변경 사항을 Claude Code가 분석하고 코드 품질, 보안 취약점, 스타일 위반 사항을 보고하는 명령어입니다.
로컬에서 직접 실행하면 즉시 리뷰 결과를 확인할 수 있습니다.
리뷰 항목
설명
코드 품질
중복 로직, 불필요한 복잡도, 네이밍 컨벤션
보안
SQL 인젝션, XSS, 하드코딩된 시크릿 감지
성능
N+1 쿼리, 불필요한 루프, 메모리 누수 패턴
테스트
테스트 커버리지 갭, 엣지 케이스 누락
타입 안전성
TypeScript 타입 에러, any 사용 여부
Claude Code 가이드 #15 — Code Review 자동화 — CLI 실행 화면과 출력 결과 (출처: 공식 문서 및 벤치마크 데이터 기반)
로컬에서 claude review 실행
# 현재 브랜치의 변경 사항 리뷰
claude review
# 특정 파일만 리뷰
claude review src/auth/login.ts
# 특정 커밋 범위 리뷰
claude review HEAD~3..HEAD
# main 브랜치 대비 전체 diff 리뷰
claude review main..HEAD
Claude Code 가이드 #15 — Code Review 자동화 — claude review 명령어 실행 화면과 리뷰 결과 출력 (출처: 공식 문서 및 벤치마크 데이터 기반)
📌 참고:claude review는 git diff를 기반으로 동작합니다. 스테이징되지 않은 변경 사항(untracked files)은 리뷰 대상에 포함되지 않으므로, 전체 변경 사항을 보려면 먼저 git add로 스테이징하거나 범위를 명시적으로 지정하세요.
GitHub Actions PR 자동 리뷰 설정
GitHub Actions 워크플로우에 Claude Code를 통합하면 PR이 열릴 때마다 자동으로 리뷰 코멘트가 달립니다. 설정은 크게 두 단계입니다.
GitHub Secret 설정:ANTHROPIC_API_KEY를 레포 시크릿에 추가
워크플로우 파일 작성:.github/workflows/claude-review.yml 생성
⚠️ 막히는 케이스: PR을 업데이트할 때마다 리뷰 코멘트가 중복으로 달린다 — --output github-pr-comment 옵션은 기본적으로 새 코멘트를 추가합니다. 기존 코멘트를 업데이트하려면 --output github-pr-comment-update 옵션을 사용하세요. 이 옵션은 Claude Code가 이전에 남긴 코멘트를 찾아서 덮어씁니다.
보안 스캔과 CI 게이팅 통합
Claude Code 리뷰를 단순 코멘트가 아니라 CI 게이팅으로 활용할 수 있습니다. 보안 이슈가 발견되면 PR 머지를 막는 방식입니다.
이 패턴은 다음 시나리오에 적합합니다:
하드코딩된 API 키, 패스워드 감지 시 즉시 차단
특정 파일(예: 결제 모듈) 변경 시 강화 리뷰 필수
보안 취약점 등급(HIGH, CRITICAL)에 따라 머지 차단
보안 이슈 발견 시 CI 실패 처리
- name: Run security-focused review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
REVIEW_RESULT=$(claude review \
--focus security \
--severity-threshold high \
--output json)
echo "$REVIEW_RESULT" | jq '.issues[] | select(.severity == "critical" or .severity == "high")' > critical_issues.json
if [ -s critical_issues.json ]; then
echo "Critical security issues found:"
cat critical_issues.json
exit 1 # CI 실패 처리
fi
echo "No critical security issues found."
--severity-threshold high로 설정하면 HIGH 이상 심각도의 이슈만 보고합니다. --output json으로 결과를 JSON 형식으로 받아 jq로 파싱하면 자동화 처리가 용이합니다.
⚠️ 막히는 케이스:--output json으로 받은 결과가 비어 있다 — Claude Code 버전이 오래됐을 때 발생합니다. npm update -g @anthropic-ai/claude-code로 최신 버전으로 업데이트하세요. Actions 캐시에 구버전이 남아 있는 경우라면 actions/cache 키를 변경해서 캐시를 무효화하세요.
Claude Code 가이드 #15 — Code Review 자동화 — 보안 스캔과 CI 게이팅 통합 흐름도 (출처: 공식 문서 및 벤치마크 데이터 기반)
실전 코드 리뷰 자동화 팁
Claude Code 리뷰를 팀에 안착시키기 위한 실전 팁입니다.
초안 리뷰 vs 최종 리뷰 분리
PR 생성 시(opened)에는 전체 리뷰, 업데이트(synchronize) 시에는 변경된 파일만 리뷰하는 방식으로 비용과 속도를 최적화할 수 있습니다.
LGTM 자동 처리
Claude Code가 이슈를 전혀 발견하지 못한 경우 자동으로 "LGTM" 코멘트를 달도록 설정하면, 리뷰 없이 머지된 것처럼 보이는 문제를 방지할 수 있습니다.
리뷰 결과 요약 Slack 알림
Critical 이슈가 발견됐을 때 Slack으로 알림을 보내면 팀원이 빠르게 대응할 수 있습니다.
요약 및 관련 편
정리하면:
claude review로 로컬에서 즉시 코드 리뷰 가능 — git diff 기반으로 동작
로컬에서는 claude review로 git diff 기반 코드 리뷰를 즉시 받고, GitHub Actions에 연결하면 PR이 열릴 때마다 자동으로 리뷰 코멘트가 달립니다. 팀 규칙과 집중 영역은 .claude/review.json으로 커스터마이징하고, 보안 이슈는 --severity-threshold와 CI 실패 처리로 머지를 막는 게이팅까지 붙일 수 있습니다. 커밋이 쌓일 때는 synchronize 이벤트의 증분 리뷰로 변경된 파일만 분석해 비용을 줄이는 것이 핵심입니다.
실무에서 처음 도입할 때 가장 먼저 확인할 것은 무엇인가요?
두 가지를 먼저 맞춰야 자동 리뷰가 돌아갑니다. 하나는 ANTHROPIC_API_KEY를 레포 Secrets에 등록하는 것이고, 다른 하나는 워크플로우 jobs의 permissions에 pull-requests: write를 주는 것입니다. 이 권한이 없으면 리뷰는 실행돼도 PR에 코멘트를 달지 못하고 Actions 로그에 403 Forbidden이 찍힙니다. 그다음으로는 트리거 이벤트를 정하세요. opened에서는 전체 리뷰, synchronize에서는 변경 파일만 보는 증분 리뷰로 나누면 커밋이 쌓일 때마다 전체 diff를 다시 돌리는 비용을 줄일 수 있습니다.
가장 자주 발생하는 실수나 함정은 무엇인가요?
가장 자주 걸리는 함정은 포크에서 올라온 PR입니다. 포크 PR은 보안상 레포 Secret 접근이 막혀 있어 ANTHROPIC_API_KEY를 못 읽고 자동 리뷰가 그냥 조용히 실패합니다. 외부 기여를 받는 레포라면 pull_request_target 트리거로 따로 처리해야 합니다. 그다음 흔한 것이 코멘트 중복입니다. --output github-pr-comment는 매번 새 코멘트를 추가하므로 PR을 업데이트할 때마다 리뷰가 쌓입니다. 기존 코멘트를 덮어쓰려면 github-pr-comment-update 옵션을 쓰세요. 로컬 claude review는 git diff 기반이라 git add 안 한 untracked 파일은 리뷰에서 빠진다는 점도 주의해야 합니다.
다른 대안과 비교했을 때 어떤 상황에 적합한가요?
claude review는 사람 리뷰어를 대체하기보다 1차 필터로 둘 때 가장 잘 맞습니다. 하드코딩된 시크릿, SQL 인젝션, N+1 쿼리처럼 패턴이 명확한 결함을 PR 단계에서 자동으로 걸러내 리뷰어의 부담을 덜어주는 용도입니다. 특히 결제 모듈처럼 변경 시 강화 리뷰가 필요한 파일이나, 보안 등급에 따라 머지를 막아야 하는 레포에 적합합니다. 반대로 설계 의도나 제품 맥락을 판단해야 하는 아키텍처 리뷰, 그리고 외부 포크 기여가 많은 레포에서는 Secret 접근 제한 때문에 부적합하거나 pull_request_target 같은 별도 설계가 필요합니다. 무료로 빠르게 자동 리뷰를 붙이고 싶다면 우선 로컬 claude review부터 써보고 Actions로 확장하는 순서를 권합니다.
더 깊게 공부하려면 어떤 자료를 보면 좋을까요?
GitHub Actions 공식 문서(code.claude.com/docs/en/github-actions)에서 워크플로우 트리거와 permissions 설정을 먼저 확인하고, --output github-pr-comment-update, --severity-threshold, --output json 같은 리뷰 출력 옵션을 CLI 레퍼런스에서 정리해두면 게이팅 자동화에 바로 쓸 수 있습니다. 포크 PR을 안전하게 다루려면 GitHub 문서의 pull_request_target과 GITHUB_TOKEN 권한 모델을 별도로 읽어보세요. 출력 JSON을 jq로 파싱해 critical 이슈를 걸러내는 패턴, 그리고 .claude/review.json의 focus/ignore/rules 스키마가 핵심 학습 키워드입니다.
🎓 관련 강의
Claude Code 완전 정복 — 유데미 강의
이 글에서 다룬 내용을 더 체계적으로 배우고 싶다면 강의를 확인해보세요. 실전 예제 중심으로 구성되어 있습니다.