GPT-4 API를 활용한 코드 리뷰 자동화 실험
배경
팀에서 PR 리뷰 부담이 커지면서 GPT-4 API를 활용한 자동화를 시도해봤다. Copilot이 코드 작성을 도와준다면, GPT-4는 리뷰에도 활용할 수 있지 않을까 하는 가설이었다.
구현
GitHub Actions로 PR 이벤트를 감지하고, diff를 GPT-4에게 전달하는 방식으로 구현했다.
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Get PR diff
id: diff
run: |
git fetch origin ${{ github.base_ref }}
git diff origin/${{ github.base_ref }}...HEAD > diff.txt
- name: GPT-4 Review
run: node scripts/gpt-review.js
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
프롬프트는 "TypeScript React 프로젝트의 코드 리뷰를 수행하고, 버그, 성능 이슈, 보안 취약점을 찾아라"는 식으로 구성했다.
결과
- null 체크 누락, 불필요한 re-render 같은 명백한 이슈는 잘 잡아냈다
- 컨벤션 위반(네이밍, 파일 구조)도 지적했지만 false positive가 있었다
- 비용은 PR당 평균 $0.15 정도로 부담 없는 수준이었다
다만 비즈니스 로직 맥락을 이해하지 못하는 한계가 있어서, 사람 리뷰를 대체하긴 어렵고 보조 도구로 활용하는 게 적절해 보였다. ESLint나 Prettier가 잡지 못하는 논리적 오류를 한 번 더 체크하는 안전망 정도로 생각하면 될 것 같다.