프롬프트는 추론 시점에 모델에 전달되는 지시와 맥락입니다. 대형 모델은 인컨텍스트 학습을 수행하기 때문에(Brown 외, 2020), 대부분의 사용자에게는 재학습이 아니라 프롬프트가 모델의 동작을 조정하는 주된 수단입니다. 프롬프팅 기법에 대한 체계적인 연구는 Liu 외(2023)의 서베이에 정리되어 있습니다.
효과적인 프롬프트는 작업을 명확하게 제시하고, 관련 맥락이나 예시를 제공하며, 원하는 형식을 지정합니다. 문구를 조금만 바꿔도 결과가 눈에 띄게 달라질 수 있는데, 바로 이 때문에 프롬프트 엔지니어링이 필요합니다.
프롬프트 엔지니어링이란?
프롬프트 엔지니어링은 시행착오에 의존하지 않고 의도적으로 프롬프트를 작성하고 테스트하며 반복 개선하는 기술입니다. 모델을 바꾸는 대신 입력을 바꿉니다. 작업을 명확히 밝히고, 모델에 필요한 배경 정보를 주고, 좋은 답변이 어떤 모습인지 보여 주고, 결과를 어떤 구조로 내야 하는지 알려 주는 것입니다.
프롬프트 엔지니어링은 API로 서비스를 개발하는 개발자뿐 아니라 일상적인 채팅에도 똑같이 적용됩니다. 애플리케이션에서는 모델의 역할과 규칙을 정하는 시스템 프롬프트와 프롬프트 인젝션 방어도 프롬프트 엔지니어링에 포함됩니다. OpenAI, Anthropic, Google은 각각 자사 모델용 프롬프팅 가이드를 공개하고 있습니다(아래 참고 자료 참조).
효과적인 프롬프트 엔지니어링 기법
같은 요청을 모호하게 쓴 경우와 각 기법을 적용한 경우를 비교해 보세요.
| 기법 | 모호한 프롬프트 | 개선된 프롬프트 |
|---|---|---|
| 구체적으로 쓰기 | "이거 요약해 줘." | "바쁜 CFO가 읽을 수 있도록 이 보고서를 비용 중심으로 5개의 글머리 기호로 요약해 주세요." |
| 맥락 제공하기 | "이 이메일에 답장해 줘." | "이 회의 제안을 정중하게 거절하고, 대신 화요일 오후를 제안해 주세요. 이메일은 아래와 같습니다: …" |
| 예시 보여 주기 | "이 리뷰들을 분류해 줘." | "각 리뷰를 긍정, 부정, 혼합 중 하나로 분류해 주세요. 예: '배송은 빠른데 뚜껑이 깨졌어요' → 혼합." |
| 추론 과정 요청하기 | "답이 뭐야?" | "단계별로 풀어 본 다음, 마지막 줄에 최종 답만 따로 적어 주세요." |
| 형식 지정하기 | "이 요금제들을 비교해 줘." | "세 가지 요금제를 가격, 한도, 적합한 대상 항목으로 표에 정리해 비교해 주세요." |
풀이 예시를 추가하는 방식을 퓨샷 프롬프팅이라고 하며, 간단한 작업이라면 명확한 지시만으로도(제로샷) 충분한 경우가 많습니다. 단계별 추론을 요청하면(생각의 사슬) 여러 단계가 필요한 수학 및 논리 문제에 도움이 되는 경향이 있습니다. 어떤 방법을 쓰든 결과를 검토하고, 잘못된 부분을 바탕으로 프롬프트를 다듬으세요.
MultipleChat의 프롬프트 엔지니어링
MultipleChat의 Prompt Optimizer는 대충 작성한 프롬프트를 보내기 전에 개선해 줍니다. 같은 프롬프트를 ChatGPT, Claude, Gemini, Grok, Perplexity에서 나란히 실행할 수 있으므로, 문구를 바꿨을 때 각 모델의 답변이 어떻게 달라지는지도 확인할 수 있습니다.