alibaba open-code-review 코드리뷰 도입 전 확인할 4가지 실무 체크포인트
Free Resource
PDF · Free
알리바바가 무료로 푼 AI 코드검사관, 믿어도 될까 — 비개발자를 위한 쉬운 가이드
Get the practical guide first, before diving into the full article.
alibaba open-code-review 코드리뷰 도입 전 확인할 4가지 실무 체크포인트
alibaba open-code-review는 결정론이 결함을 잡는 도구가 아니라, 파일 선별과 룰 주입만 결정론이고 판단은 LLM이 맡는 하이브리드입니다. 한국어 설정법과 무료 도입 경로, 확인할 점을 정리했습니다.
"우리 팀 코드리뷰가 지금 병목인데, 이 도구를 붙이면 정말 정확해지나요?" 코딩 에이전트가 PR을 대량으로 쏟아내면서 코드리뷰 자동화를 찾는 개발팀이 늘고 있고, 다들 속으로 이 질문을 하고 있을 겁니다. 공식 벤치마크는 인상적인 숫자를 내세우지만, 그게 자체 발표라는 점과 재현율이 함께 떨어진다는 사실은 잘 안 보이죠. 이 글에서는 결정론이 실제로 보장하는 범위, 벤치마크 숫자를 있는 그대로 읽는 법, 무료로 시작하는 법, 그리고 한국어 코드리뷰 설정·사내 코드 보호까지 순서대로 짚어보겠습니다.
"룰 기반 정적분석기"는 틀렸다: 결정론과 LLM이 실제로 나뉘는 지점
이 저장소는 2026-05-18 공개돼 오늘 기준 120일 만에 스타 26,987개를 모았습니다(일평균 약 225개).
흔히 이 AI 코드리뷰 도구를 "룰 기반 정적분석기에 LLM을 얹은 것"으로 설명합니다. 정확한 설명은 아닙니다.
internal/config/rules/system_rules.json을 직접 열어보면 확인되는 룰 문서는 52개입니다. 이 룰은 AST를 파싱하는 분석기가 아니라 파일 경로 패턴(glob)에 매칭되는 마크다운 지침 문서예요. java.md, python.md처럼 언어별 문서가 있고, 매칭된 문서 내용이 그대로 프롬프트에 주입됩니다. 결함을 판단하는 건 코드가 아니라 이 프롬프트를 받은 LLM이고요.
공식 아키텍처 문서가 밝힌 파이프라인을 결정론과 LLM으로 나누면 이렇습니다.
| 단계 | 담당 | 하는 일 |
|---|---|---|
| 파일 필터링 | 결정론 | 5게이트(바이너리·제외·포함·미지원 확장자·기본 경로)로 리뷰 대상 확정 |
| 룰 매칭 | 결정론 | 4계층 우선순위로 파일마다 룰 문서 선택 |
| 시맨틱 그룹핑 | LLM | 파일 메타데이터만 보고 그룹 구성(실패 시 파일당 1그룹 폴백) |
| 리뷰 본체 | LLM | 그룹별 sub-agent가 결함을 직접 판단 |
| 코멘트 라인 확정 | 결정론 | 슬라이딩 윈도 매칭으로 라인 번호 산출 |
| 재위치·오탐 필터 | LLM | 라인 재앵커링, 명백한 오탐 제거 |
여기서 짚을 대목이 하나 있습니다. README는 "스마트 파일 번들링"을 마치 결정론 항목처럼 소개하는데, 아키텍처 문서는 그 번들링이 LLM 호출 1회라고 명시해요. 실패하거나 응답을 파싱할 수 없으면 파일당 1그룹으로 조용히 폴백하죠. 홍보 문구와 구현 설명 사이에 온도차가 있는 셈입니다.
토큰 예산도 3중으로 결정론이 관리합니다. 선별 단계에서 diff가 토큰 한도의 80%를 넘으면 제외하고, 그룹 합이 프롬프트 한도를 넘으면 단일 파일 그룹으로 쪼개고, LLM 호출 직전 메시지가 다시 80%를 넘으면 요청 자체를 건너뛰고 경고만 남깁니다. 이 3중 가드가 없었다면 비용은 통제되지 않았을 거예요.
저장소 설명에는 "알리바바 규모에서 실전 검증됐다(battle-tested)"는 문구와 "지난 2년간 수만 명의 개발자에게 서비스하며 수백만 건의 결함을 찾아냈다"는 문구가 함께 등장합니다. 둘 다 저장소 측 주장이고, 외부 감사로 확인된 수치는 아닙니다. 참고로 이름이 같은 다른 프로젝트(spencermarx/open-code-review)도 있는데, 이 글은 알리바바가 공개한 저장소만 다룹니다.
벤치마크로 보는 실력: 정밀도는 오르고 재현율은 내려간다
README의 벤치마크는 이미지로만 실려 있어 숫자를 읽기 어렵지만, 공식 사이트 소스코드(BenchmarkSection.tsx)에는 원본 표가 그대로 들어 있습니다. AACR-Bench(오픈소스 저장소 50개, 실제 PR 200개, 정답 결함 1,505건, 논문 arXiv 2601.19494)로 측정한 수치 일부를 옮기면 이렇습니다.
| 실행 도구 | 모델 | 정밀도 | 재현율 | 평균 토큰 |
|---|---|---|---|---|
| Open Code Review v1.3.1 | Claude-4.6-Opus | 33.90% (301/889) | 20.00% (301/1505) | 385K |
| Claude Code v2.1.169 | Claude-4.6-Opus | 7.23% (435/5980) | 28.90% | 5,664K |
같은 모델(Claude-4.6-Opus)을 기준으로 비교하면 하네스만 바꿔도 정밀도가 7.23%에서 33.90%로 오르고, 토큰은 약 1/14.7배, 소요 시간은 약 1/9.5배로 줄어듭니다. 대신 재현율은 반대로 28.90%에서 20.00%로 떨어지죠. 정밀도를 올린 대가로 놓치는 결함이 늘어난다는 뜻입니다.
절대 수준도 냉정하게 봐야 합니다. 여덟 개 조합 중 최고 F1은 25.10%밖에 안 됩니다. 정밀도 33.90%는 "지적 889건 중 301건만 정답 집합에 들어간다"는 의미이고, 나머지 588건(66.1%)은 이 벤치마크 기준으로 오탐 처리돼요. 비교 대상인 Claude Code는 5,980건 중 5,545건(92.7%)이 정답 집합 밖입니다. 정답 집합이 1,505건으로 고정돼 있어 실제로는 유효한데 오탐으로 잡히는 지적도 섞여 있을 수 있다는 점은 감안해야 합니다.
토큰 절감 폭을 인용할 때도 모델 쌍을 밝혀야 정확합니다. Claude-4.6-Opus 쌍은 약 1/14.7배지만 Claude-4.8-Opus 쌍은 약 1/5.9배로, README가 말하는 "약 1/9"는 전체 평균치로 보입니다. 그리고 결정적으로, 이 벤치마크의 제작자·데이터셋 배포자·비교 대상 도구의 저자가 전부 알리바바예요.
이 격차는 실제로 논쟁이 됐습니다. Hacker News 메인 스레드(2026-06-05 게시, 오늘 기준 102일 전, 284 points·73 comments)에서 사용자 eranation이 제3자 벤치마크로 직접 돌려 재현율 약 74%, 정밀도 약 12%, F1 약 20%를 보고했습니다. 공식 발표(정밀도 33.90%)와 크게 어긋난 수치였습니다. 프로젝트 리드 lizhengfeng101은 테스트된 버전에 툴 호출 이상이 있어 오탐률에 영향을 줬다고 인정하고 수정했다고 답했고요. 스레드의 최대 쟁점도 중국 벤더 신뢰가 아니라 이 오탐 논쟁이었습니다. evolve-maz의 말을 빌리면, "모든 줄을 보안 버그로 신고하면 재현율은 100%지만 8건 중 7건이 멀쩡하면 사람들은 경고 전체를 무시하게 됩니다."
한국어 코드리뷰, 정말 되나요
됩니다. 명령 한 줄이면 끝나요.
ocr config set language 한국어
구현을 직접 확인해 보면(internal/config/template/template.go의 ApplyLanguage), 이 명령이 하는 일은 입력받은 문자열을 그대로 "Always respond in <값>." 형태로 만들어 시스템 프롬프트 끝에 붙이는 것뿐입니다. 값에 어떤 제약도 걸려 있지 않거든요.
다만 공식 문서의 예시는 中文과 English 두 가지뿐입니다. 한국어는 문서에 명시된 값은 아니지만 구현상 막혀 있지도 않아요. GitHub Actions에서 쓸 때는 language 입력값으로 넘기면 되고(기본값은 English), 문서 자체도 한국어판이 있습니다(docs/i18n/README.ko-KR.md).
실제 출력 품질은 별개 문제입니다. 언어 지시는 프롬프트 레벨에서 걸리지만, 결과 문장이 얼마나 자연스러운지는 붙인 LLM의 한국어 실력에 달려 있으니까요. 도입 전에 샘플 PR 몇 개로 직접 확인해 보는 편이 안전합니다.
사내 코드를 외부로 보내지 않는 두 가지 경로
보안팀 승인이 코드리뷰 도구 도입의 첫 관문인 경우가 많습니다. "우리 회사 코드를 AI한테 보내도 되나요?"라는 질문에 이 도구는 두 가지 답을 준비해 뒀어요.
로컬 모델: Ollama 같은 OpenAI 호환 엔드포인트를 붙이면 diff가 사내 서버 밖으로 나가지 않습니다. 다만 조건이 하나 있어요. 모델이 네이티브 tool calling(함수 호출)을 지원해야 합니다. 이 도구는 리뷰 전 과정을 툴 호출로 돌리기 때문에, 텍스트로 툴 호출을 흉내 내는 모델은 프롬프트를 아무리 손봐도 작동하지 않습니다. 공식 FAQ는 deepseek-r1 계열을 실패 사례로, qwen3 계열을 동작 확인 사례로 명시해 뒀습니다.
위임 모드(delegate): 이 도구는 파일 선별과 룰 해석만 담당하고, 실제 리뷰는 이미 쓰고 있는 Claude Code·Codex·Cursor 구독이 수행합니다. 도구 자체의 LLM API 키가 아예 필요 없어요. 공식 문서도 "구독제 AI 코딩 에이전트를 위해 설계했다"고 밝히고 있습니다.
두 경로 다 diff와 코드 조각은 설정한 엔드포인트로 나갑니다. 완전히 격리된 방법은 아니고, "어디로 나가는지를 우리가 정할 수 있다" 정도로 이해하는 편이 정확해요.
무료로 시작하는 세 가지 방법
소프트웨어 자체는 Apache-2.0 라이선스로 무료입니다. 좌석 과금이나 쿼터도 없고요. 실제 비용은 리뷰를 돌리는 LLM의 토큰비인데, 벤치마크 기준 리뷰 1건당 334K~743K 토큰이 듭니다(npm 주간 다운로드는 93,428회로, 설치형 CLI치고 채택 신호가 작지 않습니다). 이 비용을 아예 안 쓰거나 줄이는 방법이 세 가지 있어요.
- 위임 모드: 추가 API 비용이 0입니다. Claude Code·Codex·Cursor 구독을 이미 쓰고 있다면 가장 먼저 시도해볼 경로예요.
- 로컬 모델: Ollama로 자체 호스팅한 모델을 붙이면 API 요금 자체가 발생하지 않습니다. 대신 서버 자원과 모델 성능은 감수해야 하고요.
--effort low: 클라우드 API를 쓰더라도 effort 프리셋을 낮추면 비용이 크게 줄어듭니다. 기본값(medium)은 2라운드, low는 1라운드만 돌아 라운드 수에 거의 비례해 비용이 내려가요.include목록으로 리뷰 대상을 좁히거나 Plan 단계 임계값을 올리는 것도 보조 레버입니다.
개발자 10명 규모 팀이 CodeRabbit Essentials를 연간 결제로 쓰면 월 $240입니다. 같은 팀이 위임 모드를 쓰면 소프트웨어와 추가 API 비용 모두 0이지만, 대신 CI 자동 게시 배선과 운영을 직접 해야 해요. 관리형 SaaS를 쓸지 직접 운영할지의 선택은 결국 이 트레이드오프로 좁혀집니다.
도입 전 반드시 확인할 것
한 줄 요약: alibaba open-code-review는 시크릿 마스킹이 없고, 지적의 상당수가 오탐일 수 있고, 재현율이 낮고, 버전이 빠르게 바뀝니다. 네 가지 모두 도입 전 확인 대상입니다.
장점만 보고 붙이면 곤란해지는 지점이 네 가지 있습니다.
시크릿 마스킹이 없습니다. 공식 FAQ가 명시하는 사실이에요. diff에 토큰이나 키가 섞여 있으면 그대로 LLM 엔드포인트로 전송됩니다. exclude 설정과 pre-commit 필터가 사실상 유일한 방어선이고, 마스킹 기능은 로드맵에 올라 있는 미래 계획이에요(2026-09-15에 시크릿 경로 제외 커밋이 하나 올라오긴 했지만, 릴리스 반영 여부는 확인하지 못했습니다).
오탐이 적지 않습니다. 벤치마크 정답 집합 기준으로 지적의 3분의 2가량이 오탐으로 잡힙니다. 이걸 PR 머지 차단 조건으로 걸면 팀이 곧 경고를 무시하게 되고요. Hacker News 논쟁의 핵심도 정확히 이 지점이었습니다.
재현율이 낮습니다. 최고 조합도 정답 결함의 20%밖에 못 잡습니다. 보안에 민감한 변경분을 이 도구 하나로 통과시키면 안 됩니다. 재현율을 높이는 Ultra Mode가 로드맵에 있지만, 이 글을 쓰는 시점(2026-09-15)엔 아직 계획 단계예요.
버전이 빠르게 움직입니다. 12일 동안 릴리스가 10회 나왔습니다. 팀에 도입한다면 버전을 고정해 두고 올리는 절차부터 정하는 편이 안전해요.
벤치마크 수치도 한 번 더 짚을 필요가 있습니다. 제작자, 데이터셋 배포자, 비교 대상 도구의 저자가 모두 알리바바입니다. 자체 발표라는 사실 자체가 결함은 아니지만, 팀 도입을 결정하기 전에는 우리 코드베이스로 직접 며칠 돌려 오탐률을 눈으로 확인하는 절차를 건너뛰지 않는 게 좋습니다.
마무리
alibaba open-code-review는 정적분석기와 LLM을 단순히 이어붙인 도구가 아닙니다. 결정론은 판단하지 않고, 판단이 흔들릴 여지를 코드로 좁히는 역할만 맡아요. 그 좁히기 덕분에 정밀도가 오르고 토큰이 줄어든다는 게 이 도구가 실제로 증명한 부분이고, 벤치마크가 자체 발표라는 점과 재현율이 낮다는 점은 도입 전 반드시 안고 가야 할 몫입니다.
우리 팀 상황에 맞는지부터 따져보셔도 충분합니다. 판단에 필요한 기준은 위에 정리해 뒀어요.
자주 묻는 질문 (FAQ)
Q: 오탐이 많다는데 실제로 어느 정도인가요?
공식 벤치마크 기준으로는 지적 889건 중 301건만 정답 집합에 들어가 정밀도 33.90%입니다. 그런데 Hacker News에서 한 사용자가 제3자 벤치마크로 직접 돌린 결과는 정밀도 약 12%로 더 낮게 나왔고, 프로젝트 리드가 툴 호출 버그를 인정하고 수정한 적이 있습니다. 버전마다 편차가 클 수 있으니 도입 전 직접 테스트를 권합니다.
Q: 룰 문서가 중국어라 못 읽는다는 얘기를 봤는데, 지금도 그런가요?
공개 초기에는 실제로 룰 문서가 중국어였고, Hacker News에서 이를 두고 불만이 나왔습니다. 이후 프로젝트 리드가 번역을 메인라인에 반영해서, 확인 시점(2026-09-15) 기준 rule_docs 문서는 영어로 돼 있습니다. 룰이 자연어 문서라 팀 언어로 다시 쓰는 것도 가능해요.
Q: 한국어 코드리뷰 코멘트를 받을 수 있나요?
ocr config set language 한국어 명령으로 가능합니다. 공식 문서 예시는 중국어·영어뿐이지만 구현상 값 제한이 없어 한국어도 그대로 적용돼요. 다만 출력 품질은 사용하는 LLM의 한국어 실력에 좌우되므로 샘플 PR로 먼저 확인하는 게 좋습니다.

