AI한테 코드 리뷰를 맡기는 건 이제 새 얘기가 아니다. 그런데 “깃허브 PR에 붙여서 자동으로 돌리기”로 범위를 좁히면 얘기가 달라진다. 셋 다 된다고 하는데 들어가는 문이 전부 다르다.

이 글은 그 문을 정리한 글이다.
제미나이·클로드·코덱스가 깃허브 PR 리뷰를 어떻게 제공하는지, 뭘 내야 켜지는지,
리뷰가 어떤 모양으로 오는지, 제3자 벤치마크에서 어디쯤인지.
그리고 같은 PR에 셋을 동시에 붙여서 심어둔 버그를 몇 개 잡는지 봤다.
왜 지금 이걸 봤나
Jev 글에서 툴콜마다 “이거 위험한가”를 묻는 훅을 붙였다.
그걸 쓰다 보니 반대쪽이 궁금해졌다. 코드를 쓰기 전이 아니라 쓰고 난 뒤, PR 단계에서 AI가 뭘 잡아주는가.
회사에서는 리뷰어가 사람이다. 개인 저장소는 리뷰어가 없다.
그래서 개인 저장소에 AI 리뷰어를 하나 붙이려 했는데 셋 중 뭘 켜야 하는지가 생각보다 복잡했다.
한 장으로 보면
| Gemini Code Assist | Claude | Codex | |
|---|---|---|---|
| 뭘 내야 켜지나 | Google Cloud 프로젝트 + 결제계정 (프리뷰 중 무료) | 자동 리뷰는 Team/Enterprise. 개인은 다른 길 셋 | ChatGPT Plus 이상 (Free·Go·API 키 불가) |
| 켜는 곳 | Google Cloud 콘솔 | Claude 관리자 설정 / /install-github-app | chatgpt.com/settings/code-review |
| 트리거 | PR 열리면 자동, /gemini review | @claude review, 저장소별 시점 설정 | 자동 토글, @codex review |
| 뭐가 오나 | 심각도 4단계 + 커밋 가능한 제안 | 인라인 + 요약 + 체크런, 검증 단계 거침 | P0·P1만 인라인 |
| 규칙 파일 | .gemini/config.yaml, styleguide.md | REVIEW.md, CLAUDE.md | AGENTS.md |
| 승인/차단 | 안 함 | 안 함 | 안 함 |
| Martian 온라인 F1 | 52.8% (14위) | 59.7% (7위) | 55.7% (13위) |
셋 다 머지를 막지 않는다. 코멘트만 단다. 이건 공통이다. 나머지는 거의 다 다르다.
제미나이 : “개인 무료” -> Google Cloud 고객용
2025년 2월 구글이 “Gemini Code Assist for GitHub, 개인 무료” 라고 발표했을 때는 깃허브 마켓플레이스에서 앱을 설치하면 끝이었다. 공개·비공개 저장소 다 되고, 설치 10분 뒤부터 리뷰가 달렸다는 한국어 후기도 있다.
지금 그 앱 페이지에 들어가면 문구가 바뀌어 있다.
“This app is only available for Google Cloud customers.”
설정 문서도 Google Cloud 콘솔로 옮겨갔다.
Gemini Code Assist → Agents & Tools → Developer Connect API 켜기 → GitHub OAuth → 저장소 연결.
연결은 us-east1에 만들어지고 유효한 결제계정이 붙은 프로젝트가 필요하다.
요금은 “프리뷰 기간에는 과금 없음”이다. Pre-GA라 약관도 프리뷰 약관이다.
그러니까 지금 제미나이 리뷰의 입장료는 돈이 아니라 Google Cloud 프로젝트와 카드다.
GCP를 이미 쓰는 사람에겐 공짜고 안 쓰는 사람에겐 가장 번거로운 문이다.
켜지고 나면 동작은 셋 중 가장 “리뷰어” 같다.
PR이 열리면 gemini-code-assist[bot]이 리뷰어로 자동 추가되고 초기 리뷰를 단다.
코멘트마다 심각도(Critical / High / Medium / Low)가 붙고 그 자리에서 커밋할 수 있는 제안 코드가 따라온다.
명령은 /gemini review, /gemini summary, /gemini help, 그리고 /gemini 뒤에 질문.
설정은 저장소 루트의 .gemini/config.yaml이다. 공식 기본값은 이렇다.
have_fun: false # true면 PR 요약에 시를 붙인다
memory_config:
disabled: false
code_review:
disable: false
comment_severity_threshold: MEDIUM # LOW / MEDIUM / HIGH / CRITICAL
max_review_comments: -1 # -1 = 무제한
pull_request_opened:
help: false
summary: false
code_review: true
include_drafts: true
ignore_patterns: []
팀 규칙은 .gemini/styleguide.md에 쓴다. 한 가지 제외가 있다.
.github/workflows 아래 파일은 요약도 제안도 안 한다.
클로드 : 길은 넷, 자동 리뷰는 Team부터
클로드는 “깃허브 리뷰”가 하나가 아니다. 공식 문서가 비교표로 넷을 나열한다.
| 길 | 누가 쓸 수 있나 | 어디서 도나 | 비용 |
|---|---|---|---|
| Code Review (관리형) | Team / Enterprise, Owner가 켬 | Anthropic 인프라 | 토큰 기준 usage credits, 정가 없음 |
GitHub Actions (claude-code-action) | API 키 또는 Pro/Max 구독 토큰 | 내 Actions 러너 | 토큰 + Actions 분 |
/code-review N --comment | 모든 플랜 | 내 터미널 세션 | 플랜 사용량 |
/code-review ultra | claude.ai 로그인(Pro/Max) | 클라우드 샌드박스, 15~25분 | 3회 무료, 이후 $5~25/회 |
“PR 열리면 알아서 리뷰”를 원하면 첫 번째인데, 이건 Team 플랜 이상이고 조직 Owner가 켜야 한다.
개인 Pro/Max로는 못 켠다. 대신 돌아가는 방식은 셋 중 가장 공들였다.
여러 에이전트가 diff와 주변 코드를 병렬로 뒤지고, 검증 단계가 후보를 코드와 대조해서 오탐을 떨어뜨리고,
남은 것만 심각도 순으로 인라인 코멘트와 체크런(“Claude Code Review”)으로 올린다.
체크런은 실패로 끝나지 않는다. 승인도 차단도 안 한다.
기본 초점은 “프로덕션을 깨는 버그”고 포맷이나 테스트 커버리지는 안 본다.
개인이 자동 리뷰에 가장 가깝게 가는 길은 두 번째, GitHub Actions다.
Claude Code에서 /install-github-app을 치면 앱 설치, 시크릿 저장, 워크플로 PR 생성까지 해준다.
시크릿은 API 키(ANTHROPIC_API_KEY)거나, claude setup-token으로 만든 구독 토큰(CLAUDE_CODE_OAUTH_TOKEN)이다.
구독 토큰이면 API 과금 없이 내 Pro/Max 사용량에서 나간다.
리뷰 워크플로는 code-review 플러그인을 --comment로 돌리는 한 줄이 핵심이다.
- uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
plugins: "code-review@claude-code-plugins"
prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'
조심할 게 하나 있다. Claude GitHub App은 Actions·Code Review·auto-fix가 권한을 공유해서,
설치할 때 Contents/Issues/PR 쓰기를 포함한 13개 권한을 통째로 수락해야 한다.
부분 수락이 안 된다. 리뷰만 시키고 싶어도 쓰기 권한이 같이 간다.
세 번째와 네 번째는 “자동”이 아니라 “내가 시킬 때”다.
/code-review 1234 --comment는 터미널에서 PR 번호를 주면 리뷰해서 인라인으로 달아준다.
/code-review ultra 1234는 같은 걸 클라우드에서 에이전트 플릿으로 돌리고 발견한 것을 독립 재현해서 검증한다.
15~25분 걸리고 Pro/Max에 1회성 무료 3회가 있다. 그 뒤는 변경 크기에 따라 $5~25.
코덱스 : Plus면 토글 하나
셋 중 문이 가장 낮다.
ChatGPT Plus($20) 이상이면 chatgpt.com/settings/code-review 에서 저장소를 고르고 Automatic review를 켜면 끝이다.
Free·Go 플랜과 API 키로는 안 된다.
“Code Review usage applies only when Codex runs reviews through GitHub”라서 로컬 Codex 사용량과는 따로 센다.
리뷰는 P0·P1만 단다. 표준 깃허브 리뷰 형식으로 인라인에 배지와 굵은 제목, 설명이 붙는다.
나머지 심각도는 아예 안 올린다. 이건 설계 선택이다. 제미나이가 Medium 이상을 다 다는 것과 정반대다.
수동은 @codex review. 잡힌 걸 고치라고 @codex fix the P1 issue 하면 PR을 컨텍스트로 클라우드 작업이 돈다.
규칙은 루트 AGENTS.md에 ## Code Review Rules 섹션으로 쓰고, ###로 묶는다.
서비스별 하위 AGENTS.md도 같이 읽는다. 한국어로 리뷰를 받고 싶으면 여기에 “제목·설명·요약은 한국어, 식별자·경로·명령·인용 코드는 원문 유지”라고 적으면 된다는 사례가 있다.
한도는 흐릿하다. 2026년 4월 요금 페이지에는 “Plus 5시간당 리뷰 20~50회, Pro 100~250, Pro 20x 400~1,000” 표가 있었는데 지금은 사라졌다.
10월에는 OpenAI 자기 저장소에 “Codex usage limits have been reached for code reviews … Credits must be used”라는 봇 코멘트가 달렸다.
한도는 있고, 공개돼 있지 않다.
벤치마크 — 셋 다 중하위권…?
벤더 숫자는 셋 다 좋다.
앤트로픽은 내부에서 리뷰 코멘트 반영률 16%→54%, 오탐 1% 미만이라고 쓴다.
그래서 제3자를 봤다. Martian의 Code Review Bench는 실제 오픈소스 PR에 달린 AI 코멘트를 개발자가 실제로 반영했는가로 채점한다. 2026년 10월 온라인 트래커, 16,237개 채점 PR 기준이다.
| 순위 | 도구 | F1 | 정밀도 | 재현율 |
|---|---|---|---|---|
| 1 | Greptile | 64.0 | 81.1 | 52.8 |
| 2 | Cubic | 63.5 | 69.3 | 58.5 |
| 4 | CodeRabbit | 62.5 | 73.2 | 54.5 |
| 6 | GitHub Copilot | 59.7 | 67.5 | 53.5 |
| 7 | Claude | 59.7 | 68.6 | 52.8 |
| 13 | Codex | 55.7 | 69.5 | 46.4 |
| 14 | Gemini Code Assist | 52.8 | 59.9 | 47.3 |
1~4위가 전부 리뷰 전문 스타트업이고, 빅3는 7·13·14위다. 셋 중에선 클로드가 앞서고 제미나이가 끝이다.
그런데 같은 벤치의 오프라인 모드(숨겨진 버그 50개를 심은 PR, 2026-09-08 기준)로 가면 순서가 뒤집힌다. Gemini 52.8(7위), Claude Code Reviewer 47.7(14위), 코덱스는 목록에 없다.
“개발자가 반영하는가”로 재면 클로드, “숨은 버그를 찾는가”로 재면 제미나이다.
어느 쪽이 내 리뷰에 가까운지는 내 PR로 재는 수밖에 없다.
직접 돌려봤다 – 클로드는 심은 버그로, 코덱스는 실사용으로
제미나이는 실측에서 뺐다.
Google Cloud 콘솔에서 Developer Connect 연결을 만들다 developerconnect.connections.get 권한 거부로 막혔고,
원인은 콘솔에 떠 있던 프로젝트가 다른 계정 소유라는 것이었다.
고칠 수는 있었지만 그 시점에 이미 글감이 충분했다. “들어가는 문이 가장 높다”는 건 겪은 그대로 적는다.
클로드 — 쓰지 않는 공개 저장소에 버그를 심었다
안 쓰는 Python 저장소(뉴스 스크랩 파이프라인)에 Actions 경로로 클로드를 붙였다.
claude setup-token으로 구독 토큰을 만들어 시크릿에 넣고, 공식 예제 워크플로를 그대로 머지했다.
앱 설치부터 여기까지 5분이 안 걸렸고 막히는 곳은 없었다. 권한 13개를 한 번에 수락하는 화면이 유일하게 멈칫한 지점이다.
그리고 PR 세 개를 열면서 각각 버그를 심었다.
PR 본문에는 버그 얘기를 쓰지 않았고, 겉보기엔 평범한 리팩터·수정·기능 추가다.
| PR | 겉보기 | 심은 버그 | 결과 |
|---|---|---|---|
| dedup 리팩터 | 날짜 계산 헬퍼 분리 | range(1, n+1) — 오늘 날짜가 빠짐 | 자동 실행은 0건. @claude review 재요청에 적중, 원복 suggestion |
| 저장소 복원력 | 손상 JSON을 경고로 | 모든 예외 삼킴 → 저장 시 기존 데이터 덮어씀 | 적중. “silent data loss”, 백업 후 덮어쓰기 제안 |
| 환율 변동률 | fx 모듈 분리 | ① 분모가 전일이 아니라 당일 ② int() 절삭 | ①만 적중(한국어, suggestion 포함). ②는 놓침 |
심은 네 개 중 셋을 잡았고, 오탐은 0이었다.
PR마다 코멘트가 정확히 한 개였다. docstring 문구나 로그 메시지 같은 미끼에는 아무 말도 안 했다.
문서가 말하는 “프로덕션을 깨는 버그에만 집중”이 그대로였다.
놓친 하나는 int(curr)로 환율을 절삭하는 것인데, 같은 줄 바로 위의 분모 오류를 잡고 그 줄은 지나갔다.
핀테크에서는 이쪽이 더 흔한 사고다.
PR을 열고 첫 코멘트까지 0.7~0.8분.
Action 안에서 클로드가 돈 시간은 17~23초, 로그에 찍힌 비용은 PR당 $0.06~0.08이었다(구독 토큰이라 실제 청구는 없다). 모델은 Sonnet.
두 가지가 예상과 달랐다. 첫째, dedup PR의 첫 자동 실행은 3턴·4초 만에 아무것도 안 올리고 성공으로 끝났다.
수동으로 다시 시키니 18초 만에 잡았다.
둘째, 같은 설정인데 코멘트 언어가 PR마다 달랐다. 둘은 영어, 하나는 한국어.
언어 지침을 안 줬으니 당연한데, 팀에 붙이려면 CLAUDE.md에 한 줄은 넣어야 한다.
비교용으로 같은 PR을 터미널에서 /code-review 2로도 돌렸다. 117초, $1.21.
심은 버그를 1번 finding으로 잡고, 그 외에 네 건을 더 냈다.
--date로 과거 날짜를 돌릴 때 기준일이 틀린다는 정당한 지적, 같은 파일을 두 번 읽는 비효율, 자정에 걸치면 두 호출의 날짜 창이 어긋난다는 엣지, 테스트가 없다는 것.
Actions의 한 건과 로컬의 다섯 건은 같은 모델의 다른 설정이다. 깃허브에 올라가는 쪽이 훨씬 말을 아낀다.
코덱스 — 회사 저장소에서 2주 동안 실제로 돈 것
코덱스는 심은 버그 대신 실제로 쓰고 있는 저장소(TypeScript, 팀 설정)의 기록을 봤다.
10월 17일부터 11월 3일까지 PR 46개다.
| 수 | |
|---|---|
| PR | 46 |
| 리뷰 완료 | 24 |
| 그중 인라인 코멘트가 달린 PR | 5 (코멘트 7건: P1 1건, P2 6건) |
| “Didn’t find any major issues” | 19 |
| 한도 메시지(“You have reached your Codex usage limits”) | 3 |
| 리뷰 기록이 아예 없는 PR | 19 |
처음 켠 날이 제일 눈에 띄었다. 백로그 두 건을 리뷰하고 나니 그날 열린 PR 두 개에 연달아 한도 메시지가 달렸다.
하나는 20분 뒤, 하나는 18초 뒤. 4월에 있다가 사라진 한도표가 실제로 어디쯤인지 그 하루가 말해줬다.
한도는 닷새 뒤에 한 번 더 걸렸다.
정상일 때 속도는 빠르다.
PR을 열면 10초 안에 “리뷰 중” 상태 코멘트가 붙고, 코멘트가 달리는 PR은 1~2분 안에 달렸다. 7건 중 6건이 P2였다.
문서는 “P0·P1만 게시”라고 돼 있는데, 실제로 온 건 거의 P2였다.
첫 P2는 package.json에서 Cheerio가 Node ≥20.18.1을 요구하는데 README는 “Node 20 이상”이라는 지적이었다.
정확했고, 영어였고, 끝에 “Useful? React with 👍 / 👎”가 붙어 있었다.
리뷰 기록이 없는 19개는 코덱스가 안 돈 게 아니라 연결이 끊긴 구간이 섞여 있다.
11월 1일 PR에는 “To use Codex here, create a Codex account and connect to github”가 달렸다. 팀 워크스페이스에서 연결이 풀리면 조용히 빠진다.
켜져 있는지 확인하는 일도 운영의 일부다.
둘을 나란히 놓으면
| Claude (Actions) | Codex | |
|---|---|---|
| 켜는 데 든 것 | 앱 설치 + 토큰 + 워크플로 PR, 5분 미만 | 설정 화면 토글 |
| 잡은 것 | 심은 버그 4개 중 3개, 오탐 0 | (실사용 2주) 24 리뷰 중 5개 PR에 7건, P1 1·P2 6 |
| 첫 코멘트까지 | 0.7~0.8분 | 1~2분 (한도 시 0.3~20분 뒤 거절 메시지) |
| PR당 코멘트 | 1건 | 0~2건, 5개 중 4개 PR은 0건 |
| 언어 | 지침 없으면 섞임 | 영어 |
| 비용·한도 | 구독 사용량, PR당 ~$0.07 상당 | 플랜 포함, 2주에 한도 3회, 연결 끊김 1회 |
핀테크 쪽에서 보면
리뷰 봇이 머지를 막지 않는다는 건 셋 공통이고, 그래서 셋 다 “게이트”가 아니라 “추가 리뷰어”다.
규제 코드베이스에서 중요한 건 그 다음이다. 리뷰가 어디서 도는가, 코드가 어디로 가는가.
제미나이는 Google Cloud 프로젝트 안에서 돈다.
클로드 관리형은 Anthropic 인프라에서 돌고, ZDR·HIPAA 조직은 아예 못 쓴다.
Actions 경로는 내 러너에서 돈다.
코덱스는 OpenAI 클라우드다. “어떤 모델이 더 잘 잡나”보다 먼저 답해야 하는 질문이 이거다.
지켜볼 것
- 제미나이 프리뷰가 GA로 가면서 개인 무료가 유지되는지. 지금은 “프리뷰 중 무료”라는 말뿐이다.
- 클로드 Code Review가 Pro/Max 개인에게 열리는지. 지금은 Actions나
/code-review --comment로 돌아가야 한다. - 코덱스 리뷰 한도가 다시 공개되는지. 삭제된 표의 자리가 비어 있고, 실사용에서는 2주에 세 번 걸렸다.
참고
- Set up / Use / Customize Gemini Code Assist on GitHub — Google Cloud 문서
- Try free Gemini Code Assist and Gemini Code Review in GitHub — Google 블로그 (2025-02-25)
- Code Review / Code Review costs /
/code-review/ Ultrareview / GitHub Actions — Claude Code 문서 - Review GitHub pull requests with Codex / Pricing — OpenAI 문서
- Code Review Bench — Martian (온라인 트래커 · 오프라인 벤치)
- Codex code review: setup, pricing and how it compares — cubic (2026-10-10)
- Gemini 활용해 GitHub PR 코드 리뷰 받기 — misung.dev
- docs: Codex 리뷰 한국어 지침 추가 — ukyi-app/files PR #6
함께 읽으면 좋은 글
글쓴이 · Plutojoshua
핀테크에서 LLM과 AI 에이전트를 실제 서비스에 적용하는 개발자다. 카카오 AI 앰배서더로 Kanana 모델을 앱에 직접 연동해 검증하고, 비전공자로 시작해 실제 코드와 측정값을 근거로 “왜 그렇게 설계했는지”를 1인칭으로 기록한다. 운영자 소개는 About, 코드는 GitHub에서 볼 수 있다.