프롬프트 엔지니어링으로 AI 코드 리뷰 품질 개선하기

배경

팀에서 PR 리뷰 속도를 높이기 위해 GPT-4o를 활용한 자동 리뷰 봇을 도입했다. 초기에는 단순히 "이 코드를 리뷰해줘"라는 프롬프트를 사용했는데, 결과물이 너무 일반적이고 실제 프로젝트 맥락을 반영하지 못했다.

개선 과정

1. 컨텍스트 구조화

프로젝트 정보를 명확히 제공하도록 프롬프트를 수정했다.

const reviewPrompt = `
# Project Context
- Framework: Next.js 14 (App Router)
- Language: TypeScript 5.3
- State: Zustand
- Style: Tailwind CSS

# Code to Review
${diffContent}

# Focus Areas
- Type safety
- Performance implications
- Security issues
- Best practices for our stack
`;

2. 출력 형식 지정

JSON 형식으로 출력을 강제해서 파싱과 GitHub 댓글 생성을 자동화했다.

const formatInstruction = `
Output format (JSON only):
{
  "severity": "critical|warning|suggestion",
  "line": number,
  "issue": "description",
  "suggestion": "specific code fix"
}
`;

3. Few-shot 예시 추가

좋은 리뷰와 나쁜 리뷰 예시를 프롬프트에 포함시켰더니 일관성이 크게 향상되었다.

const examples = `
# Good Review Example
❌ "변수명이 별로다" 
✅ "userId 대신 currentUserId를 사용하면 authenticated user임을 명확히 할 수 있다"
`;

결과

  • 리뷰 정확도: 60% → 85%
  • False positive 감소: 프로젝트 컨벤션을 이해하게 됨
  • 실행 가능한 제안: 구체적인 코드 수정안 제공

교훈

프롬프트 엔지니어링은 결국 명확한 커뮤니케이션이다. 사람에게 코드 리뷰를 요청할 때 필요한 정보를 AI에게도 동일하게 제공하면 된다. 컨텍스트, 형식, 예시 이 세 가지만 잘 갖춰도 실용성이 크게 올라간다.