P1-12.1 프롬프트(prompt)는 무엇을 지정하는가¶
Section ID:
P1-12.1Version:v2026.07.20
11장에서는 LLM(large language model)이 어디에서 왔는지 봤습니다. 언어 모델(language model)은 다음 토큰의 확률을 다루는 문제에서 출발했고, Transformer와 사전학습(pretraining)은 현대 LLM의 중요한 기반이 되었습니다.
여기서는 사용자가 LLM을 어떻게 다루는지 봅니다. 그 출발점이 프롬프트(prompt)입니다.
여기서 던지는 핵심 질문은 프롬프트가 모델에게 무엇을 알려 주는 입력인가입니다.
여기서 중요한 관점은 다음과 같습니다.
프롬프트는 모델을 다시 학습시키는 데이터가 아니라, 현재 응답을 만들 때 참고할 지시(instruction), 맥락(context), 예시(example), 제약(constraint), 출력 형식(output format)을 입력 안에 배치하는 방법이다.
Part 1에서 프롬프트(prompt), 지시(instruction), 맥락(context), 예시(example), 제약(constraint), 출력 형식(output format), 프롬프트 vs fine-tuning의 기본 구분은 이 절에서 잡습니다. 11.3에서는 in-context learning과 사전학습(pretraining)의 차이를 먼저 봤고, 여기서는 그 흐름 위에서 사용자가 입력으로 무엇을 지정할 수 있는가를 정리합니다. 더 구체적인 입력 구성은 12.2에서, 한계와 평가는 12.3에서 다시 다룹니다.
프롬프트는 LLM 내부를 직접 보여 주지는 않습니다. 하지만 같은 모델에 다른 입력 조건을 주었을 때 출력이 어떻게 달라지는지 관찰하게 해 줍니다. 그래서 프롬프트는 LLM의 내부 구조를 증명하는 수단이 아니라, 모델 실행(inference)의 동작을 바깥에서 관찰하는 입구로 볼 수 있습니다.
여기서는 prompt engineering 기법 목록을 다루지 않습니다. Chain-of-thought, few-shot 예시 구성, 역할 부여는 P1-12.2에서, 평가 프롬프트와 한계 검토는 P1-12.3에서 다시 다룹니다.
프롬프트, 지시, 맥락, 예시, 제약, 출력 형식은 초반에 모두 비슷한 입력 요소처럼 들릴 수 있습니다. 우선 각 용어의 역할을 짧게 구분하면 다음과 같습니다.
| 용어 | 아주 짧은 뜻 | 이 절에서의 역할 |
|---|---|---|
| 프롬프트 | 현재 응답 조건을 담은 입력 전체 | Chapter 12의 출발점 |
| 지시 | 모델에게 무엇을 하라고 하는 요청 | 작업 지정의 핵심 |
| 맥락 | 작업에 필요한 배경 정보 | 출력 방향을 바꾸는 참고 재료 |
| 예시 | 원하는 패턴을 보여 주는 입력-출력 시범 | 형식과 판단 기준 유도 |
| 제약 | 길이, 범위, 금지 조건 같은 제한 | 작업 경계 설정 |
| 출력 형식 | 결과를 어떤 모양으로 받을지 정하는 요소 | 후처리와 검토를 쉽게 만드는 장치 |
여기서 유지해야 할 최소 구분은 프롬프트는 입력 전체, 지시는 작업, 맥락은 배경, 예시는 패턴, 제약은 경계입니다.
여기서는 프롬프트가 무엇을 지정하는지에만 집중합니다.
| 주제 | 이 절에서 볼 질문 |
|---|---|
| 지시(instruction) | 모델에게 어떤 일을 하라고 알려 주는가? |
| 맥락(context) | 응답에 필요한 배경 정보를 무엇으로 제공하는가? |
| 예시(example) | 원하는 입력-출력 패턴을 어떻게 보여 주는가? |
| 제약(constraint) | 길이, 형식, 범위, 금지 조건을 어떻게 제한하는가? |
| 출력 형식(output format) | 결과를 어떤 모양으로 받을 것인가? |
프롬프트는 마법 주문이 아닙니다. 같은 모델이라도 입력을 어떻게 구성하느냐에 따라 다른 응답이 나올 수 있지만, 프롬프트가 모델의 가중치(weight)를 바꾸는 것은 아닙니다.
여기서는 프롬프트를 입력 구조로 이해하는 데 집중하고, 예시 배치와 평가 기준은 각각 12.2와 12.3으로 넘깁니다.
프롬프트가 지정하는 입력 조건¶
- 프롬프트(prompt)를 LLM에 주는 자연어 입력으로 이해합니다.
- 프롬프트가 지시, 맥락, 예시, 제약, 출력 형식을 지정할 수 있음을 설명합니다.
- 프롬프트를 통해 입력 조건이 출력 생성에 어떤 영향을 주는지 관찰할 수 있음을 이해합니다.
- 프롬프트와 fine-tuning을 구분합니다.
- 프롬프트가 모델의 지식 검증이나 사실 확인을 보장하지 않음을 이해합니다.
- 좋은 프롬프트를 “말을 잘 꾸미는 기술”이 아니라 “작업 조건을 명확히 입력하는 기술”로 이해합니다.
세 가지 기준¶
여기서는 프롬프트 문구 요령을 모으기보다, 프롬프트가 입력에서 무엇을 맡는지 설명하는 데 집중합니다. 아래 세 가지 기준이 잡히면 흐름이 정리됩니다.
| 기준 | 왜 중요한가 | 이 절에서 필요한 이해 수준 |
|---|---|---|
| 프롬프트는 모델에게 주는 입력 설계라는 점 | 프롬프트를 마법 주문처럼 보는 오해를 줄여 줍니다. | 질문, 조건, 맥락을 담는 입력이라고 이해하면 됩니다. |
| 프롬프트는 모델 파라미터를 바꾸지 않는다는 점 | 학습과 사용 단계를 다시 구분하게 해 줍니다. | 말투와 결과가 달라져도 모델 자체가 다시 학습된 것은 아니라고 알면 됩니다. |
| 프롬프트에는 지시, 맥락, 예시가 들어갈 수 있다는 점 | 다음 절의 구성 요소 설명으로 자연스럽게 이어집니다. | 무엇을 하라는지, 무엇을 참고할지, 어떻게 보여 줄지를 담는다고 보면 됩니다. |
프롬프트는 현재 응답을 만들기 위한 입력이다¶
LLM은 입력된 토큰을 보고 다음 토큰을 생성합니다. 사용자가 넣는 질문, 명령, 문서, 예시, 대화 이력은 모두 모델이 다음 출력을 만들 때 참고하는 입력이 됩니다.
이 점 때문에 프롬프트는 LLM의 동작을 이해하는 데 도움이 됩니다. 같은 주제를 묻더라도 독자, 범위, 예시, 금지 조건을 바꾸면 출력이 달라집니다. 이 변화는 모델 내부의 회로를 설명하지는 않지만, LLM이 현재 입력 문맥에 민감하게 반응한다는 사실을 관찰하게 해 줍니다.
예를 들어 다음 요청을 봅니다.
AI의 역사를 처음 읽는 독자에게 설명해줘.
이 프롬프트는 적어도 세 가지를 지정합니다.
| 요소 | 지정한 내용 |
|---|---|
| 주제 | AI의 역사 |
| 과업 | 설명하기 |
| 독자 | 처음 읽는 독자 |
조금 더 구체적으로 쓰면 다음처럼 바뀝니다.
AI의 역사를 처음 읽는 독자에게 설명해줘. 규칙 기반 AI, 머신러닝, 딥러닝, LLM의 흐름을 구분해줘. 각 단계는 3문장 이내로 정리하고, 과장된 표현은 피하자.
이제 프롬프트는 주제뿐 아니라 범위, 구성, 길이, 톤까지 지정합니다. 모델은 이 조건을 입력으로 보고 다음 출력을 만듭니다.
프롬프트는 학습이 아니라 조건 지정이다¶
프롬프트를 넣었다고 해서 모델이 새로 학습되는 것은 아닙니다. 11.3에서 본 in-context learning은 모델 가중치를 업데이트하지 않고, 입력 문맥 안의 지시와 예시를 보고 현재 출력 행동이 달라지는 현상으로 이해하는 편이 안전합니다.
fine-tuning: 학습 데이터를 사용해 모델 가중치(weight)를 업데이트한다.
prompting: 현재 입력 안에 작업 조건을 넣어 모델의 출력을 유도한다.
Brown 등의 GPT-3 논문은 zero-shot, one-shot, few-shot setting을 비교하면서, task와 demonstration을 텍스트 상호작용으로 제공하고 모델에는 gradient update나 fine-tuning을 하지 않는다고 설명했습니다.
따라서 프롬프트는 다음과 같이 이해하는 것이 좋습니다.
모델을 바꾸는 것: 학습, fine-tuning, 사전학습
현재 응답 조건을 바꾸는 것: 프롬프트, 예시, 대화 이력, 제공된 문서
이 구분을 놓치면 “프롬프트를 잘 쓰면 모델이 그 사실을 배운다”거나 “한 번 알려 준 내용이 항상 유지된다”고 오해할 수 있습니다.
프롬프트는 지시와 맥락을 함께 담는다¶
프롬프트는 보통 지시(instruction)와 맥락(context)을 함께 담습니다.
지시: 무엇을 하라는 요청인가?
맥락: 그 요청을 처리하기 위해 참고해야 할 정보는 무엇인가?
예를 들어 다음 프롬프트를 봅니다.
다음 문장을 입문용 설명으로 바꿔줘.
문장: Transformer는 self-attention을 중심으로 시퀀스 표현을 계산한다.
여기서 입문용 설명으로 바꿔줘는 지시입니다. Transformer는 ... 계산한다는 작업 대상이자 맥락입니다.
프롬프트가 길어질수록 지시와 맥락이 섞이기 쉽습니다. 그래서 실제 작업에서는 다음처럼 구분하는 편이 안전합니다.
작업: 다음 문장을 입문용 설명으로 바꿔줘.
원문: Transformer는 self-attention을 중심으로 시퀀스 표현을 계산한다.
조건: - 3문장 이내 - 비유는 1개만 사용 - "사람처럼 이해한다"는 표현은 피함
이렇게 나누면 모델이 입력의 역할을 더 잘 구분할 가능성이 커집니다. 하지만 이것도 보장은 아닙니다. 프롬프트는 조건을 명확히 전달하는 방법이지, 결과의 정확성을 자동으로 보장하는 장치가 아닙니다.
예시는 출력 패턴을 보여 준다¶
예시(example)는 모델에게 원하는 패턴을 보여 주는 입력입니다.
입력: AI 출력: 인공지능(artificial intelligence)
입력: ML 출력: 머신러닝(machine learning)
입력: LLM 출력:
이런 입력을 주면 모델은 앞의 패턴을 보고 거대 언어 모델(large language model)처럼 이어 쓸 가능성이 커집니다.
이것이 few-shot prompting의 기본 직관입니다. 몇 개의 입력-출력 예시를 prompt 안에 넣어, 모델이 현재 과업의 형식과 의도를 추정하게 합니다.
다만 예시는 강력하지만 위험도 있습니다.
잘못된 예시: 잘못된 패턴을 강화할 수 있다.
편향된 예시: 출력 방향을 좁게 만들 수 있다.
너무 긴 예시: 중요한 지시가 context window 안에서 밀릴 수 있다.
예시는 모델을 새로 훈련시키는 데이터가 아니라, 현재 입력 안에서 참고할 패턴입니다. 따라서 예시의 품질은 출력 품질에 직접적인 영향을 줄 수 있습니다.
제약은 결과의 범위를 좁힌다¶
프롬프트는 결과의 범위를 좁히는 제약(constraint)을 줄 수 있습니다.
200자 이내로 설명해줘. 표로 정리해줘. 확인 가능한 근거가 없으면 "검증 필요"라고 표시해줘. 처음 읽는 독자에게 어려운 수식은 쓰지 마. 한국어 용어 뒤에 영어 원어를 병기해줘.
제약은 모델에게 작업의 경계를 알려 줍니다. 이 책을 작성할 때도 제약이 중요합니다.
예를 들어 다음 두 프롬프트는 결과가 달라질 가능성이 큽니다.
프롬프트 A: LLM을 설명해줘.
프롬프트 B: LLM을 AI 개론을 다시 공부하는 독자에게 설명해줘. Transformer, 사전학습, prompt의 관계만 다루고, RAG와 agent는 다음 장으로 넘겨줘. 근거 없는 전망은 쓰지 마.
프롬프트 B는 과업, 독자, 범위, 제외할 내용, 검증 기준을 함께 지정합니다. 프롬프트가 길어서 좋은 것이 아니라, 필요한 작업 조건이 분명하기 때문에 더 유용합니다.
프롬프트는 사실성을 보장하지 않는다¶
프롬프트를 잘 쓰면 더 유용한 답을 얻을 가능성이 커집니다. 하지만 프롬프트만으로 사실성(factuality), 근거성(evidence), 안전성(safety)을 보장할 수는 없습니다.
예를 들어 다음 요청은 위험합니다.
이 주장을 사실처럼 그럴듯하게 써줘.
이런 프롬프트는 근거 없는 문장을 설득력 있게 만들 수 있습니다. 여기서는 반대로 다음과 같은 조건을 우선합니다.
근거가 확인된 내용만 사실처럼 작성한다. 근거가 약하면 검증 필요로 표시한다. 개인적 해석은 표준 설명과 분리한다.
프롬프트는 모델의 출력을 유도할 수 있지만, 검증 책임을 대신하지 않습니다. 특히 학습용 책에서는 프롬프트보다 근거 검토가 더 중요합니다.
체크리스트¶
- 프롬프트(prompt)를 LLM에 주는 현재 입력으로 설명할 수 있다.
- 지시(instruction)와 맥락(context)을 구분할 수 있다.
- 예시(example)가 출력 패턴을 보여 주는 역할을 한다고 설명할 수 있다.
- 제약(constraint)이 결과의 범위를 좁히는 역할을 한다고 설명할 수 있다.
- 출력 형식(output format)을 프롬프트로 지정할 수 있음을 설명할 수 있다.
- 프롬프트가 LLM 내부를 직접 설명하지는 않지만, 입력 조건에 따른 출력 변화를 관찰하게 해 준다고 설명할 수 있다.
- prompting과 fine-tuning의 차이를 설명할 수 있다.
- in-context learning이 가중치 업데이트 없이 입력 문맥 안에서 일어나는 행동 변화임을 설명할 수 있다.
- 프롬프트가 사실성, 근거성, 안전성을 자동으로 보장하지 않음을 설명할 수 있다.
- 프롬프트를
말을 잘 거는 요령이 아니라현재 입력,작업 조건,가중치 업데이트 없음,검증 책임 별도의 구조로 설명할 수 있다. - prompting, fine-tuning, in-context learning이 어디서 갈리는지 구분할 수 있다.
출처와 참고 자료¶
- Tom B. Brown et al., Language Models are Few-Shot Learners, arXiv, 2020, 확인 날짜: 2026-06-23.
- Long Ouyang et al., Training language models to follow instructions with human feedback, arXiv, 2022, 확인 날짜: 2026-06-23.
- Pranab Sahoo et al., A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications, arXiv, 2024, 확인 날짜: 2026-06-23.
- OpenAI, Prompt engineering, OpenAI API documentation, 확인 날짜: 2026-07-19.