LLM에서 최대한을 끌어내려면 좋은 프롬프트가 필요하다. 프롬프트 엔지니어링(prompt engineering)은 더 좋은 결과로 이어지는 여러 프롬프트 기법을 아우르는 말이다. 이번 편은 코드에서 프롬프트를 실제로 어떻게 구성하는지부터, 시스템 프롬프트와 프롬프트 템플릿으로 augmented prompt를 조립하는 법까지 정리한다.
1. messages 포맷 (Content · Role)
가장 널리 쓰는 형식은 OpenAI의 messages 포맷이다. 프롬프트를 간단한 JSON 메시지 배열로 구조화한다. 메시지 하나는 content(텍스트)와 role을 갖는다. role은 셋 중 하나다.
- system — LLM의 전반적 행동에 영향을 주는 상위 지시.
- user — 사용자가 보낸 프롬프트.
- assistant — LLM이 앞서 생성한 응답.

2. 멀티턴 대화의 실제
LLM과 여러 번 주고받는 멀티턴(multi-turn) 대화에서, LLM이 앞 내용을 기억하는 게 아니다. 뒤에서는 대화 전체가 messages 포맷으로 변환되고 새 user 메시지가 맨 끝에 붙어, 매번 대화 전체가 LLM에 다시 제출된다. 그리고 이 JSON은 LLM이 처리할 하나의 텍스트 문자열로 바뀐다.

이 chat template 문자열은 화살표나 세로 막대 같은 특수 태그로 각 메시지의 시작·끝을 표시한다. LLM은 이 태그를 인식하도록 학습돼 system·user·assistant를 구분한다. 이 포맷은 매우 유연해서, 응답을 통제할 다양한 맥락을 프롬프트에 담을 수 있다.

3. 시스템 프롬프트 (System Prompt)
RAG 프롬프트를 구성할 때 가장 먼저 할 일은 시스템 프롬프트를 쓰는 것이다. LLM에게 어떻게 행동할지 상위 지시를 준다 — 항상 특정 톤으로 말하거나 특정 절차를 따르길 원한다면 그 정보가 여기에 들어간다.

실제 챗봇의 시스템 프롬프트를 보면 가장 먼저 눈에 띄는 건 길이다 — 여러 페이지에 달한다. 늘 그렇게 길 필요는 없지만, 그만한 유연성이 있다는 점은 기억할 만하다. 프롬프트 앞부분엔 모델의 학습 컷오프와 현재 날짜 정보가 있어, 자기 정보가 얼마나 오래됐는지·특정 질문에 답할 수 있는 상황인지를 판단하게 돕는다.

뒷부분은 응답의 절차와 톤을 지시한다 — 단계적으로 추론하라, 유해한 요청은 돕지 말라, markdown으로 답하라 등. 또 "지적 호기심이 있고 사람 생각을 듣길 즐긴다" 같은 인격(personality)도 부여한다. 같은 원리로 내 시스템 프롬프트를 만들 수 있다 — 자세히/간결히 답하라, RAG라면 검색된 문서만 써서 답하라, 문서 관련성을 판단하라, 출처를 인용하라 등. 시스템 프롬프트는 모든 프롬프트에 매번 추가되므로, 다듬는 데 시간을 쓰면 결과 품질이 크게 오른다.

4. 프롬프트 템플릿 (Prompt Template)
이제 augmented prompt를 조립할 차례다. 이 프롬프트엔 여러 정보 조각이 들어가므로, 잘 설계된 템플릿이 유용하다. 템플릿은 프롬프트의 상위 구조를 정하고 어떤 내용이 어디에 삽입될지를 결정한다. 전형적 순서는 이렇다.
- 시스템 프롬프트 — 행동 방식에 대한 상위 지침으로 시작.
- 이전 대화 — 멀티턴을 지원하면 사용자·LLM이 주고받은 이전 메시지.
- 검색된 맥락 — retriever가 가져온 상위 5~10개 chunk와, 그것을 어떻게 다룰지에 대한 지시.
- 최근 사용자 프롬프트 — LLM이 답해야 할 가장 최근 질문.

템플릿의 장점은 실험이 쉽다는 것이다. 개별 구성요소만 바꿔 최종 응답이 어떻게 달라지는지 볼 수 있다. 잘 쓴 시스템 프롬프트 + 검색된 맥락 + 이전 대화 + 최근 사용자 프롬프트를 합치면, 전형적인 RAG 프롬프트가 완성된다.


다음 글에서는 여기에 얹는 고급 프롬프트 기법 — in-context learning(few-shot), 단계적 추론, chain of thought 등 — 을 다룬다.
'AI > RAG' 카테고리의 다른 글
| 환각(Hallucination) 다루기 (0) | 2026.07.03 |
|---|---|
| Prompt Engineering : 고급 기법 (0) | 2026.07.03 |
| 어떤 LLM을 고를까 (0) | 2026.07.03 |
| LLM Sampling 전략 (0) | 2026.07.03 |
| Transformer Architecture (0) | 2026.07.03 |
