챕터
01프롬프트 엔지니어링이란 무엇인가
02LLM이 텍스트를 다루는 방식
03프롬프트 vs 컨텍스트 엔지니어링
04좋은 프롬프트의 공통 속성
05명확하고 구체적인 지시
06역할과 페르소나 부여
07예시로 가르치기 (zero/one/few-shot)
08출력 형식 지정
09단계적 사고 유도 (chain-of-thought)
10제약과 금지의 명시
11구분자와 구조화 (XML 태그 등)
12컨텍스트 윈도우란 무엇인가
13무엇을 넣고 무엇을 뺄까
14긴 컨텍스트와 중간 소실
15대화 누적과 컨텍스트 관리
16관련 자료를 효과적으로 제공하기
17컨텍스트 엔지니어링 실전 사고법
18환각을 줄이는 법
19모호함과 과잉생성 다루기
20검증 가능한 출력 만들기
21거절과 실패 다루기
22일관성과 재현성 높이기
23평가(eval)의 기초 — 좋은 프롬프트인지 어떻게 아는가
24프롬프트 체이닝과 분해
25자기 비판과 자기 수정 유도
26검색·도구와 결합하기 (RAG·도구 사용)
27시스템 프롬프트 설계
28멀티턴과 에이전트 맥락의 프롬프트
29도메인별 적용 — 대표 사례
30버전 관리·재사용·템플릿화
31비용·길이·지연 트레이드오프
32안전과 민감정보 주의
33모델 이전(migration) 시 프롬프트 점검
·부록 A. 기법 치트시트 — 상황 → 기법 매핑
·부록 B. 안티패턴·미신 목록
·부록 C. 좋은/나쁜 프롬프트 예시 모음
·부록 D. 개발자 부록
·부록 E. 용어집
·부록 F. 추가 학습 링크
개요
LLM에게 무엇을 어떻게 말할지(프롬프트 엔지니어링)와 무엇을 보게 할지(컨텍스트 엔지니어링)를 설계하는 기술을, 원리부터 실무까지 체계적으로 다루는 학습 안내서입니다.
이 안내서는 "그럴듯한 프롬프트 템플릿을 베끼는" 수준을 넘어, 왜 그 기법이 통하는지(모델 동작에 기반한 직관)와 언제 무엇을 써야 하는지(판단 기준)를 함께 다룹니다. 개발자뿐 아니라 기획자·작가·분석가·연구자 등 비개발 직군도 코드 없이 따라올 수 있도록 썼고, 개발자용 심화 내용은 개발자 노트로 분리해 표시했습니다.
이 안내서를 읽는 법
- 순서대로 읽기를 권장합니다. 1부의 직관이 이후 모든 기법의 근거가 됩니다. 기법만 골라 읽으면 "언제 쓰면 안 되는지"를 놓치기 쉽습니다.
- 각 장 끝의 ✍️ 확인 문제, 특히 "이 프롬프트를 개선해보라" 식 실습은 꼭 직접 해보세요. 읽는 것과 쓰는 것은 다른 능력입니다.
- 🧪 직접 검증법 콜아웃을 만나면, 자신이 실제로 쓰는 모델에 그 프롬프트를 넣어 확인해보세요. 이 분야는 "남이 그렇다더라"가 가장 위험합니다.
- 개발자가 아니라면 개발자 노트는 건너뛰어도 흐름이 끊기지 않습니다.
콜아웃 기호 안내
| 기호 | 의미 |
|---|---|
| 💡 팁 | 바로 써먹을 수 있는 실용적 조언 |
| ⚠️ 흔한 실수·미신 | 자주 빠지는 함정, 검증 안 된 통념 |
| 📌 핵심 | 그 절에서 꼭 가져갈 한 가지 |
| 🧪 직접 검증법 | 직접 돌려보고 확인하는 방법 |
| 🔧 개발자 노트 | API·코드·자동화 관련 심화 (비개발자는 건너뛰어도 됨) |
전체 그림
이 안내서가 다루는 두 가지 기술과 그 관계는 다음과 같습니다.
flowchart TB
subgraph PE["프롬프트 엔지니어링: 무엇을 어떻게 말할까"]
direction LR
instr["명확한 지시"]
ex["예시 제공"]
fmt["출력 형식"]
role["역할 부여"]
end
subgraph CE["컨텍스트 엔지니어링: 무엇을 보게 할까"]
direction LR
what["넣을 것 / 뺄 것 선택"]
order["배치 순서"]
mgmt["대화·자료 관리"]
end
model["LLM<br/>(다음 토큰 예측기)"]
out["원하는 출력"]
PE --> model
CE --> model
model --> out
classDef technique fill:#dbeafe,stroke:#3b82f6,color:#1e3a8a
classDef context fill:#ede9fe,stroke:#8b5cf6,color:#4c1d95
classDef modelcls fill:#cffafe,stroke:#06b6d4,color:#164e63
classDef good fill:#dcfce7,stroke:#22c55e,color:#14532d
class instr,ex,fmt,role technique
class what,order,mgmt context
class model modelcls
class out good
두 기술은 별개가 아니라 같은 목표("모델이 원하는 행동을 하게 만들기")의 두 측면입니다. 프롬프트가 말의 내용이라면, 컨텍스트는 말이 놓이는 환경 전체입니다.
목차
1부 · 기초와 직관
| 장 | 제목 | 한 줄 요약 |
|---|---|---|
| 01 | 프롬프트 엔지니어링이란 무엇인가 | 정의, 그리고 "마법 주문"이 아니라는 것 |
| 02 | LLM이 텍스트를 다루는 방식 | 토큰·확률·컨텍스트 의존에 대한 최소 직관 |
| 03 | 프롬프트 vs 컨텍스트 엔지니어링 | 두 개념의 구분과 연결 |
| 04 | 좋은 프롬프트의 공통 속성 | 모델·제공자를 가로지르는 원칙 |
2부 · 핵심 프롬프트 기법
| 장 | 제목 | 한 줄 요약 |
|---|---|---|
| 05 | 명확하고 구체적인 지시 | 명확함을 6항목으로 분해해 점검하기 |
| 06 | 역할과 페르소나 부여 | 마법이 아니라 정보 압축, 그리고 한계 |
| 07 | 예시로 가르치기 (zero/one/few-shot) | 형식·기준을 보여주기, 편향 전이 피하기 |
| 08 | 출력 형식 지정 | 형식과 내용 품질은 별개 축 |
| 09 | 단계적 사고 유도 (chain-of-thought) | "단계별로 생각해"의 역효과와 판단 기준 |
| 10 | 제약과 금지의 명시 | 부정→긍정 전환, 제약은 보장이 아님 |
| 11 | 구분자와 구조화 (XML 태그 등) | 경계 긋기, 일관성이 핵심 |
3부 · 컨텍스트 엔지니어링
| 장 | 제목 | 한 줄 요약 |
|---|---|---|
| 12 | 컨텍스트 윈도우란 무엇인가 | 용량은 효과가 아니다 |
| 13 | 무엇을 넣고 무엇을 뺄까 | 고신호 최소집합 골라내기 |
| 14 | 긴 컨텍스트와 중간 소실 | 같은 정보도 위치가 결과를 바꾼다 |
| 15 | 대화 누적과 컨텍스트 관리 | 누적·오염·부패와 그 대응 |
| 16 | 관련 자료를 효과적으로 제공하기 | 구분·출처·근거·자료 우선 |
| 17 | 컨텍스트 엔지니어링 실전 사고법 | select·compress·isolate·배치 통합 |
4부 · 신뢰성과 품질
| 장 | 제목 | 한 줄 요약 |
|---|---|---|
| 18 | 환각을 줄이는 법 | "그럴듯함"의 부작용과 4단계 대응 |
| 19 | 모호함과 과잉생성 다루기 | 멋대로 가정·시키지 않은 것까지 |
| 20 | 검증 가능한 출력 만들기 | 정확한 답에서 검증 가능한 답으로 |
| 21 | 거절과 실패 다루기 | 네 가지 실패 유형 진단과 대응 |
| 22 | 일관성과 재현성 높이기 | 들쭉날쭉함 다스리기 |
| 23 | 평가(eval)의 기초 | 느낌이 아니라 측정으로 |
5부 · 고급·워크플로우
| 장 | 제목 | 한 줄 요약 |
|---|---|---|
| 24 | 프롬프트 체이닝과 분해 | 한 단계 한 책임으로 쪼개기 |
| 25 | 자기 비판과 자기 수정 유도 | 효과와 자기 환각 재확인의 한계 |
| 26 | 검색·도구와 결합하기 (RAG·도구 사용) | 모델=추론 엔진, 도구=감각·손발 |
| 27 | 시스템 프롬프트 설계 | 딱 맞는 "고도"로 쓰기 |
| 28 | 멀티턴과 에이전트 맥락의 프롬프트 | 자율성이 커질수록 커지는 위험 |
6부 · 실무 적용과 운영
| 장 | 제목 | 한 줄 요약 |
|---|---|---|
| 29 | 도메인별 적용 — 대표 사례 | 같은 원리, 도메인마다 다른 강조점 |
| 30 | 버전 관리·재사용·템플릿화 | 프롬프트를 자산으로 다루기 |
| 31 | 비용·길이·지연 트레이드오프 | 품질과 비용·속도의 균형 |
| 32 | 안전과 민감정보 주의 | 넣지 않기, 여러 겹 방어 |
| 33 | 모델 이전(migration) 시 프롬프트 점검 | 영원한 건 원리와 검증 |
부록
| 부록 | 제목 | 한 줄 요약 |
|---|---|---|
| A | 기법 치트시트 | 상황→기법 매핑, 자가 점검 |
| B | 안티패턴·미신 목록 | 검증 안 된 통념과 흔한 실수 |
| C | 좋은/나쁜 예시 모음 | before/after 15선 |
| D | 개발자 부록 | 구조화 출력·API·RAG·평가 자동화 |
| E | 용어집 | 본문 용어 정리(원어 병기) |
| F | 추가 학습 링크 | 공식 가이드 우선·학습법 |
이 안내서가 다루지 않는 것
- 특정 모델의 "비밀 주문" 목록. 그런 것은 대개 검증되지 않았고, 모델이 바뀌면 무력화됩니다. 이 안내서는 원리를 주어 스스로 판단하게 하는 것을 목표로 합니다.
- 모델 내부 구조의 정밀한 설명. 트랜스포머 아키텍처를 깊이 다루지 않습니다. "왜 통하는지"를 이해할 만큼의 최소 직관만 제공합니다.
- 항상 최신인 모델명·가격·기능. 이런 사실은 빠르게 변합니다. 구체적 수치가 필요하면 본문의 안내에 따라 각 제공자의 공식 문서를 확인하세요.
- 이미지·음성 등 멀티모달 프롬프팅 심화. 텍스트 프롬프트에 집중합니다.
한 가지 약속
이 분야에는 검증되지 않은 통념이 많습니다. 이 안내서는 효과가 모델·맥락에 따라 달라지는 기법을 단정하지 않습니다. 대신 "왜 통할 법한지의 직관 + 한계·반례 + 직접 검증 권장"으로 제시합니다. 어떤 조언을 만나든, 마지막 판단 기준은 당신이 실제로 쓰는 모델에서의 결과입니다.
다음 → 01. 프롬프트 엔지니어링이란 무엇인가