프롬프트 엔지니어링으로 LLM 응답 품질 개선하기

문제 상황

최근 팀에서 AI를 활용한 코드 리뷰 자동화 툴을 개발하면서 GPT-4 API를 사용하고 있었다. 초기에는 단순히 "이 코드를 리뷰해줘"라는 프롬프트를 사용했는데, 응답이 일관성이 없고 때로는 엉뚱한 제안을 하는 경우가 많았다.

프롬프트 구조화

몇 가지 기법을 적용해 응답 품질을 개선했다.

1. 역할과 맥락 명시

You are a senior code reviewer with 10 years of experience in TypeScript and React.
Review the following code for:
- Performance issues
- Type safety
- Best practices

역할을 명확히 하니 응답의 전문성이 높아졌다.

2. Few-shot 예시 제공

Example review:
Input: const data = response.json()
Output: Missing await keyword. Should be: const data = await response.json()

Now review:
[actual code]

원하는 출력 형식의 예시를 2~3개 제공하니 일관성이 크게 개선됐다.

3. 제약 조건 명시

Constraints:
- Provide max 3 issues
- Include code snippets for each suggestion
- Do not suggest library changes

명확한 제약을 두니 불필요한 제안이 줄어들었다.

Chain-of-Thought 적용

복잡한 리팩토링 제안이 필요한 경우, "단계별로 생각해보자"는 문구를 추가했다.

Let's think step by step:
1. Identify the main issue
2. Consider alternatives
3. Suggest the best solution

이 방식으로 추론 과정이 포함된 더 깊이 있는 분석을 받을 수 있었다.

결과

프롬프트 개선 후:

  • 잘못된 제안: 40% → 8%
  • 응답 일관성: 60% → 92%
  • 개발자 수용률: 45% → 78%

프롬프트 엔지니어링은 단순히 질문을 잘하는 것이 아니라, AI 모델이 최적의 성능을 낼 수 있도록 구조화된 입력을 제공하는 작업이었다. 특히 프로덕션 환경에서는 재현 가능하고 일관된 결과가 중요하기 때문에, 프롬프트 템플릿을 버전 관리하고 A/B 테스트를 진행하는 것이 필수적이다.

프롬프트 엔지니어링으로 LLM 응답 품질 개선하기