부록 C. 프롬프트 패턴 카탈로그 (22개)

실무에서 복사·붙여넣기로 바로 활용할 수 있는 프롬프트 패턴 22개를 모았습니다. 각 패턴은 언제 쓰나 / 템플릿 / 좋은 예 / 흔한 실수 순서로 구성됩니다.

사용 팁: 한 프롬프트에 여러 패턴을 조합하는 것이 실무의 기본입니다. 예: Role + CoT + Output Format + Few-shot = 프로덕션 프롬프트의 표준 구조.

목차 (빠른 점프)

  1. 역할 지정 (Role/Persona)
  2. 구조화 지시 (ICIO)
  3. Few-shot (예시 제공)
  4. Chain-of-Thought (CoT)
  5. Plan-and-Solve
  6. Step-Back
  7. Self-Consistency
  8. Self-Critique / Self-Review
  9. ReAct (추론+행동)
  10. Tree of Thoughts
  11. Meta-Prompting
  12. Chain Prompting (다단계)
  13. 출력 포맷 강제 (JSON/Markdown)
  14. 구분자 & XML 태그
  15. 제약 기반 (길이·개수·톤)
  16. 네거티브 프롬프팅
  17. Rubric 평가
  18. Recursive Refinement
  19. Language Enforcement
  20. Grounding / 인용 요구
  21. Adversarial / 레드팀
  22. 프롬프트 캐싱 친화 설계

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]을 시스템 메시지로, 나머지를 사용자 메시지로 배치.

참고

← 메인으로 돌아가기 · 최근 업데이트: 2026.04.17