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가 잡지 못하는 논리적 오류를 한 번 더 체크하는 안전망 정도로 생각하면 될 것 같다.