1편에서 Zero-shot, Few-shot, Chain of Thought를 다뤘어요. 이번엔 한 단계 더 나아갑니다.
AI를 쓰다 보면 이런 생각이 드실 때가 있어요.
"매번 '당신은 카페 전문가입니다, 친근한 말투로, 두 줄 이내로' 반복하는 게 너무 귀찮은데..."
그 귀찮음을 해결하는 게 바로 시스템 프롬프트예요. 여기에 더해서 AI를 더 정밀하게 다루는 고급 기법 다섯 가지도 함께 정리했습니다.
시스템 프롬프트란 뭔가요?
일반 프롬프트가 그때그때 지시라면, 시스템 프롬프트는 대화를 시작하기 전에 AI의 성격과 역할을 미리 고정해두는 것이에요.
신입 직원을 처음 채용하면 업무 방식, 말투, 금지 사항을 교육하잖아요. 이후에는 "이거 해줘"라고만 해도 알아서 움직이죠. 시스템 프롬프트가 그 역할이에요.
카페에서 AI에게 꾸준히 홍보 문구를 맡긴다고 해볼게요.
시스템 프롬프트 없이 매번 요청할 때 ❌
당신은 SNS 마케팅 전문가입니다.
카페 인스타그램용 문구를 써주세요.
말투는 친근하고 따뜻하게, 해시태그 포함해서,
두 줄 이내로, 전문 용어 없이.
메뉴: 딸기 라테
시스템 프롬프트 한 번 설정 후 ✅
(시스템에 미리 설정: 당신은 카페 SNS 마케팅 전문가입니다.
친근하고 따뜻한 말투로, 해시태그를 포함해서,
두 줄 이내로, 전문 용어 없이 작성합니다.)
메뉴: 딸기 라테
결과는 같은데 두 번째는 매번 조건을 반복할 필요가 없어요.
시스템 프롬프트 다섯 가지 구성 요소
좋은 시스템 프롬프트는 이 다섯 가지를 갖추고 있어요.
- 역할 정의 — 어떤 전문가로 행동할지
- 행동 지침 — 항상 따라야 할 규칙
- 출력 형식 — 답변의 구조와 모양
- 제약 조건 — 하면 안 되는 것
- 예시 — 원하는 결과의 샘플
고급 기법 1 — 페르소나 설정
역할을 주는 것과 페르소나를 주는 건 달라요.
"마케팅 전문가"는 역할이에요. "20년 동안 카페를 운영하며 SNS로 손님을 두 배 늘린 경험이 있는 바리스타"는 페르소나예요. 구체적인 배경이 붙을수록 AI 답변의 깊이가 달라져요.
역할만 준 경우 ❌
당신은 바리스타 전문가입니다.
에스프레소를 처음 마시는 손님에게 어떻게 설명하겠어요?
AI 답변:
에스프레소는 농축된 커피입니다. 짧은 시간에 고압으로 추출해 강한 맛이 납니다.
구체적 페르소나를 준 경우 ✅
당신은 이탈리아에서 10년 바리스타 경력을 쌓고
한국에서 작은 에스프레소 바를 운영하는 사람입니다.
커피를 잘 모르는 손님에게 에스프레소를 처음 권할 때처럼 설명해주세요.
AI 답변:
에스프레소는 딱 한 모금 분량이에요. 처음엔 쓸 수 있는데, 그게 지나고 나면 고소한 단맛이 올라옵니다. 설탕 없이 한 번 드셔보시고, 그다음에 취향에 맞게 조절하시면 돼요.
같은 내용인데 두 번째가 훨씬 실감 나고 따뜻하죠? 페르소나가 구체적일수록 AI가 그 관점에서 깊이 생각하기 때문이에요.
고급 기법 2 — 자기 검토
AI가 답변을 만든 다음 스스로 검토하고 고치게 만드는 방법이에요.
카페 신메뉴 이름을 AI에게 제안받는다고 해볼게요.
검토 없이 ❌
딸기와 크림치즈가 들어간 음료 이름 다섯 개 제안해줘.
AI 답변:
스트로베리 크림 라테, 딸기 크림치즈 스무디, 베리 크리미, 핑크 프로스트, 스트로베리 벨벳
이름이 제각각이고 영어가 섞여서 일관성이 없죠.
자기 검토 추가 ✅
딸기와 크림치즈가 들어간 음료 이름 다섯 개 제안해줘.
제안 후 아래 기준으로 스스로 검토하고 기준에 맞지 않는 이름은 수정해줘.
- 한글 이름 또는 발음하기 쉬운 영어만 사용
- 두 단어 이내
- 음료의 맛이나 느낌이 이름에서 느껴질 것
AI 답변:
[초안] 스트로베리 크림 라테, 딸기 크림치즈 스무디, 베리 크리미, 핑크 프로스트, 스트로베리 벨벳
[검토 후 수정] 딸기 크림, 핑크 벨벳, 딸기 구름, 베리 스노우, 딸기 치즈폼
영어 비중을 줄이고 발음하기 쉽게 수정했습니다.
스스로 문제를 찾아서 고쳤어요. 검토 기준이 구체적일수록 효과가 커진답니다.
고급 기법 3 — 출력 형식 제어
어떤 형식으로 받느냐에 따라 결과를 활용하는 방식이 달라져요.
카페 주간 메뉴를 AI에게 정리한다고 할 때, 목적에 따라 형식을 다르게 요청할 수 있어요.
일반 텍스트 — 블로그나 SNS에 바로 올릴 때
이번 주 신메뉴 세 가지를 자연스러운 문장으로 소개해줘.
표 형식 — 메뉴판이나 정리용 문서에 쓸 때
아래 표 형식으로 정리해줘.
| 메뉴명 | 가격 | 특징 | 추천 대상 |
JSON 형식 — 앱이나 시스템에 데이터를 넣을 때
아래 JSON 형식으로 출력해줘.
{"name": "", "price": "", "description": ""}
형식을 명확하게 정하면 후처리 없이 바로 쓸 수 있어요. 특히 반복 작업이 많을수록 형식 제어의 효과가 커요.
고급 기법 4 — 제약 조건 설계
원하지 않는 결과를 미리 차단하는 방법이에요.
카페 직원용 응대 매뉴얼을 AI가 써준다고 해볼게요.
제약 없이 ❌
손님이 주문을 바꾸겠다고 할 때 응대 방법을 써줘.
AI 답변:
손님의 요청을 정중히 경청하고, 변경 가능한 상황인지 확인한 후 최선을 다해 처리합니다. 서비스 품질 향상을 위해 노력하는 자세가 중요합니다.
실무에서 쓰기 어려운 두루뭉술한 답이죠.
제약 조건 추가 ✅
손님이 주문을 바꾸겠다고 할 때 응대 방법을 써줘.
제약:
- 실제 대화체로, 직원이 직접 말하는 것처럼 써줘
- "노력하겠습니다" 같은 애매한 표현 금지
- 음료 제조 전, 제조 중, 완료 후 세 가지 상황으로 나눠서 써줘
AI 답변:
제조 전 "네, 바로 변경해드릴게요. 어떤 음료로 바꿔드릴까요?"
제조 중 "지금 만드는 중인데, 추가 비용 없이 가능한 변경은 말씀해주시면 바로 해드릴게요."
완료 후 "이미 완성이 됐는데, 이런 경우는 교환이 어렵습니다. 다시 만들어드리는 건 추가 금액이 발생해요. 어떻게 하시겠어요?"
제약 조건 세 개만 추가했는데 실제로 쓸 수 있는 내용이 나왔어요. 👍
고급 기법 5 — 멀티턴 대화
한 번에 완성된 결과를 받으려 하지 말고, 대화를 주고받으면서 다듬어 가는 방법이에요.
카페 월간 뉴스레터를 AI와 함께 쓴다고 해볼게요.
1회차 — 초안 요청
이번 달 카페 뉴스레터 초안을 써줘.
신메뉴로 흑임자 라테가 나왔고, 이번 주말 원두 시음 행사가 있어.
2회차 — 특정 부분 수정
신메뉴 소개 부분을 더 감성적으로 바꿔줘. 지금은 너무 광고 같아.
3회차 — 형식 조정
전체 길이를 지금의 절반으로 줄여줘. 핵심만 남기고.
4회차 — 최종 검토
문장 중에 어색하거나 너무 딱딱한 표현이 있으면 찾아줘.
한 번에 완벽한 뉴스레터를 만들려 하면 프롬프트가 복잡해지고 결과도 산만해져요. 이렇게 단계별로 다듬으면 훨씬 자연스러운 결과물이 나온답니다.
정리
이번 편에서 다룬 내용을 한눈에 보면 이래요.
기법 핵심 효과
| 시스템 프롬프트 | 역할과 규칙을 처음 한 번 설정 | 매번 반복 불필요 |
| 페르소나 | 역할보다 구체적인 배경 제공 | 답변의 깊이가 달라짐 |
| 자기 검토 | 스스로 문제 찾아 수정 | 오류 자동 교정 |
| 형식 제어 | 받을 형태를 명확하게 정함 | 결과를 바로 활용 가능 |
| 제약 조건 | 원하지 않는 결과 사전 차단 | 품질 일관성 확보 |
| 멀티턴 | 단계별로 대화하며 다듬기 | 복잡한 작업 품질 향상 |
다음 편은 마지막으로, 프롬프트를 짧고 강하게 만드는 법과 AI가 없는 내용을 만들어내는 걸 잡아내는 방법을 다룰게요.
👉 1편: ChatGPT한테 원하는 답 못 받는 이유, 드디어 알았습니다 👉 3편: 프롬프트 다이어트와 AI 거짓말 잡는 법
'AI 개발 실습' 카테고리의 다른 글
| AI가 엉뚱한 말을 지어낸다고요? 이렇게 잡으세요 — 프롬프트 엔지니어링 3편 (0) | 2026.05.07 |
|---|---|
| ChatGPT한테 원하는 답 못 받는 이유, 드디어 알았습니다 — 프롬프트 엔지니어링 1편 (0) | 2026.05.07 |
| FastAPI + uvicorn 개발하면서 만난 에러 모음 (0) | 2026.04.28 |
| FastAPI로 AI 챗봇 백엔드 만들기 — Gemini 연동 완성 (0) | 2026.04.27 |
| FastAPI 입문 — Spring Boot 개발자 눈으로 보기 (1) | 2026.04.23 |