프롬프트 엔지니어링 가이드
ChatGPT, Claude, Gemini를 위한 무료 프롬프트 엔지니어링 가이드입니다. 프롬프트 작성법, 핵심 기법, 코딩용 프롬프트, 모델이 틀리는 지점까지 다룹니다. 모든 프롬프트는 수정해서 사용하는 AI 앱에서 바로 열 수 있습니다.
AI Prompts 가이드 학습 시작하기시작하기
- 프롬프트란프롬프트는 AI 모델에게 무엇을 만들어 달라고 전달하는 텍스트입니다. 프롬프트에 무엇이 들어가는지, 글쓰기·코드·이미지용 실제 프롬프트 예시, 그리고 프롬프트가 답변이나 시스템 프롬프트와 어떻게 다른지 알아봅니다.
- 프롬프트 엔지니어링프롬프트 엔지니어링은 AI 모델이 필요한 결과를 내도록 지시문을 쓰고 테스트하는 작업입니다. 이 가이드는 왜 효과가 있는지 설명하고 핵심 기법을 한눈에 정리합니다.
- 프롬프트 작성법좋은 프롬프트는 짧은 업무 지시서입니다. 역할, 할 일, 모델이 추측할 수 없는 맥락, 작업할 자료, 답변의 모양, 제약 조건으로 이루어집니다. 각 요소는 답변이 빗나가는 서로 다른 원인을 막아 줍니다.
- 프롬프트 예시학습, 코딩, 글쓰기, 업무 계획에 바로 쓸 수 있는 프롬프트 13개입니다. 빈칸을 채운 다음 프롬프트를 복사하거나 ChatGPT나 Claude에서 바로 열어 보세요.
- 시스템 프롬프트시스템 프롬프트는 AI 모델과의 대화 전체에 적용되는 상시 지시 모음입니다. 어디에 설정하는지, 무엇을 넣는지, 사용자 메시지와 어떻게 다른지 알아봅니다.
- 토큰과 컨텍스트AI 모델은 텍스트를 단어의 작은 조각인 토큰 단위로 읽고, 한 번에 담을 수 있는 토큰 수에는 한계가 있습니다. 이것이 컨텍스트 윈도우입니다. 둘이 어떻게 동작하는지, 대화가 길어지면 어떻게 해야 하는지 알아봅니다.
- TemperatureTemperature는 언어 모델이 다음 단어를 고를 때 무작위성을 얼마나 쓸지 정하는 값입니다. 각 단어의 확률을 어떻게 바꾸는지, 언제 낮게 또는 높게 설정할지, top_p와는 어떻게 다른지 알아봅니다.
핵심 기법
- 제로샷 프롬프팅제로샷 프롬프팅은 답의 예시 없이 지시만으로 모델에게 작업을 시키는 방법입니다. 대부분의 사람이 ChatGPT, Claude, Gemini를 쓰는 방식이고, 흔한 작업에 지시가 정확할 때 잘 통합니다.
- Few-shot 프롬프팅Few-shot 프롬프팅은 입력과 원하는 답으로 된 예시 몇 개를 프롬프트에 넣어 모델이 패턴을 따라 하게 하는 방법입니다. 모델이 추측하지 못할 형식, 라벨 체계, 사내 스타일을 가르치는 가장 빠른 방법입니다.
- 생각의 사슬(CoT)생각의 사슬(Chain of Thought) 프롬프팅은 모델이 답을 내기 전에 추론 과정을 쓰게 하는 방법입니다. 여러 단계가 필요한 수학과 논리 문제에서 가장 효과가 크고, 답하기 전에 이미 생각하는 추론 모델에서는 효과가 작습니다.
- 역할 프롬프팅역할 프롬프팅은 튜터, 코드 리뷰어, 면접관처럼 모델에게 맡을 역할을 주는 방법입니다. 역할은 답변이 누구를 위해 어떤 기준으로 쓰이는지를 바꾸지만, 모델에게 없는 지식을 더해 주지는 않습니다.
- 구조화된 출력구조화된 출력은 JSON, 표, 템플릿처럼 정해진 모양으로 답을 받아 프로그램이나 사람이 다시 손보지 않고 쓸 수 있게 하는 방법입니다. 스키마를 주고, 값이 없을 때 할 일을 정하고, 코드에서 결과를 검증하세요.
- 구분자와 XML 태그구분자는 붙여 넣은 자료가 어디서 시작하고 끝나는지 표시해서, 모델이 지시와 작업할 텍스트를 구분하게 해 줍니다. 따옴표, 백틱 세 개, ### 줄, XML 태그 모두 쓸 수 있고, 자료가 여러 개일 때는 XML 태그가 가장 잘 통합니다.
- 프롬프트 템플릿프롬프트 템플릿은 이미 테스트한 프롬프트에 매번 바뀌는 부분을 빈칸으로 남겨 둔 것입니다. 입력칸이 있는 템플릿을 바로 복사해 쓰고, 여러분의 가장 좋은 프롬프트를 다섯 단계로 템플릿으로 바꿔 보세요.
고급 기법
- 프롬프트 체이닝프롬프트 체이닝은 작업을 더 작은 프롬프트의 순서로 나누고, 각 단계의 출력을 다음 단계의 입력으로 넘기는 방법입니다. 각 단계는 한 가지 일만 하고, 다음 단계가 실행되기 전에 결과를 확인할 수 있습니다.
- 자기 일관성자기 일관성(Self-Consistency) 프롬프팅은 같은 추론 문제를 여러 번 묻고, 실행마다 각자의 방식으로 추론하게 한 다음, 가장 자주 나온 답을 고르는 방법입니다. 원리, 손으로 하는 법, 코드로 하는 법을 알아봅니다.
- 생각의 나무(ToT)생각의 나무(Tree of Thought) 프롬프팅은 모델이 여러 부분 해답을 탐색하고, 각각을 평가하고, 유망한 가지만 남기게 하는 방법입니다. 원래 방법의 원리, 직접 해 볼 수 있는 프롬프트 하나짜리 버전, 그 버전의 한계를 알아봅니다.
- ReAct 프롬프팅ReAct 프롬프팅은 모델이 작업에 대한 추론과 도구 호출을 번갈아 하면서, 결과를 읽은 뒤에 다음 단계를 정하게 하는 방법입니다. 대부분의 AI 에이전트를 움직이는 루프입니다.
- 메타 프롬프팅메타 프롬프팅은 모델에게 프롬프트 자체를 다루게 하는 방법입니다. 프롬프트를 새로 쓰게 하거나, 가진 프롬프트를 개선하게 하거나, 작업을 다른 모델 호출용 프롬프트로 나누게 합니다. 부풀려진 프롬프트를 돌려받지 않고 각각을 하는 방법을 알아봅니다.
- 컨텍스트 엔지니어링컨텍스트 엔지니어링은 호출마다 모델의 컨텍스트 윈도우에 들어가는 모든 것, 즉 지시, 문서, 도구 결과, 메모리, 대화 기록과 그 순서를 정하는 일입니다. 여러분이 입력하는 프롬프트는 그중 일부일 뿐입니다.
코딩을 위한 프롬프트
- 코드 작성 프롬프트코딩 프롬프트는 작은 명세서처럼 읽힐 때 잘 통합니다. 언어와 버전, 입력과 출력, 예외 상황, 코드가 통과해야 할 테스트를 담고, 한 번에 작은 단계 하나씩 요청하세요.
- 디버깅 프롬프트ChatGPT나 Claude로 디버깅하려면 전체 에러와 그 에러를 낸 코드를 붙여 넣고, 기대한 것과 실제로 일어난 일을 말하고, 이미 시도한 것을 적고, 고치는 방법보다 원인을 먼저 요청하세요.
- 코드 설명 프롬프트AI에게 코드를 여러분의 수준에 맞춰 한 줄씩 설명해 달라고 하고, 실행되면서 값이 어떻게 바뀌는지 표로 보여 달라고 하세요. 이미 아는 것을 말하면 설명이 여러분이 있는 곳에서 시작합니다.
- 코드 리뷰 프롬프트좋은 코드 리뷰 프롬프트는 무엇을 볼지 말하고, 모든 지적에 심각도를 요구하고, 문제를 일으키는 구체적인 입력과 diff를 요청하고, 스타일은 건너뛰라고 합니다. 그다음 각 지적을 직접 확인하세요. 일부는 틀릴 테니까요.
한계와 안전
- AI 할루시네이션AI 할루시네이션(환각)은 자신 있게 말하지만 틀린 답입니다. 지어낸 사실, 인용, 함수, 패키지 같은 것들입니다. 언어 모델이 무언가를 찾아보는 대신 그럴듯한 텍스트를 예측하기 때문에 생깁니다. 프롬프트로 줄일 수는 있지만, 잡아내는 것은 확인뿐입니다.
- 프롬프트 인젝션프롬프트 인젝션은 사용자가 입력했거나 이메일, 웹 페이지, 파일에 숨겨진 텍스트를 모델이 읽고, 그 텍스트가 애플리케이션이 준 지시를 덮어쓰는 공격입니다. 구분자는 도움이 되지만 막지는 못하고, 모델이 할 수 있는 일을 제한해야 막을 수 있습니다.
- 프롬프트 반복 개선프롬프트 개선은 작은 실험처럼 할 때 가장 잘 됩니다. 좋은 답의 조건을 정하고, 고정된 테스트 입력 몇 개를 두고, 한 번에 하나씩 바꾸고, 출력을 나란히 비교하세요.