AI 코드리뷰는 흔한 버그를 잘 걸러내지만, 실제 버그 50개를 시험한 Greptile 벤치마크에서 최상위 도구조차 치명적 버그는 58%, 중위권 도구는 절반 수준만 잡아냈다. 탐지율이 심각도가 올라갈수록 떨어지기 때문에 'AI 리뷰 통과=안전'이라는 등식은 성립하지 않는다. 인가 흐름·비즈니스 규칙·동시성처럼 맥락이 필요한 부분은 AI 통과 여부와 상관없이 사람이 다시 확인해야 한다.
AI 코드리뷰는 흔한 실수를 값싸게 걸러준다. 다만 걸러주는 범위가 곧 안전 보증은 아니다. 코드 리뷰 도구 다섯 종을 실제 버그 50개로 시험한 Greptile 벤치마크에서 가장 잘 잡은 도구가 82%, 중위권인 Copilot이 54%, 하위권 CodeRabbit이 44%였다. 최상위 도구조차 다섯 개 중 한 개는 놓쳤고, 중위권은 절반 수준이다.
그래서 판단의 기준은 "AI가 통과시켰는가"가 아니라 "AI가 무엇을 확인했고 무엇은 확인하지 못했는가"여야 한다.
Photo by Arnold Francisca on Unsplash
AI가 안정적으로 잡아내는 영역은 대체로 문법과 기능 오류, 자주 반복되는 버그 패턴, 스타일과 포맷, 그리고 시그니처가 뚜렷한 일부 보안 문제다. 하드코딩된 자격증명이나 전형적인 SQL 인젝션처럼 코드 표면에 흔적이 남는 유형이 여기 해당한다.
이런 결함은 사람이 눈으로 훑기엔 지루하고 놓치기 쉬운 반면, 패턴 매칭에는 잘 맞는다. AI를 1차 필터로 둘 가치가 분명한 지점이다. 반복 검토의 피로를 덜어주는 것만으로도 몫을 한다.
문제는 심각도가 올라갈수록 탐지율이 떨어진다는 점이다. 같은 Greptile 벤치마크를 심각도별로 나눠 보면 역전이 드러난다.
| 심각도 | 상위(Greptile) | 중위(Copilot) | 하위(CodeRabbit) |
|---|---|---|---|
| High | 100% | 57% | 36% |
| Critical | 58% | 50% | 33% |
전체 82%를 기록한 도구도 치명적 버그 구간에서는 58%로 내려앉는다. 눈에 잘 띄는 결함은 잘 잡지만, 서비스를 실제로 무너뜨리는 종류는 절반 남짓만 걸러낸다는 뜻이다.
이유는 이런 결함이 맥락에 의존하기 때문이다. 연구에 따르면 LLM은 문법과 기능에는 강하지만 보안의 맥락을 이해하지 못한 채 훈련 데이터의 패턴을 재현한다. 특히 서비스 경계를 넘는 인가 흐름이나 마이크로서비스 간 신뢰 관계는 추적하지 못한다. 코드는 문법적으로 멀쩡하고 동작도 하지만, 권한 검사가 빠졌거나 신뢰 경계가 어긋난 경우를 그냥 지나친다.
그래서 AI 통과 여부와 무관하게 사람이 눈으로 확인해야 하는 항목을 미리 정해두는 편이 낫다. 다음은 AI가 구조적으로 약한 영역이다.
한 가지 함정이 더 있다. AI 리뷰는 "거의 맞지만 미묘하게 틀린" 코멘트를 낸다. Stack Overflow의 2025년 개발자 설문(약 4만9천 명)에서 AI 출력의 정확성을 신뢰한다는 응답은 29%로 전년 40%에서 떨어졌고, 가장 큰 불만으로 바로 이 near-correct 답과 그로 인한 디버깅 시간 낭비가 꼽혔다. 그럴듯한 지적을 무비판적으로 반영하면 없던 버그를 새로 심을 수도 있다.
정리하면 배치가 명확하다. AI에게는 값싸게 자동화되는 1차 필터를 맡기고, 사람은 맥락 검증에 집중하는 구도다.
AI 리뷰가 깨끗하다고 통과시키기보다, 위 다섯 항목이 이번 변경과 관련 있는지를 먼저 본다. 관련이 없으면 AI 결과를 신뢰해 빠르게 넘기고, 관련이 있으면 AI 통과 여부와 상관없이 사람이 그 부분만 집중해서 읽는다. 84%의 개발자가 AI 도구를 쓰거나 쓸 계획이라고 답한 지금, 관건은 도구를 쓰느냐가 아니라 무엇을 사람 몫으로 남기느냐다. AI가 놓치는 자리를 알고 있으면, 리뷰 속도를 얻으면서도 정작 중요한 결함을 흘려보내지 않을 수 있다.