개요

**프롬프트 엔지니어링(Prompt Engineering)**은 LLM에서 원하는 출력을 얻기 위해 입력(프롬프트)을 체계적으로 설계하는 기술.


핵심 기법

Zero-shot / Few-shot

# Zero-shot: 예시 없이 바로 질문
"다음 문장의 감정을 분류하세요: '오늘 기분이 너무 좋아요'"

# Few-shot: 예시 제공 후 질문
"긍정: '오늘 날씨가 좋다' → positive
 부정: '비가 와서 우울하다' → negative
 분류: '오늘 기분이 너무 좋아요' → "

Chain-of-Thought (CoT)

"다음 문제를 단계별로 생각해서 풀어주세요.
Q: 사과 3개에 2000원이면 사과 7개는 얼마?
A: 사과 1개 = 2000/3 ≈ 667원. 7개 = 667×7 = 4669원"

Role Prompting

"당신은 10년 경력의 Python 백엔드 개발자입니다.
아래 코드의 성능 문제를 분석해주세요."

구조화된 출력

"결과를 JSON 형식으로만 반환하세요:
{"sentiment": "positive|negative|neutral", "confidence": 0.0~1.0}"

프롬프트 구성 요소

요소설명예시
역할(Role)AI 페르소나 설정”당신은 전문 번역가입니다”
컨텍스트배경 정보 제공”이 문서는 의료 논문입니다”
지시(Instruction)구체적 작업 명시”요약해주세요, 3줄 이내로”
입력(Input)처리할 데이터문서, 코드, 데이터
출력 형식원하는 결과 형태”JSON으로”, “마크다운 표로”

고급 기법

기법설명
Tree of Thought여러 사고 경로를 트리로 탐색
ReActReasoning + Acting, 도구 호출과 추론 결합
Self-Consistency여러 번 생성 후 다수결
Constitutional AI원칙 기반 자가 비판·수정
RAG외부 문서 검색 후 답변 생성

안티패턴

  • ❌ 너무 짧고 모호한 지시 (“잘 만들어줘”)
  • ❌ 부정문 위주 (“~하지 마세요”) → 긍정문으로 변환
  • ❌ 한 번에 너무 많은 요구
  • ❌ 출력 형식 미지정으로 파싱 어려움

관련 항목