LLM프롬프트 엔지니어링 · 5중급

고급 프롬프팅 기법 — ReAct, 자기 일관성, 메타 프롬프팅

LLM프롬프트엔지니어링ReAct자기일관성메타프롬프팅고급기법

기초를 넘어: 한계 극복 기법들

앞서 배운 CoT, Few-shot, 역할 부여는 강력하지만 한계가 있습니다.

  • 최신 정보가 없음 → LLM 지식 컷오프
  • 계산이 틀릴 수 있음 → 수학적 오류
  • 같은 질문에 다른 답 → 일관성 부족
  • 프롬프트 작성이 어려움 → 설계 비용

이 한계를 극복하는 고급 기법들을 살펴봅니다.


기법 1: ReAct (Reason + Act)

**추론(Reason)**과 **행동(Act)**을 교차하며 문제를 해결하는 패턴입니다.

ReAct 프롬프트 구조

다음 형식으로 문제를 해결해줘:

생각: [현재 상황 분석]
행동: [실행할 작업] (검색("쿼리"), 계산("수식"), 읽기("파일"))
관찰: [행동 결과]
생각: [결과 해석]
... (반복)
최종 답변: [결론]

---
질문: 2024년 한국 반도체 수출 금액과 2023년 대비 변화율은?

ReAct는 AI 에이전트 구현의 핵심 패턴이기도 합니다. 도구(검색, 계산, API)를 LLM과 연결할 때 사용합니다.


기법 2: 자기 일관성 (Self-Consistency)

같은 질문을 여러 번 독립적으로 추론시키고 다수결로 최종 답변을 결정합니다.

자기 일관성 활용 예시

아래 문제를 3가지 다른 방식으로 각각 독립적으로 풀어줘.
각 풀이는 서로 참조하지 않고 독립적으로 작성해.
마지막에 3개의 답변을 비교하고 다수결로 최종 답을 결정해줘.

문제: [복잡한 추론 문제]

단일 추론보다 신뢰도가 높아지지만 비용(토큰)이 N배 됩니다. 중요한 의사결정에만 활용하세요.


기법 3: 메타 프롬프팅

프롬프트를 생성하는 프롬프트입니다. LLM에게 좋은 프롬프트를 설계하게 시킵니다.

메타 프롬프팅 예시

나는 이런 작업을 하려고 해:
"고객 리뷰 텍스트에서 감정(긍정/부정/중립)과 
주요 키워드를 추출하고 구조화된 JSON으로 출력"

이 작업을 위한 최적의 시스템 프롬프트와 사용자 프롬프트 템플릿을 
설계해줘. 실제 예시 2개도 포함해줘.

활용 상황:

  • 프롬프트 작성에 익숙하지 않을 때
  • 새로운 작업 유형의 프롬프트가 필요할 때
  • 기존 프롬프트 품질을 개선하고 싶을 때

기법 4: 프롬프트 체이닝

복잡한 작업을 여러 단계로 나눠 순차적으로 처리합니다.

체이닝 예시: 컨텐츠 파이프라인

# 의사코드
step1 = llm("다음 원문에서 핵심 사실만 3개 추출: {raw_text}")
step2 = llm(f"이 3가지 사실을 기반으로 블로그 개요 작성: {step1}")
step3 = llm(f"이 개요로 2000자 블로그 글 작성: {step2}")
step4 = llm(f"이 글에서 SNS용 요약 트윗 3개 생성: {step3}")

각 단계의 출력이 다음 단계의 입력이 됩니다.


기법 5: 역할 역전 (Flipped Interaction)

LLM이 질문을 받는 것이 아니라 사용자에게 질문하게 만듭니다.

나는 [목표]를 달성하고 싶어. 최적의 결과를 위해 
나에게 필요한 정보를 질문해줘. 충분한 정보를 얻으면
그 때 [결과물]을 생성해줘.

초안을 먼저 받는 것보다 맥락 수집 후 생성이 훨씬 정확한 결과를 냅니다.


기법 선택 가이드


실전: 기법 결합하기

실제 AI 서비스에서는 여러 기법을 동시에 씁니다.

[시스템 프롬프트] ← pe-04
당신은 수석 전략 컨설턴트입니다.

[역할 역전] ← 이번 편
클라이언트의 비즈니스 상황을 파악하기 위해
먼저 5개 핵심 질문을 해주세요.

[CoT 유도] ← pe-03
충분한 정보 수집 후, 단계별로 분석하여
전략 보고서를 작성해주세요.

[출력 형식]
보고서는 다음 구조로 작성합니다:
1. 현황 분석
2. 핵심 문제 정의
3. 전략 옵션 3가지 (장단점 비교)
4. 권고안

프롬프트 엔지니어링 전체 정리

기법효과비용
명확성·구체성기본 품질 향상낮음
역할+Few-shot일관성·전문성중간
CoT추론 정확도중간
시스템 프롬프트서비스 일관성낮음
자기 일관성신뢰도 최대화높음 (N배)
ReAct도구 활용높음
체이닝복잡한 작업높음

이것으로 프롬프트 엔지니어링 시리즈를 마칩니다. 다음은 LLM API 개발 — 실제 코드로 LLM을 제어하고 서비스를 만드는 실습을 시작합니다.

궁금한 점이 있으신가요?

협업·의뢰는 아래로, 가벼운 소통은 인스타그램 @bluefox._.hi도 환영이에요.