프롬프트 엔지니어링이 여전히 중요한 이유
모델이 좋아질수록 프롬프트 품질의 영향은 오히려 커집니다. GPT-4o, Claude 3.5 같은 최신 모델은 모호한 지시를 그냥 처리하는 게 아니라, 정확한 지시를 받았을 때와 아닐 때의 결과 차이가 더 극명합니다. 좋은 프롬프트는 비용도 줄이고(불필요한 재시도 제거), 품질도 높입니다.
기법 1: 역할 부여 (Role Prompting)
단순히 "번역해줘"보다 역할을 부여했을 때 훨씬 좋은 결과를 얻습니다.
나쁜 예:
다음을 영어로 번역해줘: "오늘 회의에서 Q3 매출 목표를 논의했습니다."
좋은 예:
당신은 10년 경력의 비즈니스 번역 전문가입니다. 한국 대기업의 IR 자료를
영문으로 번역하는 작업을 합니다. 자연스러운 비즈니스 영어로 번역하되,
전문 용어는 업계 표준 영어 표현을 사용하세요.
번역: "오늘 회의에서 Q3 매출 목표를 논의했습니다."
기법 2: Chain-of-Thought (CoT)
복잡한 추론 문제에서 "단계적으로 생각해"라는 지시 하나가 정확도를 크게 높입니다.
다음 문제를 단계별로 풀어주세요. 각 단계를 명시하고,
최종 답을 마지막에 명확히 제시하세요.
문제: [복잡한 수학/논리 문제]
Zero-shot CoT: 그냥 "Let's think step by step" 추가 Few-shot CoT: 예시 풀이를 2~3개 보여준 뒤 새 문제 제시
Claude, GPT-o3 같은 추론 모델은 CoT를 내부적으로 수행하므로 일반 모델에 더 효과적입니다.
기법 3: Few-shot 예시
원하는 출력 형식을 예시로 보여주는 것이 설명보다 훨씬 효과적입니다.
고객 리뷰를 긍정/부정/중립으로 분류하고 핵심 키워드를 추출하세요.
예시 1:
입력: "배송이 너무 느렸어요. 그래도 제품 품질은 괜찮네요."
출력: {"sentiment": "중립", "keywords": ["배송 지연", "제품 품질 양호"]}
예시 2:
입력: "정말 만족합니다! 다음에도 구매할게요."
출력: {"sentiment": "긍정", "keywords": ["만족", "재구매 의사"]}
분류할 리뷰: "가격이 좀 비싸지만 AS가 빠릿빠릿해서 좋아요."
기법 4: 출력 형식 명시
JSON, 마크다운, 특정 구조를 원한다면 명시적으로 요청하세요.
다음 회의록을 분석해서 아래 JSON 형식으로만 출력하세요.
다른 설명이나 마크다운 코드블록 없이 순수 JSON만 출력합니다:
{
"participants": ["이름1", "이름2"],
"decisions": ["결정사항1", "결정사항2"],
"action_items": [{"owner": "이름", "task": "할일", "deadline": "날짜"}],
"next_meeting": "날짜 또는 null"
}
기법 5: 모델별 최적화 팁
Claude (Anthropic)
- XML 태그로 구조화하면 성능이 좋아집니다:
<document>,<instructions>,<examples> - "You are..." 보다 "As a..." 형식이 더 자연스럽게 동작
- 긴 시스템 프롬프트를 잘 따르는 편 → 상세한 지시 OK
GPT (OpenAI)
- System prompt에 핵심 지시를 넣고, User에는 실제 태스크만
- "Do not..." 보다 "Always..." 형식이 더 효과적인 경우 많음
- JSON mode (
response_format: {"type": "json_object"}) 적극 활용
Gemini (Google)
- 멀티모달 태스크에서 이미지를 먼저, 텍스트 지시를 뒤에 넣는 게 효과적
- 긴 컨텍스트(1M 토큰)를 활용할 때 문서를 앞부분에 배치
기법 6: 시스템 프롬프트 설계
프로덕션 앱이라면 시스템 프롬프트 설계가 전체 품질을 결정합니다.
좋은 시스템 프롬프트의 구성:
1. 역할 정의 (누구인가)
2. 목표 (무엇을 위한 AI인가)
3. 행동 규칙 (해야 할 것 / 하지 말아야 할 것)
4. 출력 형식 (어떻게 답해야 하는가)
5. 예외 처리 (모르면 어떻게 하는가)
흔한 실수와 해결책
| 실수 | 문제 | 해결 |
|---|---|---|
| 너무 짧은 프롬프트 | 모호한 해석, 일관성 없음 | 구체적 예시 + 형식 명시 |
| 부정형 지시 | "~하지 마세요"는 종종 무시됨 | "~하세요" 긍정형으로 전환 |
| 한 번에 너무 많은 태스크 | 품질 저하 | 태스크 분리, 순차 실행 |
| 할루시네이션 방치 | 잘못된 정보 생성 | "모르면 모른다고 답하세요" 명시 |
결론
프롬프트 엔지니어링은 기술이 발전할수록 사라지는 게 아니라, 더 정교해지고 있습니다. 핵심만 기억하세요:
- 역할 부여로 컨텍스트 설정
- CoT로 추론 품질 향상
- Few-shot 예시로 원하는 형식 학습
- 출력 형식 명시로 파싱 오류 제거
- 모델별 특성 파악해서 최적화





