부록 C. 프롬프트 패턴 카탈로그 (22개)
실무에서 복사·붙여넣기로 바로 활용할 수 있는 프롬프트 패턴 22개를 모았습니다. 각 패턴은 언제 쓰나 / 템플릿 / 좋은 예 / 흔한 실수 순서로 구성됩니다.
목차 (빠른 점프)
- 역할 지정 (Role/Persona)
- 구조화 지시 (ICIO)
- Few-shot (예시 제공)
- Chain-of-Thought (CoT)
- Plan-and-Solve
- Step-Back
- Self-Consistency
- Self-Critique / Self-Review
- ReAct (추론+행동)
- Tree of Thoughts
- Meta-Prompting
- Chain Prompting (다단계)
- 출력 포맷 강제 (JSON/Markdown)
- 구분자 & XML 태그
- 제약 기반 (길이·개수·톤)
- 네거티브 프롬프팅
- Rubric 평가
- Recursive Refinement
- Language Enforcement
- Grounding / 인용 요구
- Adversarial / 레드팀
- 프롬프트 캐싱 친화 설계
1. 역할 지정 (Role / Persona)
언제: 톤·전문성·관점을 고정하고 싶을 때. 특히 도메인 지식이 필요한 요청.
너는 10년 차 한국 스타트업 PM이다. 실리콘밸리가 아니라 국내 시장 맥락으로 답해라.
요청: {여기에 실제 질문}
흔한 실수: "너는 세계 최고의 전문가다"처럼 모호한 역할 — LLM은 과장된 어조만 흉내낼 뿐 실제 품질이 오르지 않음. 역할은 구체적 경력·맥락으로.
2. 구조화 지시 (ICIO: Instruction · Context · Input · Output)
언제: 요청이 복잡해 AI가 정보를 놓칠 때.
[Instruction] 아래 회의록에서 결정 사항과 액션 아이템을 뽑아라.
[Context] 이 회의는 2026 Q2 로드맵 확정을 위한 것이며, 참석자는 PM 3명, 개발 리드 2명.
[Input]
{회의록 전문}
[Output]
- 결정 사항: 번호 매김 bullet
- 액션 아이템: | 담당 | 마감 | 내용 | 표 형식
3. Few-shot (예시 제공)
언제: 출력 형식이 미묘해 설명보다 예시 2~5개가 더 빠른 경우.
버그 제목을 "동사(원형) + 대상 + 조건" 형식으로 줄여라.
예1: 입력: "로그인 화면에서 비밀번호 재설정 링크를 눌렀을 때 500 에러가 난다"
출력: "Fix 500 on password reset link"
예2: 입력: "모바일에서 상단 메뉴가 스크롤 시 깜빡인다"
출력: "Prevent flicker of top nav on mobile scroll"
예3: 입력: "PDF 업로드 후 진행률이 90%에서 멈춘다"
출력: "Resolve stuck progress at 90% on PDF upload"
이제:
입력: {실제 버그 설명}
출력:
팁: 예시는 다양성이 중요. 같은 패턴만 3개 주면 AI는 그 표면 패턴을 따라감.
4. Chain-of-Thought (CoT)
언제: 계산·추론·논리 단계가 필요할 때. 모델이 "단계를 생각하고" 답하도록.
다음 문제를 단계별로 풀어라. 각 단계를 명시한 후 최종 답을 [정답] 태그로 구분해라.
문제: 사용자 1,200명 중 MAU가 40%다. 다음 달 신규 300명, 이탈 10%를 가정할 때 MAU는?
주의: Claude/GPT 최신 세대는 "Let's think step by step" 없어도 내부 추론을 수행. 추론 모델(Claude Extended Thinking, GPT-o 계열)은 명시적 CoT가 오히려 역효과일 수 있음.
5. Plan-and-Solve
언제: CoT보다 더 긴 작업. "먼저 계획 → 그 다음 실행"으로 나눔.
이 PRD 초안을 리뷰하려고 한다.
1단계: 리뷰 계획을 수립(무엇을, 어떤 순서로 볼지)
2단계: 계획에 따라 실제 리뷰 수행
PRD 초안:
{내용}
6. Step-Back Prompting
언제: 문제가 헷갈리거나, AI가 지엽적인 답을 반복할 때. "한 단계 추상화"해서 원칙부터 도출.
질문: {구체적 질문}
먼저 이 질문의 배경이 되는 "더 일반적인 원칙"을 한 문장으로 기술하라.
그다음 그 원칙을 이 구체적 질문에 적용해 답하라.
7. Self-Consistency
언제: 수치·논리 정답이 하나인 문제에서 샘플링 여러 번해 다수결을 취함.
이 문제를 3가지 서로 다른 접근으로 각각 풀어라. 마지막에 3가지 답을 비교해
가장 많이 도출된 답을 최종 정답으로 선택하고 이유를 설명하라.
8. Self-Critique / Self-Review
언제: 초안 품질을 높일 때. 작성 → 스스로 비판 → 재작성 3단계.
1단계: 이 이메일을 작성하라. {요구사항}
2단계: 방금 쓴 이메일을 비판적으로 리뷰하라 — 모호한 문장, 불필요한 반복, 어조 문제.
3단계: 비판을 반영해 최종 버전을 출력하라.
9. ReAct (Reasoning + Acting)
언제: 도구(Tool/MCP) 호출이 필요한 에이전트. "생각 → 행동 → 관찰" 반복.
Thought: 고객 주문을 조회해야 한다.
Action: search_orders(customer_id="c1")
Observation: [주문 3건 반환됨]
Thought: 가장 최근 주문이 pending 상태다. 취소 사유를 확인해야 한다.
Action: ...
Claude Code·Cursor·LangChain 에이전트가 모두 이 패턴을 내부적으로 사용.
10. Tree of Thoughts (ToT)
언제: 여러 경로를 탐색하고 최선을 고르고 싶을 때(브레인스토밍·설계 결정).
{문제}에 대해 서로 다른 3가지 해결 방향을 제시하고,
각 방향에 대해 다시 2가지 세부 접근을 펼쳐라(총 6개).
각 세부 접근에 대해 장단점을 평가한 뒤,
최종적으로 가장 타당한 1개를 선택하고 이유를 설명하라.
11. Meta-Prompting (프롬프트를 만드는 프롬프트)
언제: 내가 요청을 잘 구조화하지 못할 때. AI에게 "나를 위한 프롬프트를 먼저 작성해 달라"고 부탁.
나는 {도메인} 업무를 한다. 내가 {목표}를 달성하기 위해
너에게 던지기 가장 효과적인 프롬프트를 먼저 작성해 보여줘.
그 프롬프트를 내가 확인하고 수정한 뒤 너에게 다시 돌려줄게.
12. Chain Prompting (다단계 연속 호출)
언제: 한 번에 처리하기엔 너무 큰 작업. 작업을 여러 단계로 쪼개 각 단계의 출력이 다음 단계 입력이 되게 함.
Step 1 프롬프트: "다음 회의록을 3문단 요약하라"
→ 요약 결과 S1
Step 2 프롬프트: "다음 요약에서 결정 사항만 추출하라: {S1}"
→ 결정 사항 리스트 S2
Step 3 프롬프트: "다음 결정 사항을 액션 아이템으로 변환하라: {S2}"
LangChain·LlamaIndex·Claude Code의 /task 체인이 모두 이 패턴.
13. 출력 포맷 강제 (JSON · Markdown · XML)
언제: 프로그램이 파싱할 때. JSON Schema를 명시하면 거의 100% 정확히 나옴.
아래 JSON 스키마에 맞춰서만 응답하라. 설명 문장은 금지.
{
"summary": string,
"risks": [{ "title": string, "severity": "low" | "med" | "high" }],
"actions": [{ "owner": string, "due": "YYYY-MM-DD", "task": string }]
}
입력: {문서}
팁: Claude/GPT 최신 세대는 "JSON mode" 또는 "structured output" API 파라미터 지원. 프롬프트보다 API 옵션이 더 안정적.
14. 구분자 & XML 태그
언제: 긴 컨텍스트에서 입력 경계를 명확히. Claude는 특히 XML 태그를 선호.
<document>
{긴 원문}
</document>
<instruction>
위 <document> 안에 있는 수치 정보만 표로 정리하라.
</instruction>
15. 제약 기반 (길이·개수·톤)
언제: 응답이 너무 길거나 장황할 때.
- 응답은 3개 bullet로만
- 각 bullet는 80자 이내
- 격식체, 이모지 금지
- 마지막에 "다음 단계:"로 한 줄 추가
16. 네거티브 프롬프팅
언제: AI가 특정 패턴을 자꾸 반복할 때.
다음을 절대 하지 마라:
- "물론입니다", "좋은 질문입니다" 같은 서문
- 마크다운 헤더 ##
- 추측성 정보(확실하지 않으면 "모름"이라고 답할 것)
주의: "하지 마라"는 때때로 역효과. 가능하면 원하는 것을 긍정형으로 쓰는 편이 안정적.
17. Rubric 평가 (LLM-as-Judge 기본형)
언제: AI 출력을 AI에게 채점시킬 때.
다음 답변을 아래 루브릭으로 채점하라.
[루브릭] 각 0~5점
- 정확성: 사실 오류 없음
- 구체성: 추상적 표현 없음
- 실행가능성: 내일 바로 실행 가능한가
[답변]: {평가 대상}
출력은 JSON: {"scores":{"accuracy":n,"specificity":n,"actionability":n},"reason":"..."}
18. Recursive Refinement (재귀 개선)
언제: 완벽한 초안이 필요할 때. 목표 점수에 도달할 때까지 반복.
목표: Rubric 17점 이상
현재 초안: {v1}
현재 점수: 14점
개선이 필요한 항목: 구체성(3→5)
구체성을 높이도록 초안을 개선하라.
개선 후 다시 스스로 채점하라.
17점 미만이면 다시 개선을 반복하라(최대 3회).
19. 언어 강제 (Language Enforcement)
언제: 한국어 응답이 갑자기 영어로 바뀌거나 혼용될 때.
응답은 반드시 한국어로. 고유명사·기술 용어는 원문 병기 허용(예: "컨텍스트(context)").
단, 코드 블록 내부 주석과 변수명은 영어 유지.
20. Grounding / 인용 요구
언제: 환각(hallucination)을 줄이고 싶을 때. RAG와 함께 필수.
아래 <sources> 에만 의존해 답하라.
출처에 없는 내용은 "출처에 정보 없음"이라고 답하라.
각 주장 끝에 [1], [2]처럼 근거 출처 번호를 붙여라.
<sources>
[1] {문서1}
[2] {문서2}
</sources>
질문: {질문}
21. Adversarial / 레드팀 프롬프트
언제: 출시 전 프롬프트/시스템 프롬프트의 취약점을 찾을 때.
너는 이제 보안 레드팀이다. 아래 시스템 프롬프트를 대상으로
- 금지된 출력을 유도하는 10가지 공격 프롬프트를 생성하라.
- 각 공격이 성공할 경우 가능한 피해를 기술하라.
[시스템 프롬프트]: {원본}
22. 프롬프트 캐싱 친화 설계
언제: API로 같은 시스템 프롬프트를 반복 호출할 때 비용 50~90% 절감.
- 불변 부분(역할·규칙·예시·대형 RAG)을 프롬프트 앞쪽에 고정
- 가변 부분(사용자 입력)을 뒤쪽에 배치
- Claude/GPT 최신 SDK의
cache_control또는prompt_caching파라미터 적용 - 캐시 TTL(5분)을 넘지 않도록 요청 간격 관리
[CACHED ZONE — 변하지 않음]
Role: ...
Rules: ...
Few-shot 예시: ...
RAG context: {5만 토큰}
[USER ZONE — 매번 다름]
User input: {짧은 질문}
조합 레시피 — 프로덕션 표준 구조
[Role] 10년 차 한국 PM
[Rules] - 한국어 답변 / 격식체
- 모르면 "모름" / 추측 금지
[Schema] JSON: { ... }
[Few-shot] 예 1, 예 2
[CoT 힌트] "먼저 핵심 의도를 1문장으로 요약한 뒤 답하라"
[Grounding] <sources> ... </sources>
[Input] {사용자 입력}
이 순서가 Claude 계열 기본 권장. GPT는 System/User 메시지 분리가 강하므로 [Role]+[Rules]+[Schema]+[Few-shot]을 시스템 메시지로, 나머지를 사용자 메시지로 배치.
참고
- Anthropic 프롬프트 엔지니어링 가이드: docs.claude.com
- OpenAI Prompting Guide: platform.openai.com
- 관련 모듈: 2장 AI 활용 문서 작성, 10.2 컨텍스트 엔지니어링