프롬프트 엔지니어링
Prompt Engineering
프롬프트 엔지니어링은 생성형 모델에 제공할 지시, 맥락, 예시, 출력 형식과 제약을 설계하고 평가해 원하는 업무 결과의 일관성을 높이는 작업입니다. 모델 가중치를 바꾸는 학습이나 파인튜닝과는 다릅니다.
AI 보조 조사·작성 후 원문과 대조한 설명입니다. 사례·계산은 별도 출처 표기가 없는 한 이해를 위한 가상 예시이며 실제 고객 성과가 아닙니다.
프롬프트에서 설계할 요소
좋은 프롬프트는 역할을 꾸미는 문장보다 실제 과업을 명확히 합니다. 입력 데이터의 경계, 해야 할 일, 하지 말아야 할 일, 출력 스키마, 판단 기준, 모호할 때의 처리 방법을 적습니다. OpenAI 문서는 모델이 일반 텍스트뿐 아니라 코드, 수식, JSON 같은 형식도 생성할 수 있음을 보여 줍니다.
한 번 잘 나온 문장을 저장하는 것만으로는 부족합니다. 모델 이름, 프롬프트 버전, 예시, 도구 정의와 평가 데이터를 함께 관리해야 변경 뒤 성능이 나빠졌는지 알 수 있습니다.
문의 분류 프롬프트 예시
고객 문의를 "환불", "배송", "기타"로 분류한다고 가정해 보겠습니다. "다음 문의를 세 라벨 중 하나로 분류하고 JSON의 label과 reason만 출력하라. 확신이 낮으면 기타로 분류하라"고 지시합니다. 이어 각 라벨의 정의와 경계 사례를 예시로 넣습니다.
| 구성 | 예시 | 검수 |
|---|---|---|
| 과업 | 문의 분류 | 라벨이 상호 배타적인가 |
| 형식 | JSON | 파싱 실패를 처리하는가 |
| 예외 | 낮은 확신은 기타 | 기타 비율이 과도하지 않은가 |
파인튜닝·컨텍스트 설계와 구분
프롬프트 엔지니어링은 요청에 포함되는 입력을 바꿉니다. 파인튜닝은 학습 예시로 모델의 파라미터를 조정합니다. 컨텍스트 엔지니어링은 검색 문서, 도구 결과, 메모리 등 모델이 참고할 전체 정보 흐름까지 넓게 설계하는 표현으로 쓰입니다.
Anthropic의 컨텍스트 문서가 지적하듯 시스템 지시와 모든 메시지, 도구 결과가 창을 함께 사용합니다. 긴 예시를 무작정 추가하면 중요한 정보가 묻히거나 비용이 늘 수 있습니다.
재현성과 보안의 한계
생성 모델은 같은 입력에도 다른 결과를 낼 수 있고 모델 업데이트의 영향도 받습니다. 프롬프트에 "절대 틀리지 마라"라고 써도 정확성 보장은 되지 않습니다. 외부 문서가 프롬프트 안으로 들어오는 RAG나 에이전트에서는 문서 속 지시를 신뢰하지 않도록 경계를 세워야 합니다. 실무에서는 정상 요청뿐 아니라 오탈자, 상충하는 지시, 빈 입력, 매우 긴 문서, 도구 오류를 포함한 평가 세트를 만들고 프롬프트를 수정할 때마다 같은 사례를 다시 실행해야 변경 효과를 비교할 수 있습니다.
- 대표 질문과 경계 사례로 회귀 평가를 실행합니다.
- 개인정보와 비밀키를 예시에 넣지 않습니다.
- 지시 우선순위와 도구 권한을 코드에서도 제한합니다.
자주 묻는 질문
- 프롬프트를 길게 쓰면 결과가 좋아지나요?
- 길이 자체가 품질을 보장하지 않습니다. 필요한 기준과 예시는 넣되 중복과 충돌을 줄이고, 실제 평가 세트로 비교해야 합니다.
- 프롬프트 엔지니어링으로 모델 오류를 없앨 수 있나요?
- 없앨 수 없습니다. 오류를 줄이고 출력 형식을 안정화할 수는 있지만 근거 조회, 검증, 사람 승인과 별도 평가가 필요합니다.
출처와 확인 범위
- Prompt engineering · OpenAI Developers · 확인 2026-10-27
프롬프트는 모델에 제공하는 입력이며 역할·지시·예시·맥락을 설계해 원하는 출력 형식과 행동을 유도합니다.
확인 범위: OpenAI API 사용법 중심이며 같은 프롬프트의 결과를 보장하지 않습니다.
- Context windows · Anthropic Docs · 확인 2026-10-27
컨텍스트 윈도우는 한 응답을 만들 때 모델이 참조하는 입력과 출력 범위이며 훈련 데이터나 영구 기억과 다릅니다.
확인 범위: Claude API의 토큰 집계와 관리 방식이 중심입니다.