Pull Request에 AI Code Review 자동화 구축하기


팀 규모가 커지거나 배포 빈도가 잦아질수록 코드 리뷰는 병목 지점이 되기 쉽다.
우리는 소규모 팀이기 때문에 매번 코드 리뷰를 하고 Merge 하는 것은 현실적으로 힘든 일이었다.

또한 우리 같은 경우, 나는 잘 돌아갈 것이라고 생각한 코드가 예상치 못한 곳에서 버그를 일으키는 일이 많았다.
아니면 Typo 같은 것도 가끔 있어서 코드가 제대로 동작하지 않는 일도 있었다.

이런 문제를 해결하기 위해 GitHub Pull Request를 열면 자동으로 AI가 코드 리뷰 코멘트를 남겨주는 환경을 구축했다.

PR을 올리면 아래와 같은 리뷰가 자동으로 달린다.

변경 사항에 대해 구조적으로 불안한 부분, 잘못 작성된 부분 등을 AI가 정리해서 알려준다.

그러면 개발자는 하나하나 다 읽어보고 해결 후 Resolve conversation으로 해당 리뷰를 완료처리 해야햔다.

하지만 생각보다 쓸데없는 리뷰를 하는 경우도 많아서 아직은 품질 높은 리뷰를 기대하기란 어려운 거 같다.


구축

이미 많은 개발자들이 이 기능을 활용하고 있는 만큼, 구축은 어렵지 않게 할 수 있다.
심지어 API 키, 웹훅 설정도 필요 없이 바로 할 수 있다.

우선 GitHub Marketplace에서 Gemini Code Assist 검색 후 설치한다.
다음으로는 리뷰를 받고자 하는 Repository를 선택한 뒤 해당 Repository에 접근할 수 있는 권한을 준다.

이렇게만 하면 바로 이후에 올라오는 PR에 대해서는 리뷰가 붙게 된다.
리뷰 내용을 Email이나 Discord/Slack 같은 곳으로도 받아볼 수 있으니 적절하게 활용할 수 있다.


우리가 AI Code Review를 도입한 후 느낀 장점은 아래와 같다.

1. 리뷰 속도 체감 개선

PR을 열자마자 리뷰 코멘트가 이미 달려있어서 내가 짠 코드에 대한 피드백을 즉시 받을 수 있다.

2. 코드 품질의 하한선이 생김

적어도 한 명은 리뷰한 코드가 Merge 되는 것이기 때문에 어느정도 안심을 할 수 있게 되었다.

3. 리뷰 피로도 감소

직접 코드를 리뷰하는 사람은 포맷, 네이밍, 단순 실수를 리뷰할 일이 크게 줄어들었다.


하지만 단점도 확실히 존재했다.

1. 컨텍스트를 완전히 알지 못함

AI는 어디까지나 내가 짠 코드만 보고 판단하기 때문에 내가 짠 코드의 의도를 완벽히 파악하기 어렵다.
복잡한 로직이나 특별한 의도를 갖고 짠 코드를 지적하는 경우가 많았다.

2. 억지로 허점을 찾아내려는 느낌

이 현상은 특히 변경 사항이 적을 때 많이 나타났는데, 특히 리뷰할 것이 없으면 억지로 리뷰를 하는 느낌이 들었다.


PR에 AI Code Review를 붙인다고 해서 사람 리뷰가 필요 없어지는 건 아니다.

다만 분명한 건 리뷰 공수를 줄이기 위해 AI가 대신할 수 있는 영역은 맡기는 것이 효율적이다.

포맷, 네이밍, 정적 분석, 구조 요약처럼 반복적이고 기계적인 리뷰는 AI가 훨씬 빠르고 일관되게 처리할 수 있다.
반면에 비즈니스 맥락, 도메인 의도, 트레이드오프 판단처럼 사람만이 할 수 있는 리뷰는 여전히 중요하고, 이 부분은 반드시 리뷰어가 직접 맡아야 한다고 생각한다.

(무엇보다 뭔가 내 코드를 봐주고 있는 사람이 있다는 느낌이 들어서 괜스레 기분이 좋아진다..)

우리는 리뷰에 큰 시간을 쏟지는 않기 때문에 간단한 AI Review만 Integration 했는데, 구체적인 Review Rule 설정 도입 등 잘 구성된 AI 리뷰 파이프라인은 팀의 개발 속도와 코드 품질을 동시에 끌어올릴 수 있는 좋은 선택이라고 생각한다.

댓글 남기기

Dalmeng's Footprints에서 더 알아보기

지금 구독하여 계속 읽고 전체 아카이브에 액세스하세요.

계속 읽기