본문 바로가기

인공지능

에이전틱 코드 리뷰에서 인간과 AI는 어떻게 다를까? 27만 건의 실제 리뷰 대화가 보여준 역할 분담

728x90
반응형
728x170

AI가 코드 리뷰에 참여하는 방식이 달라지고 있습니다. 단순히 코드를 분석해 오류를 알려주는 수준을 넘어, 결함을 찾아내고 수정안까지 제시하는 AI 에이전트가 실제 개발 프로젝트의 리뷰 과정에 참여하고 있습니다.

그렇다면 AI 코드 리뷰는 인간의 코드 리뷰를 대체할 수 있을까요?

300개 성숙한 오픈소스 프로젝트에서 5만 4천여 개의 PR과 27만 8천여 개의 인라인 코드 리뷰 대화를 분석한 연구는 흥미로운 결과를 보여줍니다. AI는 인간보다 많은 수정안을 제시하고 코드의 문제를 빠르게 찾아냈지만, 실제 수정안 채택률은 인간보다 낮았습니다. 반면 인간은 코드 자체의 문제뿐 아니라 구현 의도, 테스트 방식, 프로젝트 관례 등을 확인하며 리뷰를 대화로 이어가는 모습을 보였습니다.

이 연구 결과를 통해 에이전틱 코드 리뷰에서 AI와 인간이 어떤 차이를 보이는지, 그리고 두 역할을 어떻게 나누는 것이 적절한지 살펴보겠습니다.

반응형

300개 오픈소스 프로젝트의 코드 리뷰를 분석하다

이번 연구는 2022년부터 2025년 11월까지 300개의 성숙한 오픈소스 프로젝트를 대상으로 진행됐습니다.

연구진은 총 54,330개의 PR과 278,790개의 인라인 코드 리뷰 대화를 분석했습니다. 여기서 중요한 점은 PR에 포함된 모든 댓글을 분석한 것이 아니라는 것입니다.

특정 코드 변경에 직접 연결된 인라인 리뷰 대화만 수집해 리뷰어가 어떤 피드백을 남겼는지, 개발자가 어떻게 응답했는지, 실제 코드에 수정이 반영됐는지를 추적했습니다.

또한 공식적으로 확인된 16개의 AI 코드 리뷰 봇을 식별하고, PR 작성자와 첫 리뷰어가 인간인지 AI 에이전트인지에 따라 리뷰 대화를 분류했습니다.

분석 결과 AI 에이전트가 시작한 리뷰는 전체의 55.7%를 차지했습니다. 반면 AI 에이전트 계정이 직접 작성한 PR은 2.6%에 불과했습니다.

즉, 현재 분석 대상에서는 AI가 직접 코드를 작성하는 것보다 기존 개발자가 작성한 코드를 리뷰하는 역할로 더 많이 활용되고 있음을 확인할 수 있습니다.

AI는 결함을 찾고, 인간은 구현 의도를 묻는다

AI와 인간의 가장 큰 차이는 코드 리뷰에서 무엇을 중요하게 바라보느냐에 있었습니다.

AI 리뷰 코멘트의 95% 이상은 코드 개선과 결함 탐지에 집중됐습니다. 코드를 살펴보고 문제가 될 수 있는 부분을 찾아낸 뒤 수정안을 제시하는 방식입니다.

인간 역시 코드 개선과 결함 탐지를 중요하게 다뤘지만 여기에 다른 역할이 추가됐습니다.

대표적으로 다음과 같은 내용입니다.

  • 왜 이렇게 구현했는지 구현 의도 확인
  • 테스트 방식 확인
  • 기존 코드와 저장소의 관례 확인
  • 과거의 설계 결정이나 프로젝트 맥락 고려
  • 작성자와 여러 차례 대화하며 수정 방향 조율

특히 인간 리뷰에서는 프로젝트 고유의 지식을 전달하는 모습도 나타났습니다.

최근 변경된 클래스명이나 저장소 내부의 관례처럼 코드만 봐서는 쉽게 알기 어려운 지식을 리뷰 과정에서 전달하는 것입니다.

반면 AI는 의도가 불분명한 상황에서도 질문을 통해 맥락을 확인하기보다는 바로 수정안을 제시하는 경향을 보였습니다.

결국 AI가 바라보는 리뷰는 "이 코드에 문제가 있는가?"에 가깝고, 인간의 리뷰는 여기에 "왜 이렇게 만들었으며 이 프로젝트에서는 어떤 방식이 적절한가?"라는 질문이 더해지는 형태라고 볼 수 있습니다.

AI 리뷰는 더 길지만 대화로 이어지는 경우는 적었다

AI가 인간보다 더 많은 정보를 제공한다는 점도 연구에서 확인됐습니다.

인간 리뷰 코멘트는 코드 한 줄당 평균 4.1토큰이었던 반면 AI 리뷰는 평균 29.6토큰이었습니다.

AI 리뷰에는 문제에 대한 설명뿐 아니라 심각도, 요약 제목, 도구 출력, 관련 파일 목록 등이 함께 포함되는 경우가 많았습니다.

따라서 AI가 남기는 리뷰는 인간보다 훨씬 길어졌습니다.

하지만 리뷰가 길다는 것이 반드시 더 좋은 리뷰를 의미하지는 않았습니다.

AI가 시작한 리뷰의 85.2~86.7%는 첫 번째 코멘트 이후 추가 응답 없이 종료됐습니다. 반면 인간이 AI 에이전트가 작성한 코드를 리뷰하는 경우에는 인간 작성 코드를 리뷰할 때보다 대화가 평균 11.8% 더 길어졌습니다.

이 결과는 AI와 인간이 리뷰 이후의 상호작용에서도 차이를 보인다는 것을 보여줍니다.

인간 리뷰는 단순히 문제를 지적하는 데서 끝나지 않고 작성자와 의견을 주고받으면서 실제 수정 방향을 조율하는 과정으로 이어지는 경우가 많았습니다.

반면 AI 리뷰는 많은 내용을 한 번에 전달하지만 이후 대화로 발전하는 경우는 상대적으로 적었습니다.

수정안을 많이 제시한다고 좋은 리뷰는 아니다

AI 코드 리뷰에서 가장 주목할 만한 부분은 실제 수정안 채택률입니다.

연구에서 AI 리뷰어가 제시한 수정안의 실제 채택률은 16.6%였습니다. 인간 리뷰어의 수정안 채택률은 56.5%였습니다.

결함 수정 제안만 따로 비교해도 차이는 비슷했습니다.

인간 리뷰어의 제안은 53.7%가 실제로 채택됐지만 AI 리뷰어의 제안은 16.7%가 채택됐습니다.

AI가 더 많은 수정안을 만들어낸다는 점만 놓고 보면 상당히 효율적인 것처럼 보일 수 있습니다. 하지만 실제 개발자가 받아들여 코드를 수정하는 비율까지 살펴보면 다른 결과가 나타납니다.

채택되지 않은 AI 제안의 표본을 분석한 결과, 28.7%는 적용할 경우 빌드가 깨지거나 프로젝트 동작과 충돌할 수 있는 잘못된 제안이었습니다.

또 다른 24.0%는 AI가 문제를 지적한 것 자체는 맞았지만 개발자가 AI가 제시한 방법과 다른 방식으로 수정한 경우였습니다.

즉, AI가 문제를 발견했다는 사실과 AI가 제시한 해결 방법이 적절하다는 것은 별개의 문제입니다.

AI는 코드에서 이상해 보이는 부분을 빠르게 찾아낼 수 있지만, 해당 코드가 실제 프로젝트에서 의도된 동작인지 또는 어떤 방식으로 수정해야 프로젝트의 기존 구조와 충돌하지 않는지는 별도로 판단해야 합니다.

정상적인 코드도 오류로 판단할 수 있다

AI 코드 리뷰가 어려움을 겪는 또 하나의 이유는 프로젝트 자체의 맥락입니다.

연구에서는 AI가 저장소 구조와 빌드 설정을 충분히 파악하지 못해 실제로는 정상적으로 동작하는 코드를 오류로 지적하는 사례가 확인됐습니다.

코드 한 부분만 놓고 보면 문제가 있어 보이지만 프로젝트 전체의 구조나 설정을 고려하면 의도된 구현일 수 있기 때문입니다.

개발자가 코드를 작성할 때는 현재 코드뿐 아니라 기존 코드, 프로젝트 관례, 빌드 환경, 과거의 결정 등을 함께 고려합니다.

AI가 이러한 맥락을 충분히 활용하지 못한다면 기술적으로 그럴듯한 수정안을 제시하더라도 실제 프로젝트에는 적합하지 않을 수 있습니다.

따라서 AI 리뷰에서 중요한 것은 얼마나 많은 문제를 발견했는지가 아니라, 발견한 문제 가운데 실제로 수정할 가치가 있는 문제를 얼마나 정확하게 선별하느냐라고 볼 수 있습니다.

채택된 AI 수정안도 품질을 보장하지 않는다

여기서 한 가지 더 주의할 부분이 있습니다.

AI의 수정안이 실제 코드에 반영됐다고 해서 그 수정안이 인간이 작성한 수정안보다 더 좋은 것은 아닙니다.

실제로 반영된 수정안을 비교했을 때 AI가 제시한 수정안은 인간의 수정안보다 코드 크기와 분기 복잡도를 더 많이 늘리는 경향을 보였습니다.

즉, "AI의 제안이 실제 코드에 반영됐다"는 사실과 "AI가 더 나은 코드를 만들었다"는 것은 같은 의미가 아닙니다.

수정안이 적용된 이후에도 코드가 얼마나 복잡해졌는지, 이후 유지보수에 어떤 영향을 주는지 등을 별도로 살펴볼 필요가 있습니다.

이 때문에 AI 코드 리뷰 결과를 단순히 채택 여부만으로 평가하는 데에는 한계가 있습니다.

에이전틱 코드 리뷰에서는 역할을 나누는 것이 중요하다

이번 연구 결과를 종합하면 AI와 인간은 서로 다른 영역에서 강점을 보입니다.

AI가 잘할 수 있는 영역은 대량의 코드 변경을 빠르게 검사하고 반복적인 문제를 찾아내는 것입니다.

특히 다음과 같은 작업에서 활용할 수 있습니다.

  • 대량 변경에 대한 1차 검사
  • 반복적인 코드 개선 항목 탐지
  • 결함 후보 탐지
  • 문제에 대한 수정안 생성

반면 인간이 계속 담당해야 할 역할도 분명합니다.

  • 변경 의도와 설계 이유 확인
  • 프로젝트 고유의 맥락과 과거 결정 적용
  • 프로젝트 지식과 관례 전달
  • 작성자와의 후속 대화
  • AI가 제시한 제안의 유효성 판단
  • 최종적인 해결 여부 판단

이러한 역할을 보면 AI는 인간 리뷰어를 대신하는 최종 판정자라기보다 결함 후보를 넓게 탐지하는 센서에 가까운 역할을 수행한다고 볼 수 있습니다.

AI가 넓은 범위의 코드를 빠르게 살펴보고 의심스러운 부분을 찾아내면, 인간은 그 결과를 바탕으로 실제 프로젝트의 맥락과 의도를 확인하는 방식입니다.

AI 코드 리뷰의 품질을 높이려면

연구에서는 AI 리뷰 품질을 높이기 위한 방향도 제시합니다.

우선 AI가 코드만 보는 것이 아니라 저장소의 빌드 설정, 과거 리뷰, 프로젝트 관례 등을 활용할 수 있도록 하는 것이 중요합니다.

코드 한 부분만 분석하는 것보다 해당 코드가 속한 프로젝트의 맥락을 함께 이해할 수 있어야 불필요하거나 잘못된 제안을 줄일 수 있기 때문입니다.

또한 AI가 가능한 많은 문제를 장황하게 설명하는 것보다 검증된 문제를 짧고 명확하게 전달하는 것도 중요합니다.

AI 리뷰에서 정보량을 늘리는 것 자체가 목적이 되어서는 안 됩니다.

실제 개발자가 확인하고 판단해야 하는 정보가 많아질수록 리뷰 과정에서 추가적인 부담이 발생할 수 있기 때문입니다.

따라서 AI 코드 리뷰의 핵심은 "더 많이 지적하는 것"이 아니라 "실제로 확인할 가치가 있는 문제를 정확하게 전달하는 것"에 있습니다.

이번 연구 결과를 그대로 일반화해서는 안 되는 이유

이번 연구 결과는 의미 있는 데이터를 제공하지만 적용 범위에는 한계가 있습니다.

먼저 인간 계정이 외부 LLM을 활용해 작성한 코드나 리뷰까지 구분할 수는 없었습니다.

또한 AI가 작성한 PR도 에이전트 계정이 직접 제출한 경우만 식별했기 때문에 일반적인 AI 보조 코딩 전체를 대표한다고 보기는 어렵습니다.

연구 대상 역시 공개 오픈소스 프로젝트였습니다.

따라서 기업 내부 저장소나 소규모 프로젝트에 동일한 결과가 나타난다고 단정하기는 어렵습니다.

코드 복잡도 분석 역시 파일 단위 메트릭을 기준으로 했으며 시스템 전체의 설계 품질이나 보안 품질을 직접 측정한 것은 아닙니다.

따라서 이번 연구는 AI 코드 리뷰의 모든 상황을 설명하는 절대적인 기준이라기보다, 실제 오픈소스 프로젝트에서 인간과 AI가 어떤 방식으로 리뷰하고 있는지 보여주는 분석 결과로 이해하는 것이 적절합니다.

728x90

에이전틱 코드 리뷰의 핵심은 인간과 AI의 시너지

이번 연구가 보여주는 가장 중요한 점은 AI와 인간이 코드를 다르게 리뷰한다는 것입니다.

AI는 많은 코드를 빠르게 살펴보고 결함 후보를 찾아내며 수정안까지 제시하는 데 강점을 보입니다. 반면 인간은 코드만 바라보는 것이 아니라 구현 의도와 프로젝트의 관례, 테스트 방식, 과거의 결정 등을 함께 고려합니다.

AI가 인간보다 더 많은 수정안을 제시했지만 실제 채택률은 낮았고, 인간의 리뷰는 상대적으로 짧더라도 후속 대화와 맥락 확인으로 이어지는 경우가 많았습니다.

따라서 현재의 에이전틱 코드 리뷰에서 중요한 것은 AI에게 인간의 리뷰를 그대로 맡기는 것이 아닙니다.

AI는 대량 변경을 빠르게 검사하고 결함 후보를 찾아내는 역할을 맡고, 인간은 그 결과를 프로젝트의 맥락과 연결해 실제 문제인지 판단하고 최종 수정 방향을 결정하는 방식이 더 적합합니다.

결국 AI 코드 리뷰의 가치는 인간 리뷰어를 없애는 데 있기보다 인간이 모든 코드를 처음부터 확인해야 하는 부담을 줄이고, 더 중요한 판단과 대화에 집중할 수 있도록 돕는 데서 찾을 수 있습니다.

앞으로 에이전틱 코드 리뷰의 품질을 높이기 위해서는 AI의 탐지 범위를 넓히는 것만큼이나 프로젝트의 빌드 설정, 과거 리뷰, 내부 관례와 같은 맥락을 얼마나 잘 활용할 수 있는지가 중요해질 것으로 볼 수 있습니다.

300x250

https://arxiv.org/abs/2603.15911

 

Human-AI Synergy in Agentic Code Review

Code review is a critical software engineering practice where developers review code changes before integration to ensure code quality, detect defects, and improve maintainability. In recent years, AI agents that can understand code context, plan review ac

arxiv.org

728x90
반응형
그리드형