RAG발행일 2025. 10. 29.원본 https://blog.naver.com/jword_/224057526862 ↗

프롬프트 엔지니어링 알아보기

프롬프트 엔지니어링 알아보기 — #프롬프트엔지니어링 #개발자의도구들 *09.29에 진행한 내용 프롬프트 엔지니어링이란? 프롬프트는 생성형 ...

#RAG#Naver Blog

#프롬프트엔지니어링 #개발자의도구들

​

\*09.29에 진행한 내용

이미지

프롬프트 엔지니어링이란?

이미지

프롬프트는 생성형 AI에게하는 텍스트형 질의입니다.

  • 프롬프트를 어떻게 작성하냐에 따라서 결과가 완전히 변합니다.

​

프롬프트 엔지니어링 구성요소

이미지

이미지

프롬프트 엔지니어링에는 다양한 구성요소가 존재한다. 무조건 이렇게 써야한다는 것 보다는 이렇게 작성하면 응답 정확도가 올라간다.

​

  • 역할지정(Role): AI에게 특정한 역할 페르소나를 부여합니다..
  • "인사 담당자 처럼 행동해줘"

​

  • 맥락(Context): 작업을 수행하는 데 필요한 배경 정보를 제공합니다.
  • "현재 나의 개발 스택은 ~이렇다. "

​

  • 작업 명시(TASK): AI가 구체적으로 무엇을 해야하는지 명확하게 지시합니다.
  • "회사 채용 공고를 보고 핵심 스택 키워드를 추출해줘"

​

  • 입력(INPUT): 분석하거나 처리해야할 실제 데이터나 정보를 입력합니다.
  • 회사 채용 공고를 스크랩해서 제시

​

  • 출력(OUTPUT): 원하는 결과물의 형태를 지정합니다.
  • "json 파일로 출력해줘, PDF 파일로 출력해줘"

​

  • 예시(Example): 원하는 결과에 대한 구체적인 예시를 제시합니다.
  • "주제, 필요성, 관련 키워드 - 글의 목차"

​

  • 제약사항: 지켜야할 규칙이나 피해야할 것들을 명시합니다.
  • "500자 내로 서술, 전문용어는 피해줘"

​

  • Tone & Style:응답의 분위기와 문제를 지정

-

  • "무서운 면접관 말투로", "유머러스 하게"

이미지

이미지

  • 프롬프트 예시
  • 구성요소를 다양하게 만들어서 직접 활용해도 무관!
  • 정해진 규칙이 아닌 이렇게 하면 좋더라~ 느낌

​

​

​

프롬프트 엔지니어링 패턴들

이미지

구성요소를 잘 활용하여 다양한 프롬프트 패턴을 만들 수 있습니다.

​

📌System prompt

이미지

System Prompt는 AI 모델의 기본 행동 방식과 역할을 정의하는 최상위 지시 사항입니다.

  • AI와의 대화가 시작되기 전에 미리 설정되는 AI의 정체성과 행동 규칙을 정의하는 프롬프트입니다.
  • 모든 대화에 걸쳐 유지되며, 모든 프롬프트보다 우선순위를 가집니다. 실제 시스템에서는 일반 사용자에게 보여지지 않습니다. 역할, 규칙, 제한사항 등의 구성요소가 포함됩니다.

​

장점

  • 한 번 정한 지침을 지속적으로 사용 가능하다.
  • 반복 작업이 줄어듦
  • tone/style에 효과적이다.

​

단점

  • 유연성이 떨어진다.
  • 창의력이 억제된다.

​

예시

javascript 코드 예제
                                    [Role] AI-Agent 학습자를 위한 Python langchain 튜터

[Rule]
1. 코드는 항상 주석과 함께 설명한다.
2. 어려운 용어는 사용하지 않는다.
3. 예제 코드를 먼저 제시하고 설명한다.

[Constraints]
1. 문제를 낼때 정답을 바로 제시하지 말고 학습자가 스스로 생각하도록 유도
2. 스스로 생성한 코드는 예외 및 에러 상황에 대한 가능성을 사용자에게 제시하기

​

📌Few-shot learning

이미지

프롬프트 내에 몇 가지 예시를 제공하여 원하는 작업을 수행하게 하는 기법입니다.

  • In-Context Learning: 모델을 직접 변경할 필요 없습니다.
  • 예시가 없는 경우 Zero-Shot이라고 불립니다.

​

​

장점

  • 모호함을 줄인다.
  • 분류 작업에 탁월하다.
  • 긴 예시가 필요없다.

​

단점

  • 예시가 정확해야 한다.
  • 잘못된 예시 = 잘못된 결과
  • Token 소비가 증가
  • 예시 입력 때문에 창의적인 작업에 부적합

​

​

예시

javascript 코드 예제
                                    [task] 리뷰를 읽고 감정을 분석해줘

[example]
Review: "The product broke after one day. Terrible quality."
Sentiment: Negative
Review: "Absolutely love it! Best purchase this year."
Sentiment: Positive

📌Chain-of-Thought

이미지

복잡한 문제를 해결할 때 최종 답변만 제시하는 것이 아니라, 단계적인 추론 과정을 명시적으로 표현하도록 유도하는 프롬프팅 기법입니다.

​

​

장점

  • 복잡한 문제에 대한 정답 정확도가 크게 향상
  • 추론 과정을 볼 수 있다.
  • 모델의 정확성 판단이 더 간단해짐
  • 수학, 논리학과 같은 문제에 적합

​

단점

  • 체인이 길어짐에 따라 토큰 소모가 심해진다.
  • 간단한 작업에는 적합하지 않다.
  • 응답 속도가 느려진다.
  • 중간 단계 추론이 에러가 나면 전체 과정이 에러

​

​

예시

javascript 코드 예제
                                    질문: 카페에서 커피 3잔(각 4,500원)과 케이크 2개(각 6,000원)를 샀습니다.
10% 할인을 받았다면 최종 금액은? 단계별로 계산해서 보여줘

답변: 단계별로 계산해보겠습니다.

1단계: 커피 총 금액 계산
3잔 × 4,500원 = 13,500원
2단계: 케이크 총 금액 계산
2개 × 6,000원 = 12,000원
3단계: 할인 전 총액
13,500원 + 12,000원 = 25,500원
4단계: 10% 할인 금액
25,500원 × 0.1 = 2,550원
5단계: 최종 금액
25,500원 - 2,550원 = 23,850원

따라서 최종 금액은 23,850원입니다.
javascript 코드 예제
                                    질문: [복잡한 문제]
"Let's think step by step" 또는 "단계별로 생각해봅시다"

📌Chain-of-Thought

이미지

Reasoning(추론)과 Acting(행동)을 결합한 프롬프팅 패턴입니다.

​

AI가 생각하고, 행동하고, 관찰하는 사이클을 반복하여 복잡한 작업을 수행하도록 하는 기법입니다.

​

전통적인 CoT는 추론만 하지만, ReAct는

  1. Thought: 현재 상황 분석 및 다음 행동 계획
  1. Action: 구체적인 도구 사용 또는 작업 수행
  1. Observation: 행동의 결과 확인

​

이 3단계를 반복합니다.

​

​

장점

  • API와 연동하여 다양한 작업 수행
  • 실시간 정보와 결합 가능
  • 실제 데이터를 통해 할루시네이션을 제거

​

단점

  • 외부 도구와 통합 설정 필요
  • 실행과 디버깅이 더 어렵다
  • 지연시간이 증대
  • 사용하는 도구가 많아서

​

​

예시

javascript 코드 예제
                                    Question: [사용자 질문]
Thought 1: [현재 상황 분석, 무엇이 필요한지 판단]
Action 1: [구체적인 행동 - 도구 사용, 검색 등]
Observation 1: [행동의 결과]
Thought 2: [결과 분석, 다음 단계 결정]
Action 2: [다음 행동]
Observation 2: [행동의 결과]
...
Thought N: [충분한 정보 확보, 최종 답변 준비]
Action N: Finish[최종 답변]
javascript 코드 예제
                                    Question: 2023년 한국의 GDP는 얼마이고, 2022년 대비 몇 퍼센트 증가했나요?

Thought 1: 2023년 한국 GDP를 먼저 찾아야 합니다.
Action 1: Search[2023 한국 GDP]
Observation 1: 2023년 한국의 GDP는 약 1조 7,130억 달러입니다.

Thought 2: 이제 2022년 한국 GDP도 필요합니다.
Action 2: Search[2022 한국 GDP]
Observation 2: 2022년 한국의 GDP는 약 1조 6,730억 달러입니다.

Thought 3: 이제 증가율을 계산할 수 있습니다.
Action 3: Calculate[(1,713 - 1,673) / 1,673 * 100]
Observation 3: 약 2.39%

Thought 4: 필요한 정보를 모두 확보했으므로 답변할 수 있습니다.
Action 4: Finish[2023년 한국 GDP는 약 1조 7,130억 달러이며,
2022년 대비 약 2.39% 증가했습니다.]
예시 2: 코드 디버깅

📌Self-Consistency

이미지

복잡한 추론 문제에서 AI의 정확도를 높이기 위한 기법입니다. 같은 문제를 여러번 다른 방식으로 풀어보고, 가장 많이 나온 답을 최종답으로 선택합니다.

​

장점

  • 정확도가 상승
  • 할루시네이션 제거
  • 신뢰도 증가

​

단점

  • N번의 추론당 토큰이 N배 증가
  • 훨씬 느리고, 비싸다.
  • 간단한 문제에 적합하지 않다.
  • 추론 path에서 에러 발생시 정확도가 떨어짐

​

​

예시

javascript 코드 예제
                                    Question: 식당에 23명이 있었습니다. 14명이 나가고 8명이 들어왔습니다.
이제 몇 명인가요?

=== 추론 경로 1 ===
먼저 나간 사람 계산: 23 - 14 = 9명
그 다음 들어온 사람 더하기: 9 + 8 = 17명
답: 17명

=== 추론 경로 2 ===
변화량 계산: -14 + 8 = -6명
최종: 23 - 6 = 17명
답: 17명

=== 추론 경로 3 ===
순서대로:
- 처음: 23명
- 14명 나감: 23 - 14 = 9명
- 8명 들어옴: 9 + 8 = 17명
답: 17명

​