AI 도구를 쓰다 보면 어느 순간 이런 생각이 든다. 같은 질문인데 왜 어떨 때는 쓸 만한 답이 나오고, 어떨 때는 엉뚱한 결과가 나올까. 단어를 다듬고 정중하게 부탁해봐도 결과가 크게 달라지지 않을 때, 문제의 원인은 표현이 아니라 구조에 있는 경우가 많다. LLM은 사용자가 얼마나 정중하게 물었는지가 아니라, 프롬프트 안에서 역할·맥락·작업·형식이 얼마나 명확하게 정의됐는지를 바탕으로 응답을 생성한다.
이 글은 프롬프트를 “잘 쓰는 법”이 아니라 프롬프트를 설계하는 법에 대한 내용이다. 2025년 현재 실무에서 검증되고 있는 구조 프레임워크, 고급 기법, 그리고 자주 반복되는 실수를 한 흐름으로 정리했다. ChatGPT, Claude, Gemini 어느 모델을 쓰든 구조 원칙은 공통으로 적용된다.
|
🎭
Layer 1 · Role
AI에게 어떤 역할을 맡길지 정의한다. “시니어 마케터”, “법률 전문가”, “데이터 애널리스트”처럼 구체적일수록 응답 톤과 관점이 정렬된다.
기본
|
🗂️
Layer 2 · Context
배경 정보와 제약 조건을 제공한다. 청중이 누구인지, 무엇을 이미 알고 있는지, 어떤 상황인지를 넣을수록 응답의 관련성이 높아진다.
핵심
|
🎯
Layer 3 · Task
구체적인 작업 지시다. “요약해줘”보다 “3문단으로 요약하고 핵심 수치를 굵게 표시해줘”처럼 동작 동사와 기준을 함께 명시한다.
필수
|
📐
Layer 4 · Format
출력 형식을 지정한다. 리스트, 표, JSON, 마크다운 등 원하는 구조를 직접 명시하지 않으면 모델이 임의 형식으로 응답한다.
출력 제어
|
Layer 1 · Role — 역할 정의
AI에게 어떤 전문가 역할을 맡길지 지정한다. 역할이 구체적일수록 응답 톤과 관점이 정렬된다.
기본
Layer 2 · Context — 맥락 제공
배경 정보, 청중, 제약 조건을 넣는다. 맥락이 많을수록 응답의 관련성이 높아진다.
핵심
Layer 3 · Task — 작업 지시
동작 동사와 기준을 함께 명시한다. “요약해줘”보다 “3문단으로 요약하고 수치를 굵게”처럼.
필수
Layer 4 · Format — 출력 형식
리스트·표·JSON 등 원하는 형식을 직접 명시하지 않으면 모델이 임의로 결정한다.
출력 제어
왜 표현보다 구조가 먼저인가
LLM은 입력된 텍스트의 패턴을 바탕으로 다음에 올 가능성이 높은 토큰을 예측한다. 실시간으로 “생각”하거나 의도를 추론하는 것이 아니다. 이 구조를 이해하면 왜 정중한 표현보다 명확한 구조가 결과에 더 큰 영향을 미치는지가 자연스럽게 이해된다.
모델이 혼란스러울 때, 그 원인은 대부분 두 가지다. 작업이 모호하거나, 필요한 맥락이 없거나. 전자는 Task 레이어의 문제이고, 후자는 Context 레이어의 문제다. 표현을 바꾸는 게 아니라 이 두 레이어를 보강하는 것이 실질적인 해결이다.
또 하나 고려해야 할 점은 모델마다 구조에 반응하는 방식이 다르다는 것이다. Claude는 <task>, <context> 같은 XML 태그 형식에서 명확성을 잘 인식한다. Gemini는 개요(outline) 형식의 계층 구조에 강하다. GPT 계열은 해시태그나 번호 목록 같은 단순 구분자도 잘 처리한다 [자료 근거: Lakera AI Blog, Google AI for Developers 프롬프트 전략 문서, 확인일 2025]. 구조 원칙은 공통이지만 세부 포맷은 모델에 맞게 조정하는 편이 낫다.
프롬프트를 구성하는 4개 레이어
앞서 인포그래픽에서 정리한 Role · Context · Task · Format 4개 레이어는 현재 실무에서 가장 널리 검증된 구조다. 각 레이어를 어떻게 채우는지에 따라 결과의 품질이 달라진다.
Role: 역할을 어디까지 구체적으로 써야 하나
“전문가처럼 답해줘”는 효과가 낮다. 어떤 분야의 전문가인지, 어떤 상황에서 일하는 전문가인지를 함께 넣어야 한다. “B2B SaaS 스타트업의 콘텐츠 마케터로서, 기술에 익숙하지 않은 의사결정자를 대상으로 작성해줘”처럼 역할 + 청중을 함께 지정하는 방식이 훨씬 구체적인 출력을 만든다.
Context: 얼마나 많이 넣어야 하나
일반적으로 맥락이 많을수록 응답의 관련성은 높아진다. 다만 주의할 점이 있다. 긴 컨텍스트를 줄 때는 맥락을 먼저 배치하고, 구체적인 지시사항은 프롬프트 끝에 두는 것이 효과적이다. Google AI for Developers의 가이드는 이를 “앵커 컨텍스트” 방식이라고 부른다 [자료 근거: ai.google.dev/gemini-api/docs/prompting-strategies, 확인일 2025]. 관련 없는 정보를 많이 넣으면 오히려 혼선이 생길 수 있으므로, 맥락의 양보다 관련성을 우선하는 편이 낫다.
Task: 동작 동사와 기준을 함께 써야 한다
“분석해줘”, “정리해줘”처럼 동사만 있으면 모델이 기준을 스스로 결정하게 된다. “3개 항목으로 나눠 불릿 포인트로 정리하고, 각 항목은 2문장 이내로 써줘”처럼 기준을 함께 명시하면 후처리 없이 바로 쓸 수 있는 결과가 나오는 경우가 많다.
Format: 원하는 형식을 직접 보여주는 것이 가장 확실하다
“JSON으로 줘”, “표 형식으로 줘”처럼 텍스트로 지시하는 것도 효과적이지만, 원하는 출력 구조의 예시를 직접 보여주는 방법이 더 정확하다. 특히 반복적인 워크플로에서 매번 비슷한 포맷을 원한다면, 원하는 출력 예시 1~2개를 프롬프트 안에 포함시키는 방식(few-shot formatting)이 일관성을 높인다.
|
RTF 프레임워크
Role · Task · Format
가장 단순하고 범용적인 구조. 빠른 단일 작업에 적합하다. 역할 → 할 일 → 출력 형식 세 가지만 채우면 된다.
📌 적합한 상황: 콘텐츠 작성, 번역, 요약
|
RACE 프레임워크
Role · Action · Context · Expectation
빠른 배포 환경에 맞는 경량 구조. 역할과 기대 결과를 명시적으로 분리함으로써 출력 방향성을 잡는다.
📌 적합한 상황: 고객 응대, 빠른 반복 작업
|
MAGIC 9 프레임워크
Mission · Audience · Guardrails · Input · Constraints + 4
9단계 체계로 고복잡도 작업을 제어한다. 가이드레일(금지 항목)과 평가 기준까지 포함하는 엔터프라이즈 수준 구조.
📌 적합한 상황: 규제 문서, 반복 자동화 파이프라인
|
RTF — 빠른 단일 작업에
Role · Task · Format 세 가지만 채우면 된다. 콘텐츠 작성, 번역, 요약에 적합하다.
범용
RACE — 빠른 배포 환경에
Role · Action · Context · Expectation. 고객 응대나 반복 작업 자동화에 잘 맞는다.
경량
MAGIC 9 — 고복잡도 작업에
규제 문서, 자동화 파이프라인처럼 정밀 제어가 필요할 때 쓰는 9단계 구조.
엔터프라이즈
2025년 주요 프롬프트 프레임워크 비교
2025년 현재 실무에서 자주 언급되는 프레임워크는 크게 세 계열로 나뉜다. 어떤 것이 “더 좋은” 프레임워크인지보다 어떤 상황에서 어떤 구조를 선택할지가 실제로 중요한 판단이다.
RTF(Role-Task-Format)는 시작점으로 가장 적합하다. 하루에도 수십 번 AI를 호출하는 실무자라면 이 세 가지를 자동으로 채우는 습관만 들여도 결과 품질이 눈에 띄게 달라진다. 보완이 필요할 경우 Context 레이어를 추가하면 사실상 Role-Context-Task-Format 4레이어 구조가 된다.
MAGIC 9는 Tom’s Guide에서 정리한 9단계 체계로, Mission · Audience · Guardrails · Input · Constraints에 Format · Tone · Length · Evaluation 4개를 더한 구조다 [자료 근거: nomadlab.kr, 확인일 2025]. 가이드레일(금지 항목)과 자체 평가 기준까지 포함한다는 점이 다른 프레임워크와의 차이다. 엔터프라이즈 수준의 반복 파이프라인이나 규제 문서 초안 작업에서 구체적인 효과가 보고됐으나, 일회성 작업에 적용하면 오히려 과도한 설정이 될 수 있다.
Prompt = Product Spec이라는 관점도 2025년 들어 실무 커뮤니티에서 자주 등장한다. 프롬프트를 제품 명세서처럼 Role(역할) – Context(맥락) – Task(작업)의 3계층으로 정의하면 유지보수와 반복 개선이 쉬워진다는 접근이다 [자료 근거: nomadlab.kr, 확인일 2025]. 팀 단위로 AI 워크플로를 구축할 때 특히 유용하다.
<context>, <task>)가 구조 인식에 도움이 된다. Gemini는 넓은 개요에서 좁혀 들어가는 계층 구조에 강하다. GPT는 번호 목록과 해시태그 구분자에 잘 반응한다 [자료 근거: Lakera AI Blog, 확인일 2025]. 같은 프레임워크라도 세부 표기는 모델에 맞게 조정하는 편이 낫다.
고급 기법: CoT, Few-Shot, Least-to-Most
4레이어 구조를 갖췄다면 그다음은 추론 품질을 높이는 기법을 추가할 차례다. 이 기법들은 복잡한 논리 추론이 필요한 작업에서 단순 구조만으로는 한계가 있을 때 효과적이다.
Chain of Thought(CoT) — 단계적 추론 유도
CoT는 모델이 최종 답을 바로 내놓는 대신 중간 추론 과정을 거치도록 유도하는 기법이다. “단계별로 생각해줘(Think step by step)”라는 지시 하나만 추가해도 수학 계산이나 논리 분석 작업에서 정확도가 높아지는 사례가 보고되고 있다 [자료 근거: Google Cloud Prompt Engineering, IBM Research, 확인일 2025]. 다만 단순한 정보 검색이나 짧은 창작 작업에 CoT를 적용하면 불필요하게 응답이 길어지는 부작용이 있으므로 복잡한 추론이 실제로 필요한 상황에만 사용한다.
Few-Shot 프롬프팅 — 예시로 형식을 고정한다
원하는 출력 예시를 1~3개 보여주는 방식이다. 어떤 형식, 어떤 톤, 어떤 구조를 원하는지를 말로 설명하기 어려울 때 예시로 보여주면 모델이 훨씬 정확하게 따라온다. 주의할 점은 모든 예시의 형식과 구조가 일관되어야 한다는 것이다. XML 태그를 쓰기로 했다면 모든 예시에서 같은 방식을 써야 한다 [자료 근거: ai.google.dev/gemini-api/docs/prompting-strategies, 확인일 2025].
Least-to-Most — 복잡한 문제를 작게 쪼갠다
복잡한 문제를 작은 하위 문제로 나눠 순서대로 해결하게 하는 방식이다. “전체 마케팅 전략을 세워줘”가 아니라 “먼저 현재 고객층을 분류해줘 → 그다음 각 고객층의 핵심 페인포인트를 정리해줘 → 그 다음 채널별 메시지를 작성해줘”처럼 단계를 분리한다. 한 번에 너무 많은 것을 요청하면 모델이 중간 단계를 건너뛰거나 표면적인 수준에서 응답을 끝내는 경향이 있기 때문이다.
|
❌ 실수 1 · 지나치게 모호한 Task
“분석해줘”, “정리해줘”처럼 동사만 있고 기준이 없다. 모델이 기준을 스스로 정하게 된다.
→ 기준(개수, 길이, 분류 기준)을 함께 명시한다
|
❌ 실수 2 · 맥락 없는 프롬프트
이전 대화 맥락이 없는 새 세션에서 바로 본론부터 시작한다. 모델은 이전 내용을 기억하지 못한다.
→ 새 스레드에서는 핵심 맥락을 다시 요약해 제공한다
|
|
❌ 실수 3 · 한 번에 너무 많이 요청
하나의 프롬프트에 5개 이상의 서로 다른 작업을 넣는다. 중간 단계가 생략되거나 표면적 수준에서 끝난다.
→ Least-to-Most 방식으로 단계를 분리한다
|
❌ 실수 4 · 출력 형식 미지정
결과물을 어디에 쓸지 말하지 않아, 매번 형식이 달라진다. 이후 가공 작업이 따로 필요해진다.
→ Format 레이어에서 원하는 형식 예시를 함께 제시한다
|
|
❌ 실수 5 · 결과가 나쁘면 표현만 바꿔본다
단어를 바꾸거나 정중하게 다시 써도 구조 문제는 해결되지 않는다. 같은 결과가 반복된다.
→ 어느 레이어가 빠졌는지 먼저 점검한다
|
실수 1 · 모호한 Task
“정리해줘”만 있고 기준이 없다. 개수·길이·분류 기준을 함께 명시한다.
주의
실수 2 · 맥락 없는 시작
새 세션에서 바로 본론. 모델은 이전 내용을 기억하지 못한다. 핵심 맥락을 다시 요약해 준다.
주의
실수 3 · 한꺼번에 너무 많이
작업이 5개 이상이면 중간 단계가 생략된다. Least-to-Most로 분리한다.
주의
실수 4 · 형식 미지정
Format 레이어 없이 매번 형식이 달라진다. 원하는 출력 예시를 함께 넣는다.
주의
자주 하는 실수 5가지와 교정법
앞의 인포그래픽에서 정리한 5가지 실수는 실제로 프롬프트를 반복해서 쓰는 사람이라면 한 번씩은 경험한 상황이다. 공통적으로 보이는 패턴이 있다. 결과가 나쁠 때 대부분은 표현을 다듬거나 다시 요청하는데, 구조 문제는 표현을 바꾼다고 해결되지 않는다.
특히 맥락 누락은 가장 흔하면서도 교정이 빠른 실수다. LLM은 새 세션이 시작되면 이전 대화 내용을 기억하지 못한다. 오래 이어온 프로젝트나 특정 문서를 기반으로 작업할 때, 프롬프트 첫 부분에 핵심 배경을 요약해 넣는 것만으로도 응답 관련성이 크게 달라진다.
한 번에 너무 많이 요청하는 것도 주의가 필요하다. 복잡한 전략 수립을 단 한 번의 프롬프트로 완성하려 하면 모델은 표면 수준에서 각 항목을 짧게 처리하고 넘어간다. 단계를 나눠 순서대로 진행하면 각 단계의 결과가 다음 단계의 맥락이 되기 때문에 전체 품질이 높아진다.
실전 워크플로: 프롬프트를 제품처럼 관리하기
하루에 수십 번 AI를 쓰는 사람에게 프롬프트는 일회성 질문이 아니라 관리 대상이 된다. 2025년 실무 커뮤니티에서 주목받는 접근은 프롬프트를 코드나 제품 명세서처럼 버전 관리하는 것이다.
반복 작업 프롬프트는 파일로 저장한다
주간 보고서 작성, 고객 이메일 초안, SNS 콘텐츠 생성처럼 반복되는 작업에는 동일한 프롬프트 구조를 재사용하는 것이 효율적이다. 노션, 옵시디언, 단순 텍스트 파일 어느 것이든 상관없이 프롬프트 템플릿을 저장해두고 필요한 부분(맥락과 작업 내용)만 바꿔서 쓰는 방식이 안정적이다. 팀 단위에서는 Git 리포지토리에 프롬프트 파일을 관리하는 방식도 있다 [자료 근거: nomadlab.kr, 확인일 2025].
결과를 기록하고 무엇이 달라졌는지 추적한다
프롬프트를 조금씩 바꿔가며 결과를 비교하는 과정이 실력 향상의 핵심이다. 한 번에 하나의 요소만 바꾸고, 어떤 변화가 결과에 영향을 줬는지 기록하는 습관이 쌓이면 자신만의 프롬프트 설계 감각이 생긴다.
Temperature 설정: 창의성과 정확성 사이
모델에 따라 제공되는 파라미터이지만, Temperature는 출력의 다양성을 조절하는 값이다. 사실 기반 요약이나 데이터 추출처럼 정확성이 중요한 작업은 낮은 Temperature(0에 가까운 값)가 적합하다. 창의적 아이디어 생성이나 브레인스토밍에는 높은 값이 더 다양한 결과를 만든다 [자료 근거: OpenAI API Best Practices, 확인일 2025]. 이 파라미터는 모델·플랫폼마다 명칭과 범위가 다를 수 있다 [확인 필요].
|
📋
1. Plan
목적, 청중, 기대 결과를 먼저 정의한다. 이 단계를 건너뛰면 Task가 모호해진다.
|
→ |
✏️
2. Prompt
Role · Context · Task · Format 레이어를 채운다. 첫 버전에 완벽을 기대하지 않는다.
|
→ |
🔍
3. Review
결과에서 어느 레이어가 원인인지 파악한다. 표현 말고 구조를 먼저 점검한다.
|
→ |
⚙️
4. Refine
한 번에 하나씩 바꾼다. 여러 요소를 동시에 수정하면 효과를 추적할 수 없다.
|
1단계 · Plan
목적·청중·기대 결과를 먼저 정의한다. 이 단계를 건너뛰면 Task가 모호해진다.
2단계 · Prompt
Role · Context · Task · Format 레이어를 채운다. 첫 버전에 완벽을 기대하지 않는다.
3단계 · Review
어느 레이어에 문제가 있는지 파악한다. 표현이 아닌 구조를 먼저 점검한다.
4단계 · Refine
한 번에 하나씩 수정한다. 동시에 여러 요소를 바꾸면 원인을 추적할 수 없다.
📎 참고 자료
Anthropic Claude 공식 프롬프팅 가이드
platform.claude.com · Claude 모델에 최적화된 프롬프트 설계 원칙
공식 문서
Google AI for Developers — 프롬프트 설계 전략
ai.google.dev · Gemini 기반 프롬프트 구조 가이드
공식 문서
IBM Think — 프롬프트 엔지니어링 기법
ibm.com · Zero-Shot, Few-Shot, CoT 등 주요 기법 설명
참고 자료
어떤 구조를 선택하면 좋은가
프롬프트 엔지니어링은 AI를 다루는 특수 기술이 아니다. 상대에게 무엇을 어떻게 부탁할지 명확하게 정의하는 커뮤니케이션의 연장선이다. 구조가 없으면 아무리 정성스럽게 쓴 문장도 모델 입장에서는 모호한 요청으로 처리된다.
처음 시작하는 사람이라면 Role · Context · Task · Format 4레이어 구조부터 적용한다. 단순한 작업은 RTF 3레이어로 줄여도 충분하다. 복잡한 반복 작업이 늘어날 때 MAGIC 9 같은 더 정밀한 프레임워크로 확장하면 된다.
결과가 기대에 미치지 못할 때 표현을 바꾸기 전에 구조를 먼저 점검하는 습관이 실력 향상의 핵심이다. 프롬프트는 한 번 만들고 끝내는 문서가 아니라, Plan-Prompt-Review-Refine 사이클을 반복하며 다듬어 가는 작업 자산이다.
-
1
오늘 쓴 프롬프트에서 Role · Context · Task · Format 중 빠진 레이어가 있는지 점검한다 -
2
반복적으로 쓰는 작업이 있다면 프롬프트 템플릿을 파일로 저장해 재사용하기 시작한다 -
3
결과가 나쁠 때 표현 말고 어느 레이어가 문제인지 구조적으로 추적하는 습관을 만든다 -
4
복잡한 작업은 한 번에 요청하지 말고 Least-to-Most 방식으로 단계를 나눠 진행한다