Claude 3와 GPT-4의 프롬프트 응답 차이 비교
배경
코드 리뷰 자동화 도구에 LLM을 붙이는 작업을 진행 중이다. 기존에는 GPT-4를 사용했는데, Claude 3 Opus가 출시되면서 비교 테스트를 진행했다.
같은 프롬프트를 사용했지만 응답 패턴이 달라서 후처리 로직을 수정해야 했다.
발견한 차이점
1. 구조화된 출력 형식
GPT-4는 JSON 출력 요청 시 마크다운 코드 블록으로 감싸서 반환하는 경우가 많았다.
```json
{ "result": "..." }
Claude 3는 순수 JSON만 반환하는 경향이 강했다. 프롬프트에 "JSON만 출력"이라고 명시하면 더 잘 지켜졌다.
### 2. 코드 설명 스타일
GPT-4: 단계별 설명을 선호. "먼저 ~하고, 그 다음 ~합니다"
Claude 3: 전체 맥락 설명 후 세부사항. 더 간결한 편
### 3. 에러 처리 제안
```javascript
// 리뷰 대상 코드
const data = JSON.parse(response);
GPT-4는 try-catch 추가와 함께 로깅, 폴백 로직까지 제안했다. Claude 3는 try-catch만 간결하게 제안하고, 요청 시에만 추가 설명을 제공했다.
적용 방법
프롬프트에 출력 형식을 더 명확하게 명시했다.
다음 형식으로만 응답:
- 마크다운 코드 블록 사용하지 말것
- JSON 객체만 반환
- 추가 설명 제외
두 모델 모두 이 방식으로 일관된 응답을 받을 수 있었다.
결론
Claude 3가 지시사항 준수율이 더 높았다. 특히 "~하지 말것" 같은 제약 조건을 잘 따랐다.
GPT-4는 친절하지만 불필요한 설명이 많아 파싱이 복잡했다. 프롬프트 엔지니어링으로 어느 정도 보완 가능했지만, 모델 특성을 이해하고 사용하는 것이 중요하다.
당분간은 두 모델을 병행 테스트하면서 용도에 맞게 선택할 예정이다.