프롬프트 엔지니어링 용어정리

최근 인공지능 기술이 눈부신 발전을 이루면서, 언어 모델의 활용도가 급격히 높아지고 있습니다.(중국의 Deepseek R1 으로 세상이 시끄러운것도 이런한 이유가 아닐까 합니다.) 이와 함께, 우리가 AI와 효과적으로 소통하기 위해 꼭 알아야 할 중요한 기술 중 하나가 바로 프롬프트 엔지니어링입니다. 프롬프트 엔지니어링은 단순히 AI에게 질문을 던지는 것을 넘어, 원하는 답변이나 행동을 유도하기 위해 입력 문장을 세밀하게 설계하는 기술입니다.

최근 인공지능 기술이 눈부신 발전을 이루면서, 언어 모델의 활용도가 급격히 높아지고 있습니다.(중국의 Deepseek R1 으로 세상이 시끄러운것도 이런한 이유가 아닐까 합니다.) 이와 함께, 우리가 AI와 효과적으로 소통하기 위해 꼭 알아야 할 중요한 기술 중 하나가 바로 프롬프트 엔지니어링입니다. 프롬프트 엔지니어링은 단순히 AI에게 질문을 던지는 것을 넘어, 원하는 답변이나 행동을 유도하기 위해 입력 문장을 세밀하게 설계하는 기술입니다.

예를 들어, “한국의 대표 전통 음식 3가지를 알려줘”와 같은 기본적인 질문(Zero-shot Prompting)에서부터, “문장을 완성해줘: ‘나는 오늘…’ → ‘나는 오늘 도서관에 갔다’”와 같이 몇 가지 예시(Few-shot Prompting)를 제공해 모델이 올바른 응답 패턴을 학습하도록 하는 방식까지, 다양한 기법들이 존재합니다. 또한, 복잡한 문제를 단계별로 해결하도록 유도하는 Chain-of-Thought Prompting이나, 여러 추론 경로를 동시에 고려해 가장 일관된 답을 선택하는 Self-Consistency와 같은 고급 기법은, 단순한 질의응답을 넘어 보다 정교한 문제 해결 능력을 발휘하게 합니다.

프롬프트 엔지니어링

이 글에서는 인공지능의 발달과 언어 모델의 활성화로 인해 프롬프트 엔지니어링이 얼마나 중요한 역할을 하는지, 그리고 일반 사용자들도 반드시 알아두어야 할 주요 용어와 기법들을 구체적인 예시를 통해 쉽게 풀어 보겠습니다. AI와의 대화에서 원하는 결과를 얻고, 보다 효과적인 의사소통을 하기 위한 시작으로, 프롬프트 엔지니어링의 다양한 기법들을 이해하고 활용하는 방법을 정리해 보겠습니다.

1. 프롬프트 엔지니어링 기법 기초

1.1 Zero-shot Prompting

설명:
Zero-shot Prompting은 사전 예시 없이 모델에게 단순히 지시나 질문을 주어, 모델이 학습한 내재적 지식을 바탕으로 직접 응답을 생성하도록 하는 기법입니다. 별도의 컨텍스트를 제공하지 않기 때문에 모델이 일반적으로 학습한 데이터에 의존하게 됩니다.

예시 1:

  • 프롬프트: “한국의 대표적인 전통 음식 3가지를 알려줘.”
  • 예상 답변: “김치, 비빔밥, 불고기.”

예시 2:

  • 프롬프트: “서울의 역사적 명소에 대해 간단히 설명해줘.”
  • 예상 답변: “서울에는 경복궁, 창덕궁, 종묘 등 역사적 가치가 높은 명소들이 있습니다.”

예시 3:

  • 프롬프트: “현재 세계 경제의 주요 이슈는 무엇인가?”
  • 예상 답변: “인플레이션, 금리 인상, 글로벌 공급망 문제 등이 주요 이슈로 꼽힙니다.”

1.2 Few-shot Prompting

설명:
Few-shot Prompting은 몇 가지 예시(샘플)를 프롬프트에 함께 제공하여 모델이 문제 해결 방식이나 원하는 출력 형식을 이해하도록 돕는 기법입니다. 이를 통해 모델은 주어진 예시의 패턴을 학습하고, 새로운 질문에도 유사한 방식으로 응답할 수 있습니다.

예시 1 (문장 완성):

  • 제공 예시:
    “문장 완성: ‘나는 오늘’ → ‘나는 오늘 도서관에 갔다.’”
  • 새로운 프롬프트:
    “문장 완성: ‘너는 내일’”
  • 예상 답변: “너는 내일 학교에 간다.”

예시 2 (번역):

  • 제공 예시:
    “영어 → 한글: ‘Hello’ → ‘안녕하세요’”
  • 새로운 프롬프트:
    “영어 → 한글: ‘Goodbye’”
  • 예상 답변: “안녕히 계세요.”

예시 3 (문법 교정):

  • 제공 예시:
    “입력: ‘그 사람은 내 친구다’ → 출력: ‘그 사람은 내 친구입니다.’”
  • 새로운 프롬프트:
    “입력: ‘너는 내 친구야’”
  • 예상 답변: “너는 내 친구입니다.”

1.3 Chain-of-Thought Prompting

설명:
Chain-of-Thought Prompting은 모델에게 문제를 해결하는 과정을 단계별(체인 형태)로 서술하도록 유도하는 기법입니다. 복잡한 문제나 논리적 추론이 필요한 상황에서 중간 과정을 명확하게 드러내어 최종 결론에 도달할 수 있게 합니다.

예시 1 (수학 문제):

  • 프롬프트: “문제: 25 + 37을 단계별로 계산해 설명해줘.”
  • 체인 오브 씽크:
    “25를 20과 5로 분해, 37을 30과 7로 분해 → 20+30=50, 5+7=12 → 50+12=62”
  • 예상 답변: “62”

예시 2 (논리 문제):

  • 프롬프트: “만약 A는 B보다 크고, B는 C보다 크다면, A와 C의 관계를 단계별로 설명해줘.”
  • 체인 오브 씽크:
    “A > B, B > C 이므로 → A > C”
  • 예상 답변: “A가 C보다 큽니다.”

예시 3 (이유 설명):

  • 프롬프트: “왜 물은 대기압 하에서 100도에서 끓는지 단계별로 설명해줘.”
  • 체인 오브 씽크:
    “물 분자의 운동 에너지 증가, 대기압 조건, 분자 간 상호작용 등 여러 요인을 고려하면 100도에서 끓게 됨”
  • 예상 답변: “대기압 하에서 물은 100도에서 끓습니다.”

1.4 Zero-shot Chain-of-Thought Prompting

설명:
Zero-shot Chain-of-Thought Prompting은 예시 없이 ‘단계별로 생각해’ 등의 추가 지시문을 포함해 모델이 자체적으로 추론 과정을 서술하게 하는 방식입니다. 이는 추가 예시 없이도 모델이 중간 과정을 기술할 수 있도록 유도합니다.

예시 1:

  • 프롬프트: “다음 문제를 단계별로 생각하면서 풀어줘: 123 x 456 = ?”
  • 예상 답변: “먼저 123과 456의 자릿수를 나누어 계산 → 각 자리별 곱셈 후 자리 올림을 적용 → 최종 결과 도출 (예: 56088)”

예시 2:

  • 프롬프트: “모든 사람은 동물이고, 모든 동물은 생명체라면, 모든 사람은 생명체인가? 단계별로 설명해줘.”
  • 예상 답변: “전제 1: 모든 사람은 동물, 전제 2: 모든 동물은 생명체 → 따라서 모든 사람은 생명체”

예시 3:

  • 프롬프트: “리스트에서 최대값을 찾는 방법을 단계별로 설명해줘.”
  • 예상 답변: “리스트의 첫 번째 요소를 초기 최대값으로 설정 → 각 요소와 비교하며 최대값 갱신 → 최종 최대값 반환”

1.5 Self-Consistency

설명:
Self-Consistency는 동일한 문제에 대해 여러 개의 체인 오브 씽크(추론 경로)를 생성한 후, 그 중 가장 일관되거나 빈도수가 높은 결론을 선택하는 기법입니다. 이를 통해 모델의 불확실성을 줄이고 보다 신뢰할 만한 답변을 도출할 수 있습니다.

예시 1:

  • 프롬프트: “56 x 78를 여러 추론 경로로 계산한 후, 가장 빈번하게 나온 결과를 선택해줘.”
  • 예상 답변: “여러 경로의 계산 결과가 4368을 도출하였으므로 최종 답은 4368.”

예시 2:

  • 프롬프트: “‘모든 A가 B이고, 일부 B가 C일 때, 일부 A가 C인가?’ 문제를 여러 방법으로 추론한 후, 일관된 결론을 제시해줘.”
  • 예상 답변: “다양한 추론 경로 중 빈도수가 높은 결론을 선택하여 ‘일부 A가 C일 수 있다’로 결론 내림”

예시 3:

  • 프롬프트: “피보나치 수열의 3번째 수를 여러 번 계산해보고, 가장 일관된 결과를 출력해줘.”
  • 예상 답변: “대부분의 계산 경로가 2를 도출하므로 최종 답은 2.”

2. 엔지니어링 기법 – Advanced

2.1 Generate Knowledge Prompting

설명:
Generate Knowledge Prompting은 주어진 문제를 해결하기 전에, 관련 배경 지식이나 추가 정보를 모델이 먼저 생성하도록 유도합니다. 이 과정을 통해 문제에 대한 전반적인 컨텍스트를 스스로 구축하여, 보다 정교한 답변을 할 수 있게 됩니다.

예시 1:

  • 프롬프트: “한국 전통 음식의 역사에 대해 설명하기 전에, 관련 배경 지식을 먼저 생성해줘.”
  • 예상 답변: “한국 전통 음식은 농경 사회에서 시작되어… (역사, 주요 재료, 지역별 특징 등을 기술한 후) 전통 음식 소개.”

예시 2:

  • 프롬프트: “현대 예술의 주요 흐름을 설명하기 전에, 관련 용어와 역사적 배경을 나열해줘.”
  • 예상 답변: “현대 예술에서 중요한 용어로는 추상표현주의, 팝 아트 등이 있으며… (배경 지식 생성 후) 주요 흐름 설명.”

예시 3:

  • 프롬프트: “인공지능의 발전 과정을 설명하기 전에, 머신러닝, 딥러닝, 신경망 등 관련 기술 용어와 발전 단계를 정리해줘.”
  • 예상 답변: “먼저 기계학습의 기초부터 딥러닝의 발전, 이후 신경망 구조의 변화 등을 설명한 후 인공지능 발전 과정을 기술.”

2.2 Prompt Chaining

설명:
Prompt Chaining은 복잡한 작업을 여러 단계로 나누어, 각 단계의 출력을 다음 단계의 입력으로 사용하는 기법입니다. 이를 통해 문제를 세분화하고, 단계별로 체계적으로 해결할 수 있습니다.

예시 1:

  • 단계 1: “긴 기사 본문을 요약해줘.”
  • 단계 2: “요약된 내용에 기반해 관련 질문을 생성해줘.”
  • 단계 3: “생성된 질문에 대해 답변을 도출해줘.”

예시 2:

  • 단계 1: “소설의 등장인물과 그 특징을 분석해줘.”
  • 단계 2: “분석 결과를 바탕으로 주요 갈등 구조를 요약해줘.”
  • 단계 3: “갈등 구조에 대한 해석을 제공해줘.”

예시 3:

  • 프롬프트 체인 예: “데이터셋 분류 → 특성 추출 → 모델 선택. 각 단계에서 필요한 작업과 결과를 차례로 설명해줘.”

2.3 Tree of Thought

설명:
Tree of Thought는 문제 해결 시 여러 가능한 사고 경로(분기)를 동시에 탐색하는 기법입니다. 각 분기를 통해 다양한 해결책을 검토하고, 최종적으로 가장 타당한 결론을 선택할 수 있게 합니다.

예시 1:

  • 프롬프트: “수열 5, 10, 15, …의 일반항을 구하는 다양한 방법을 분기별로 탐색한 후, 가장 타당한 결론을 선택해줘.”
  • 예상 답변: “각 분기에서 등차수열의 성질을 고려해 일반항 aₙ = 5n을 도출.”

예시 2:

  • 프롬프트: “‘누가 범인인가?’ 문제 상황에서 각 용의자의 시나리오를 트리 형태로 분기하여 분석 후, 가장 설득력 있는 결론을 선택해줘.”
  • 예상 답변: “각 용의자의 증거와 알리바이를 비교 분석하여 최종 용의자를 선정.”

예시 3:

  • 프롬프트: “어떤 방정식의 해를 구하는 다양한 방법을 분기별로 시도한 후, 최적의 해법을 도출해줘.”
  • 예상 답변: “여러 방법을 검토한 결과, 가장 간단하면서도 정확한 해법을 선택.”

2.4 Retrieval Augmented Generation (RAG)

설명:
Retrieval Augmented Generation은 외부 데이터나 문서를 검색(리트리벌)하여 그 정보를 기반으로 응답을 생성하는 기법입니다. 최신 정보나 특정 도메인의 세부 지식이 필요한 문제에서 특히 유용합니다.

예시 1:

  • 프롬프트: “최근 AI 연구 동향에 대해 답변하기 전에, 최신 논문 요약을 검색해서 포함해줘.”
  • 예상 답변: “최신 논문에서 제시된 주요 연구 주제와 동향을 요약한 후, 이를 바탕으로 AI 연구 동향을 서술.”

예시 2:

  • 프롬프트: “한국의 2024년 경제 전망에 대해 최신 뉴스와 보고서를 검색하여 분석한 후 답변해줘.”
  • 예상 답변: “최신 경제 데이터와 보고서를 인용해 2024년 경제 전망을 분석하여 제시.”

예시 3:

  • 프롬프트: “COVID-19 백신의 효과에 대해 신뢰할 수 있는 자료(예: WHO 보고서)를 검색한 후, 그 정보를 바탕으로 답변해줘.”
  • 예상 답변: “WHO 보고서 등의 최신 자료를 인용하여 백신 효과와 관련 통계를 포함한 답변 도출.”

2.5 Automatic Prompt Engineer

설명:
Automatic Prompt Engineer는 여러 프롬프트 변형을 자동으로 생성하고, 테스트를 통해 가장 효과적인 프롬프트를 선택하도록 하는 기법입니다. 반복적이고 자동화된 과정을 통해 프롬프트의 성능을 최적화할 수 있습니다.

예시 1:

  • 프롬프트: “번역 작업을 위한 최적의 프롬프트를 자동으로 생성한 후, 가장 정확한 결과를 도출할 수 있도록 개선해줘.”
  • 예상 답변: “여러 프롬프트 버전을 생성, 테스트 후 가장 높은 번역 정확도를 보이는 프롬프트 선택.”

예시 2:

  • 프롬프트: “요약 문장 생성을 위한 프롬프트를 자동으로 개선하는 과정을 단계별로 설명해줘.”
  • 예상 답변: “초기 프롬프트, 수정 프롬프트, 최종 프롬프트의 변화 과정을 비교 분석하는 내용 제시.”

예시 3:

  • 프롬프트: “질문 생성 작업에 대해 자동으로 프롬프트를 개선하는 예시를 보여줘.”
  • 예상 답변: “자동화된 시스템이 여러 버전의 프롬프트를 생성하고, 사용자 피드백을 반영해 최적화된 프롬프트 선택 과정을 설명.”

2.6 Active-Prompt

설명:
Active-Prompt는 대화형 상황에서 모델의 중간 출력이나 사용자 피드백을 반영하여 프롬프트를 동적으로 수정하는 기법입니다. 이를 통해 실시간 상호작용 중에 답변의 정확도와 구체성을 향상시킬 수 있습니다.

예시 1:

  • 프롬프트: “초기 답변을 제시한 후, 추가 질문에 따라 답변을 보완해줘.”
  • 예상 답변: “첫 번째 응답 후, 사용자의 추가 질문을 반영하여 상세 설명을 덧붙임.”

예시 2:

  • 프롬프트: “대화형 상황에서 첫 번째 답변에 대한 보충 설명을 요청하면, 그 피드백을 반영하여 답변을 수정해줘.”
  • 예상 답변: “사용자 피드백을 토대로 추가 정보와 사례를 포함한 수정된 답변 생성.”

예시 3:

  • 프롬프트: “문제 해결 중 모호한 부분이 있으면 추가 정보를 요청하고, 그에 따른 보완 답변을 제공해줘.”
  • 예상 답변: “중간에 발생한 모호함을 해소하기 위해 추가 질문 후, 수정 및 보완된 답변 제공.”

2.7 Directional Stimulus Prompting

설명:
Directional Stimulus Prompting은 프롬프트 내에 특정 방향의 사고나 주의를 유도하는 자극(Stimulus)을 포함하여, 모델이 중요 포인트나 우선순위를 명확하게 인식하도록 하는 기법입니다.

예시 1:

  • 프롬프트: “답변 작성 시, 반드시 원인과 결과를 구분하여 서술해줘.”
  • 예상 답변: “원인 분석 후 결과를 단계별로 구분하여 서술.”

예시 2:

  • 프롬프트: “글의 구조를 분석할 때, 각 문단의 주제 문장을 먼저 식별한 후 세부 내용을 덧붙여 설명해줘.”
  • 예상 답변: “각 문단의 주제를 먼저 요약하고, 이후 세부 설명을 추가하여 분석.”

예시 3:

  • 프롬프트: “답변을 작성할 때, 중요한 정보를 우선순위에 따라 나열해줘.”
  • 예상 답변: “핵심 정보를 우선적으로 배치하고, 부수적인 정보를 그 뒤에 서술.”

2.8 ReAct (Reasoning and Acting)

설명:
ReAct 기법은 모델이 문제를 해결하는 과정에서 단순한 추론(Reasoning)뿐 아니라, 중간 계산, 정보 검색 등 실제 행동(Acting)을 포함해 상호 보완적으로 작용하도록 하는 방식입니다. 이를 통해 복잡한 문제에서 단계별 검증과 피드백을 포함한 응답을 생성할 수 있습니다.

예시 1:

  • 프롬프트: “문제를 해결하기 위해 먼저 관련 데이터를 검색한 후, 그 결과를 바탕으로 계산하여 최종 결론을 도출해줘.”
  • 예상 답변: “검색된 데이터와 중간 계산 과정을 단계별로 설명한 후 최종 답안을 도출.”

예시 2:

  • 프롬프트: “대화형 AI가 사용자 질문에 대해 정보를 수집하고, 각 단계에서 중간 결론을 내며 최종 답변을 생성하는 과정을 설명해줘.”
  • 예상 답변: “각 단계별로 정보를 수집 및 검증한 후, 최종 결론을 도출하는 일련의 과정을 서술.”

예시 3:

  • 프롬프트: “복잡한 수학 문제를 풀 때, 중간 계산 결과를 출력하고 이를 검증한 후 최종 답안을 제공하는 ReAct 방식으로 문제를 풀어줘.”
  • 예상 답변: “중간 계산 및 검증 과정을 포함해 단계별로 문제를 해결한 후 최종 결과를 제시.”

프롬프트 예제 : 최신 AI 에이전트 기술의 고품질 쇼츠를 위한 보고서 작성

**역할:**
– 당신은 AI 연구팀의 유능한 관리자입니다.
– 당신의 목표는 “The Agent Factory” 쇼츠를 위한 고품질의 상세 인텔리전스 보고서를 작성하는 것입니다.
– 당신은 소프트웨어 개발자에게 영향력 있고 관련성 있는 AI 에이전트 개발에만 집중합니다.

**도구:**
– 당신은 도구로 사용할 수 있는 두 명의 전문 에이전트로 구성된 팀을 보유하고 있습니다.
1. `google_search_agent` : 뉴스, 보도자료 및 기술 문서에 대한 일반적인 웹 검색을 수행하는 전문가입니다.
2. `reddit_agent` : 특정 서브레딧에서 실제 개발자 대화를 찾는 전문가입니다.

**맥락:**
– 결론을 도출하기 위해 `google_search_agent` 와 `reddit_agent` 모두의 정보를 종합해야 합니다 .
– 모든 정보에 대한 주요 필터는 개발자에게 직접적이고 중요한 영향을 미치는지 여부입니다. 순전히 비즈니스 중심적이거나 마케팅적인 내용은 삭제하십시오.
– 다음에 나타나는 주제 여러 출처(예: 기술 뉴스와 Reddit 모두)는 보고서에서 더 중요하고 우선 순위가 높은 것으로 간주해야 합니다.
– 최종 보고서는 작업 섹션에 설명된 대로 정확하게 구성되어야 합니다.

**작업:**
1. **현재 날짜 찾기:** 가장 먼저 해야 할 일은 `google_search_agent` 에 위임하는 것입니다 . 현재 날짜를 찾도록 지시합니다.
2. **집중 연구 위임:**
– 날짜를 기준으로 지난 7일 동안의 시작일과 종료일을 계산합니다.
– `google_search_agent` 에 `after:YYYY-MM-DD` 및 `before:YYYY-MM-DD` 연산자를 사용하여 계산된 날짜 범위 내에서 새로운 오픈소스 에이전트 프레임워크, 인기 라이브러리(예: LangChain, ADK, CrewAI 또는 LlamaIndex)에 대한 업데이트, 에이전트 구축에 대한 기술 튜토리얼에 대한 뉴스를 찾도록 지시합니다 . – ` reddit_agent`에 `reddit_agent` 와 같은 서브 레딧에서 실질적인 과제, 새로운 기술 및 새로운 도구에 대한 의견에 대한 가장 인기 있는 개발자 대화를 찾도록 지시합니다 . “LocalLLaMA”, “MachineLearning”, “LangChain”, “AI_Agents “, “LLMDevs”, “singularity”. 3. **최종 보고서 종합 및 작성**: – **두** 전문 상담원이 제공한 정보를 검토합니다 . – 결과를 결합, 필터링 및 중복 제거합니다. 기본 필터는 다음과 같습니다.


**개발자에게 직접적이고 중대한 영향을 미치는 주제만 선택하세요.**
**일반 웹 검색과 Reddit에서 여러 소스에 나타나는 주제에 특별히 주의하세요.** 이러한 주제는 가장 중요할 가능성이 높고 우선순위를 정해야 합니다.
– 보고서는 ** 날짜 범위를 지정하는 헤더로 시작해야 합니다
.** – 보고서 본문은 아래에 자세히 설명된 대로 정확히 세 개의 섹션으로 구성되어야 합니다.
– 각 항목에 대해 **4가지 정보를 제공해야 합니다 .**: 1~2 문장 설명, 들여쓰기된 “개발자 영향” 분석, “우선순위 근거” 및 검증 가능한 소스 URL.


**최종 보고서 형식:**

**🔥 에이전트 개발자를 위한 상위 5개 트렌드**
1. **[트렌드 1 이름]** : [이 트렌드에 대한 1~2문장 설명]
**(출처: [URL])**
* **개발자 영향** : [개발자에게 중요한 이유에 대한 1문장 설명]
* **우선순위 근거** : [이 주제가 선택된 이유에 대한 1문장 설명, 예: “Reddit에서 많은 논의가 있었고 여러 기술 문서에서 언급되었습니다.”]
2. … (총 5개까지)

**🚀 에이전트 개발자를 위한 상위 5개 릴리스**
1. **[릴리스 1 이름]** : [도구, 프레임워크 또는 모델에 대한 1~2문장 설명]
**(출처: [URL])**
* **개발자 영향** : [개발자에게 중요한 이유에 대한 1문장 설명]
* **우선순위 근거** : [이 주제가 선택된 이유에 대한 1문장 설명 선택됨.]
2. … (총 5개까지)

**🤔 에이전트 개발자의 상위 5개 질문**
1. **[질문 1 주제]** : [개발자가 묻는 내용에 대한 1~2문장 설명.]
**(출처: [URL])**
* **개발자에게 미치는 영향** : [개발자에게 중요한 이유에 대한 1문장 설명.]
* **우선순위 근거** : [이 주제가 선택된 이유에 대한 1문장 설명.]
2. … (총 5개까지)

자동화 프롬프트 예시

“””
[TYPE_OF_INPUT]이 있는데 [THIS_SPECIFIC_TASK]를 자동화하고 싶습니다.
제약 조건은 다음과 같습니다.
– 효율적이고 확장 가능하며 재사용이 쉬워야 합니다
. – 출력은 깔끔하고 워크플로의 다음 단계에서 바로 사용할 수 있어야 합니다.
– 작업에 변환이나 서식 지정이 포함된 경우 업계 모범 사례를 따라야 합니다. 다음

을 제공해 주시겠습니까?
– 이 작업을 수행하는 깔끔하고 모듈화된 Python 스크립트
– 필요한 라이브러리 목록과 그 이유
– 나중에 개선하거나 확장할 수 있는 방법에 대한 제안
“””

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다