문제는 프롬프트야 바보야

by 정상우
(!) ChatGPT Plus 버전을 기준으로 합니다.

우리는 처음 ChatGPT와 같은 생성형 AI를 접하면 마냥 재미있게 "이것도 될까?" 라며 다양한 일들을 시도해 보게 됩니다. 하지만 이를 실무에서 활용하려고 하다 보면 점차 우리가 원하지 않는 대답을 줄 때가 생기게 되고, 실무에 적용하려다가 환각을 경험하거나, AI가 말귀를 못 알아듣는다는 느낌을 받으면서 답답하다는 생각까지 이르게 됩니다. 이 과정에서 AI에 대한 부정적인 인식이 발생하든지, 또는 "AI가 일을 잘하도록 하려면 어떻게 해야 할까?"라는 질문에 봉착하게 됩니다.


많은 이들이 가장 먼저 시도하는 일은 바로 AI 서비스를 바꾸는 것입니다. ChatGPT를 쓰다가 경쟁 서비스인 Gemini, Claude를 사용해 보거나, 검색을 잘한다는 Perplexity와 같은 서비스도 접하게 되고, 더 나아가 이미지 생성을 위해 Nano Banana와 같이 남들이 좋다는 다양한 특화 모델을 사용해 보게 되면서 역시 ChatGPT는 별로였구나, 라며 서비스를 갈아타게 되죠. 하지만 점차 AI를 활용하는 다른 사람들과 결과물을 비교하게 되면서 "저 사람과 같은 AI 서비스를 사용하는데 왜 내가 만든 것과 다르지?"라는 의문에 다시 한번 빠지게 됩니다.


이때부터는 AI 활용 영상을 찾아보게 되는데, 눈치가 빠른 사람이라면 여기서 한 가지 특징적인 부분을 발견하게 됩니다. 바로 그들이 제공하는 프롬프트(Prompt)입니다. AI 활용 영상에는 간단하게라도 반드시 AI를 사용해서 어떤 일을 처리하게 되고, 워크플로우 빌딩과 같은 자동화 사례를 제외하면 그 일을 처리하기 위한 예시 프롬프트가 고정 댓글이나 문서와 같은 형태로 제공됩니다.


그들이 제공한 프롬프트를 사용해 보며 내가 작성했던 프롬프트로 나왔던 결과물을 비교해 보기 시작하면서 이때부터는 자연스럽게 출력 결과물을 좋게 하려면 작성하는 프롬프트도 달라져야 한다는 것을 인지하게 되고, 프롬프트를 잘 설계하려면 어떤 식으로 하면 좋은지 탐구하게 됩니다. 결국 문제는 어떤 AI 서비스를 사용하냐가 아니라, 프롬프트였던 것입니다.


개요

우리는 AI 시대에 이르면서, ChatGPT와 같은 범용 AI 서비스를 비롯하여 이미지, 동영상 생성과 같은 다양한 AI 서비스를 사용하게 되었습니다. 그러한 서비스들에서 그들이 제공하는 기능을 막론하고 공통적으로 존재하는 사용자 인터페이스가 있습니다. 바로 채팅창입니다.


채팅창은 그 플랫폼이 제공하고자 하는 AI 서비스가 무엇이든지 간에 대부분의 AI 서비스에서 가장 기본적으로 AI에게 지시를 내리기 위해 사용되고 있는 공통된 유저 인터페이스입니다. 우리는 여기서 AI를 사용하기 위해 채팅창에 입력하는 지시를 프롬프트(Prompt)라고 부르기로 했고, 이 명칭은 대중적으로 널리 알려지게 되었습니다.


환각을 방지하지 위한 다양한 기술적 장치가 동작하고 있다는 가정하에, AI가 환각을 일으키거나 일을 제대로 수행하지 못하는 대부분의 이유는 AI의 사용자인 지시자에게 있다는 것도 인지할 필요가 있습니다. AI를 신입사원으로 가정하고, 우리가 새로 입사한 신입사원을 교육한다고 생각해 보죠. 신입사원이 가진 그 자체의 역량(= 성능)도 물론 중요하지만, 회사에 잘 적응하고 수행해야 할 업무를 인지하기 위해서는 결국 지시자의 역량에 달려있습니다.


일을 잘 수행하는 것과 AI가 수행해야 할 업무에 대해 명확하게 이해시키는 것과 수행 절차를 인지시키는 일은 지시자의 역량에 달려있습니다. 대부분의 경우 신입사원이 가진 자체 역량, 즉, AI의 성능만을 문제로 삼는 일이 많은데, 하지만 실제로는 지시자가 일을 제대로 가르쳐주지 않았기 때문일 가능성도 있습니다. 똑같은 AI 서비스를 사용하더라도 사용자마다 결과물이 천차만별인 이유는 이 때문입니다.


이제는 기업뿐만 아니라 개인조차 AI 에이전트에게 일을 시키는 일이 많아지면서, 에이전트가 일을 잘하게 하려면 어떤 방식으로 지시해야 하는지에 대해 논의할 필요성이 크게 늘었습니다. 더 나아가 MAS(Multi-agent System)으로 발전한다면, 이제는 팀장의 관점에서 바라보아야 합니다.


프롬프트(Prompt)는 AI에게 업무를 지시하기 위해 사용되는, ChatGPT 뿐만 아니라 거의 모든 AI 서비스에 사용되는 요소입니다. 나쁜 프롬프트는 좋은 성능을 가진 AI가 지시자의 역량 문제로 임의대로 일을 수행하여 오히려 좋지 않은 결과를 낼 수도 있는 원인이 됩니다. 따라서 우리는 AI가 일을 제대로 처리하도록 프롬프트 체계적으로 설계하여 작성할 필요가 있는데요, 이에 대한 연구와 공학적 접근을 프롬프트 엔지니어링(Prompt Engineering)이라고 합니다.

(!) 우리나라에서는 눈치를 중시하기 때문에 AI에게도 눈치를 요구하는 경우가 있습니다. 지시하지 않아도 사용자의 의도를 파악하고 알아서 척척해주길 기대하는 것입니다. 하지만 현실적으로 AI에게 눈치를 기대하는 것은 지금의 기술로는 아직 시기상조입니다. 아이러니하게도 AI가 우리가 명시적으로 요구하지 않은 사항도 눈치껏 척척하려면 우리의 생활을 AI가 감시하고, 머릿속을 들여다보고 있어야 할 것입니다. 그래야 우리가 뭘 하려는지 이미 알고 있겠죠?


예시

프롬프트 엔지니어링을 구사하면 대체로 긴 프롬프트가 작성되고, AI에게 처리해야 할 일에 대한 자세한 내용을 작성하게 됩니다. 이는 환각을 예방하는 효과를 가지고 있습니다. 예를 들어 우리가 '스타트업 투자 동향'에 대한 리서치를 한다고 가정했을 때, 다음의 프롬프트를 줘보겠습니다.

스타트업 투자 동향을 조사해 줘

위 프롬프트는 '스타트업'의 범주, '투자 동향'에 대한 구체적인 정의가 부족하고, 출력 결과로 어떤 것을 원하는지 명시되어 있지 않으므로 스타트업 투자 동향에 대한 '거시적'인 관점에서 답변을 주게 됩니다. 이를테면 어떤 섹터에서 더 투자가 많이 발생하고 있는지, 우리나라의 스타트업 투자금은 증가하고 있는지와 같이 말이죠.

활용 Tip.

프롬프트 엔지니어링은 "AI가 내가 원하는 대로 답변을 주었는가"가 핵심입니다. 만약 여러분이 '거시적'인 관점에서의 개요적인 수준의 답변을 원했다면 이는 성공적인 것입니다. 이 경우 오히려 자세한 디테일은 걸림돌이 될 수도 있습니다. 이는 프롬프트 엔지니어링 전략의 예시로써, 디테일을 의도적으로 생략하는 것을 게으른 프롬프팅(Lazy Prompting)이라고 합니다.
chrome_5gIhxKpHzN.png


만약 여러분이 거시적인 투자 동향이 아니라, 실무에서 '스타트업 투자 동향 리포트'를 작성해야 하고, 그중에서도 특정 섹터에 대한 기업들의 이름과 그들이 받은 투자금 및 투자 단계까지 파악해야 한다고 가정해 봅시다. 이렇게 되면 위와 같은 답변은 그저 '개요'수준에 머무르기 때문에 보고서로서 완성도가 떨어집니다. 이때는 더 나아가 프롬프트 엔지니어링의 구성요소들을 포함하여 조금 더 디테일하게 줄 필요가 있습니다.


예를 들어 위 답변에서 "전체 벤처투자의 절반 이상이 AI 영역에 몰림, 초대형 라운드 사례 증가" 등의 내용이 있고, 이에 대한 자세한 사례로서 '2023.01 이후에 투자를 받은 시리즈 A 이상, 투자 금액이 10억이 넘는 상위 10개의 B2C 생성형 AI 스타트업'에 대한 리포트를 작성해야 한다면 다음과 같이 프롬프트를 줄 수 있습니다.

당신은 스타트업 시장조사 전문가입니다.

# 지시

대한민국에서 [분야]에 대한 스타트업 투자 동향을 [기준]에 따라 상위 10개의 [기업]에 대해, 기업·분야·(대표)서비스(서비스·앱)·(투자)단계(시리즈 A <=)·(투자)금액(10억원 <=)·(투자)시기(현재 >= 2023.01)·의견(인사이트·전략적 해석 → 300자 >=, 예비창업자 관점 → 시장·필요성·차별성)을 [형식]에 따라 작성하세요.

분야= 생성형 AI B2C 소프트웨어 서비스 → 텍스트(예= 뤼튼)·캐릭터챗(예= 스캐터랩) 등 도메인·산업·비즈니스 모델 제약x

기준= [전체 누적 투자금] > 가장 최근 투자 > 투자 단계
전체 누적 투자금= 비공개·언론 추정치 제외 → 국내외(VC·정부지원금 등) 공개 자본

기업= 국내 스타트업 → 국내 진출 해외 스타트업·대기업 자회사x

# 형식

|기업|분야|서비스|단계|금액|시기|의견|


이제 다음과 같이 요구하는 형식에 맞추어 '2023.01 이후에 투자를 받은 시리즈 A 이상, 투자 금액이 10억이 넘는 상위 10개의 B2C 생성형 AI 스타트업'에 대한 답변을 준 것을 볼 수 있습니다. 위 프롬프트는 ChatGPT 에이전트 모드로 실행하여 답변을 받았습니다. 이 같은 사례로 볼 때, 프롬프트를 얼마나 자세하게, 그리고 명확하게 주느냐에 따라 출력 결과물이 크게 달라질 수 있다는 것을 알 수 있는 것입니다.

활용 Tip.

시장 리서치와 같이 복잡한 작업이 요구되는 경우에는 일반 대화보다는 ChatGPT 에이전트 모드나 심층 리서치처럼 그 일을 더 잘할 수 있는 도구를 사용하는 것이 좋습니다.
chrome_zqqljaV0OB.png


기대효과

프롬프트 엔지니어링을 구사했을 때 얻을 수 있는 기대효과는 어떤 것들이 있을까요? 그저 프롬프트가 길어지기만 한다면 쓰임이 전혀 없을 것입니다. 하지만 프롬프트 바꾸는 것만으로도 출력 결과물이 바뀐다는 것을 이미 알고 있다면 이 부분은 크게 중요하지 않습니다.


특히, 이미지나 동영상과 같이 출력 결과물이 확실하게 눈에 보이는 서비스를 사용할 때는 프롬프트를 바꾸었을 때 출력 결과물이 변화하는 모습이 얼마나 차이를 보이는지 직관적으로 보여주고는 하죠. 실제로 디자인이나 영화 산업에 종사하는 전문가들은 일반인이 사용하는 프롬프트보다 더 전문적인 용어와 디테일을 구사하며 프롬프트를 작성합니다.


경량급 에이전트

프롬프트 엔지니어링을 사용하면 ChatGPT 에이전트 모드와 같이 이미 서비스에 작성되어 있는 범용 AI 에이전트를 용도에 맞게 내가 원하는 방향으로 동작하도록 만들 수 있습니다. 이는 경량급 전용 에이전트로서 사용자의 입력 프롬프트가 가장 중요한 요소로 동작하며, 프롬프트 내에서 역할을 부여하거나 수행 절차를 명시할 수 있습니다.


이는 특정 직무나 업무에 대한 기획, 상담, 학습과 같은 분야에 유용합니다. 다음은 ChatGPT 에이전트 모드에서 '스타트업 창업 전문가'로 역할을 명시하고 '사업 아이디어'를 도출하기 위한 프롬프트 사례입니다. 심층 리서치로 하는 것도 좋습니다.

당신은 스타트업 창업 전문가입니다.

한국에서 최근 5년간 주목받고 있는 [사회적 문제]를 파악하고, 시도해 볼 만한 사업 [아이디어]를 도출하여 [형식]에 따라 작성해 보세요.

사회적 문제= 사회적 고립·저출산·지방소멸 등의 사회적 문제

요약= [사회적 문제]에 대한 200자 이내의 요약(예: 50대 중년 층에서 사회적 고립이 크게 증가하였고, 40대로 확산되고 있음)

문제= 고객이 가지고 있는 본질적인 문제에 대한 200자 이내의 요약

아이디어= [문제]를 해결하기 위한 3가지 이상의 스타트업 아이디어(낮은 진입 장벽·초기 창업자가 3개월 안에 MVP 제작 가능·저비용·IT 서비스 기반)

# 형식

|사회적 문제|요약|문제|아이디어|


프롬프트 공유

프롬프트는 프롬프트 템플릿(Prompt Template)이라는 것으로 만들어서 팀이나 사내에 공유할 수 있습니다. 프롬프트를 팀으로 공유하게 되면, 반복적으로 수행해야 하는 업무를 수행할 때 동일한 프롬프트를 매번 작성할 필요가 없기 때문에 프롬프트를 작성하기 위해 시간을 들이지 않아도 됩니다. 예를 들어 다음과 같이 번역과 같은 프롬프트를 템플릿으로 만들어 Notion과 같은 소프트웨어를 통해 공유해 둘 수 있습니다.

사용자가 입력한 텍스트를 번역하세요.

번역할 텍스트: {번역할 텍스트}
출발 언어: {출발 언어}
도착 언어: {도착 언어}

- 전문 용어를 정확하게 번역하세요.
- 공식적인 어조를 사용하세요.
- 번역을 단락으로 나누고 명확한 제목과 부제목을 사용하세요.
활용 Tip.

PocketPrompt, PromptBase와 같은 프롬프트 템플릿 서비스에서 이러한 프롬프트 템플릿의 예시를 살펴볼 수도 있습니다. PromptBase와 같은 경우에는 사례가 많기 때문에, 직접 작성하기보다는 용도에 맞는 적절한 프롬프트 템플릿을 찾고 사용하는 것도 좋습니다.


프롬프트 템플릿을 팀 내에 공유하면 특정 업무에 대해서는 동일한 프롬프트를 사용하기 때문에 응답 품질을 균일하게 유지할 수도 있다는 이점도 있습니다. 사람마다 프롬프트를 작성하는 스타일이 다를 수 있는데, 동일한 업무에 다른 프롬프트가 적용되면 다른 품질의 응답이 나올 가능성도 높아지겠죠? 하지만 공유되어 있는 프롬프트를 그대로 사용하면 이러한 일이 줄어들게 됩니다.


비용 절감

일반적으로 우리가 생성형 AI 서비스를 사용하다 보면, 작업이 진행되다가 중간에 멈추거나 사용량이 초과되는 경우가 종종 발생합니다. 이는 플랜마다 사용할 수 있는 토큰(Token)의 한도가 정해져 있기 때문입니다. 일반적으로 구독료를 많이 지불할수록 AI 서비스를 더 많이 사용할 수 있는데, 이는 사용할 수 있는 토큰이 더 많이 부여되기 때문입니다.

토큰(Token)

자연어를 프롬프트로 주면 내부적으로 토큰(Token)이라는 단위로 먼저 변환되는데, 이 토큰의 사용량이 AI 사용량 과금의 기준입니다. GPT 모델의 경우 OpenAI → API Pricing에서 100만 토큰당 가격을 확인할 수 있습니다. 입력보다 출력 토큰의 가치가 높아 출력이 많으면 많을수록 과금이 많이 됩니다. 따라서 프롬프트 엔지니어링으로 입력이 길어지더라도 출력을 제어하여 비용을 절감할 수 있습니다.


만약 프롬프트 엔지니어링을 하지 않아서 AI가 우리가 원하는 결과를 내지 못하는 경우, 대화 내용이 길어지거나 일을 다시 시키는 상황이 비일비재하게 발생하는데요, 이때 토큰이 계속 소모되기 때문에 금방 한도에 다다를 수 있습니다. 하지만 프롬프트 엔지니어링을 통해 명확한 지시를 주면 시행착오를 줄일 수 있으므로 토큰을 상대적으로 아낄 수 있습니다.

작업 시간

우리에게는 토큰뿐만 아니라 시간도 비용입니다. 예를 들어 ChatGPT 에이전트 모드나 심층 리서치는 일반 대화에 비해 작업 시간이 오래 걸립니다. 이러한 일을 수행할 때 모호한 프롬프트 주게 되면 작업시간은 길면서 결과는 만족스럽지 않을 가능성이 높아집니다. 따라서 첫 지시를 줄 때 구체적인 프롬프트를 줌으로써 작업의 범위를 분명히 하여 작업 시간도 절감할 수 있습니다.


모델 의존 최소화

프롬프트는 모델에 의존을 많이 하는 것이 현실입니다. 예를 들어 GPT에 쓰는 것과 Gemini에 쓰는 것은 동일한 프롬프트를 사용하더라도 다른 결과를 낼 가능성이 높습니다. 이는 명확한 한계이죠. 하지만 프롬프트 엔지니어링을 구사하면 이를 최소화할 수 있습니다. 프롬프트에 구체적이고 명확한 조건을 부여하는 일이 많아지면, 결국 에이전트가 일을 수행하기 위한 추론 과정이 비슷하기 때문에 서로 다른 서비스와 모델을 사용하더라도 비슷한 출력 결과를 낼 수 있습니다.


특히, 출력 형식을 '표'와 같이 고정해 놓는 경우 효과적입니다. 다음 예시는 일반적으로 우리가 공부를 할 때 AI를 활용할 수 있는 한 가지 사례로써, 업로드한 교재를 바탕으로 실습 과제 및 질문을 생성하고, 이를 '표'로 정리하는 사례입니다.

당신은 생성형 AI 교육 전문가입니다.

# 지시

[파일]을 참고하여 각 주제에 대해 [문제]를 기반으로 하는 [내용]을 [형식]의 '표'를 작성하세요.
→ 마지막 행(Row)에는 모든 주제를 통합하여 활용할 수 있는 사례를 제시하세요.

파일= 프롬프트_엔지니어링_기본_요소.pdf
문제= 사업기획서 작성
내용= 실습 시나리오·과제·생각해보기 질문 → 항목당 5개 이상 '목록'으로

# 형식

|주제|실습|과제|생각해보기|
chrome_Zf4xbfbfww.png




정리하자면, 프롬프트 엔지니어링은 AI가 일을 잘 수행하도록 프롬프트를 설계하는 체계화된 접근입니다. 프롬프트는 거의 모든 AI 서비스에서 사용되기 때문에, 프롬프트 엔지니어링을 배운다는 것은 특정 AI 서비스에 종속되는 것이 아니라, 다양한 AI 서비스를 사용할 수 있도록 기초를 익히는 것이라 볼 수 있습니다.


우리가 다음부터 본격적으로 알아볼 내용이 바로 프롬프트 엔지니어링입니다. 이전까지와 마찬가지로 ChatGPT에서 실습을 하겠지만, 그 내용이 ChatGPT에만 국한되지 않는다는 것을 이미 알고 계실 것입니다. 프롬프트 엔지니어링은 ChatGPT와는 기능적인 차원에서 직접적인 관련이 없으면서도, 우리가 지금까지 배웠던 내용에서, 기본 대화뿐만 아니라 시스템 프롬프트나 개인 맞춤 설정, 멀티모달, 에이전트 모드와 같은 기능을 더욱 제대로 활용하기 위해서 사용이 되기 때문에 간접적으로 큰 영향력을 가지게 됩니다.


'비전공자를 위한 챗GPT 101'은 단순하게 챗GPT 사용법을 이야기하는 것이 아니라, 생성형 AI를 활용하기 위해 알아야 하는 기초를 대표적인 생성형 AI 서비스인 챗GPT를 사용하여 풀어냅니다. 물고기를 잡아주기보다는 물고기를 잡는 법을 알려줍니다.

챗GPT를 사용하는 활용법은 간단한 글쓰기부터 시작해서 기획, 마케팅 등 너무나도 많고, 직무마다 다른데, 이 글들은 '이메일 쓰기', '통계 분석하기 같은' 단순한 '사례'만을 이야기하지 않습니다. 생성형 AI의 '기본'을 이야기함으로써 챗GPT를 자유롭게 구사하며 실무에서 활용할 수 있도록 뼈대를 쌓습니다.
매거진의 이전글챗GPT, 그 너머에서