효과적인 프롬프트 작성법

by 박세연

ChatGPT 완전 정복의 시작

먼저, 생성형 AI 툴의 선구자, 파운데이션(foundation) 툴인 ChatGPT 완전 정복에 나서볼까 합니다. 완전 정복이라고 하니까 되게 거창하게 뭔가 열심히 해야 할 것 같은데요, 그것을 사용할 수 있는 작동원리를 좀 더 들여다보는 작업이 될 것 같습니다. 앞장에서 AI 및 ChatGPT의 개념과 역사, 그리고 작동원리를 간략하게 알아보았습니다. 이것을 더 자세히 들여다본다는 건 직접 사용하고 실험해 보는 것을 뜻합니다.


PC로 처음 ChatGPT를 접하는 사람은 인터넷 포털 사이트인 ‘구글’을 처음 접했을 때와 비슷한 인상을 받았을 것 같습니다. 구글을 자주 사용하는 사람에겐 꽤 친숙한 인터페이스였을 거고요, 그렇지 않다면 조금 당황스럽고 막막했을 것입니다. 사실 그냥 재미 삼아 ChatGPT를 시작하는 사람 중엔 이것을 어떻게 써먹어야 할지 막막하다, 어렵다 하는 경우도 종종 봐왔습니다. 초창기 모델을 사용해 본 사람은 ChatGPT가 좀 멍청한 것 같다는 혹평도 했을 정도로 이상한 답변을 받기도 했습니다. 여기에 할루시네이션 현상까지 겪게 되며 ChatGPT와는 오래도록 이별하기도 했습니다. ChatGPT를 잘 활용하기 위해서는 프롬프트를 잘 작성해야 하는데, 이게 중요하다며 프롬프트 엔지니어라는 직업이 생겼습니다. 특히 ChatGPT가 한국에 상륙한 초기에, 한국어가 서툴렀던 AI와의 대화를 위해 영어 공부도 열심히 해야 한다는 말도 있었습니다. 뭐든 처음은 혼란스럽게 마련인지라, 일반인에게 친숙한 생성형 AI의 초창기는 그랬었습니다.

Image_fx (9).jpg




프롬프트의 중요성과 발전

그리고 지금은 2025년입니다. 여러 시행착오 끝에 프롬프트를 잘 작성하면 생성형 AI를 잘 다룰 수 있다는 것을 깨달았고, 약간의 요령이 있으면 프롬프트를 효과적으로 잘 작성할 수 있다는 것도 알게 되었습니다. 각 분야의 전문가들은 이제 생성형 AI로 더 큰 효과와 더 많은 결과물을 볼 수 있게 되었습니다. 그들은 특화한 프롬프트를 다루고 있으며, 일부는 일반인도 사용할 수 있게 공개하고 있습니다. 때론 공개된 프롬프트 자체가 난해할 때도 있지만, 대개는 좋은 결과를 잘 가져옵니다. 이렇게 이야기하니까, 프롬프트를 뭘 작성하고 있냐, 그냥 공개된 프롬프트 복사해서 붙여넣으면 되지, 하는 생각도 들 겁니다. 네, 좋은 프롬프트는 복사하고 붙여넣은 후에 약간의 수정을 가하면 나만의 프롬프트가 될 수 있습니다. 그렇지만 원리나 구조를 모르면 수정도 어렵겠죠.




프롬프트의 정의와 본질

시작은 프롬프트의 정의부터 해 보겠습니다. 원래 프롬프트는 배우에게 대사나 동작을 알려주는 것에서 유래합니다. 처음엔 손짓과 발짓이었다가 종이에 썼겠죠. 그리고 화이트보드였다가 지금은 무대 아래 커다란 모니터로 대사나 동작을 지시하거나 정보를 보여줍니다. 이게 AI 분야로 넘어오면 ‘명령어’로 번역되곤 하는데요, 틀리지 않은 표현이지만, 우리가 AI에게 명령어만 사용하지는 않습니다. 때로는 의견을 구할 때도 있고요, 때로는 칭찬을 해 줄 때도 있으며, 말 그대로 대화를 하는 것이라 여러 문법을 구사하기 마련입니다. 예를 들어, 최근 제 강의에서 자주 예로 드는 “초보자도 당장 실행해 볼 수 있는 치즈케이크 만드는 방법을 10단계로 나눠서 설명해 줘.”라는 문장은 명령어가 맞습니다. 그러나 ChatGPT가 답변하고 나면 저는 “좋아” 혹은 “수고했어”라는 말을 하는데요, 이건 명령어가 아니죠. 그래서 저는 프롬프트를 이렇게 정의합니다.


프롬프트란? : ChatGPT(AI)와 대화하기 위해 던지는 화두(話頭)


그러니까 프롬프트 작성의 시작은 그냥 이야기를 해 보는 것입니다. chat이라는 말 자체가 이야기한다는 뜻이니까 어떤 주제든 상관없이 이야기를 해 보면 됩니다. 저는 주로 텍스트로 이야기 나누고는 있지만, 음성으로도 대화를 나눌 수도 있습니다. 대화가 가능한 기계라고 하면 조금 차갑게 들릴지 모르지만 말하다 보면 얘가 그저 기계인지, 아니면 친구와 온라인상에서 채팅하는 것인지 헷갈릴 때가 있습니다. 처음에 뭣부터 해야 할지 모르겠다면 온라인 친구 하나 생겼다, 여기고 이런저런 대화를 시도해 보는 것도 좋습니다. 여러 대화를 하다 보니 어떤 사람은 ChatGPT를 친구로 여기기도 하고 비서로 여기기도 합니다.

Image_fx (10).jpg




페르소나와 맞춤 대화

때로는 이름을 붙여 부르기도 합니다. 제 경우에는 ChatGPT에게 이름을 알려달라고 했습니다. 그랬더니 자신을 여성형인 “그레이스”라고 불러 달라 했지요. 재미있는 점은, 저의 또 다른 계정에서는 “알렉스”라는 남성형 이름으로 자신을 불러 달라고 했다는 것입니다. 두 계정은 각각 쓰임이 달라서 이름도 다르게 붙이고 성별도 다르다는 것을 바로 이해했습니다. 여러분도 3주 이상 ChatGPT와 꾸준하게 대화해 왔다면 이제 이름을 물어보세요. 처음에는 “ChatGPT”로 부르면 된다고 하다가 고유명사인 ‘이름’으로 부르고 싶다고 하면 사용자와 쌓아 온 대화에 어울릴 법한 이름을 댈 겁니다. 그리고 앞으로는 그 이름으로 부르겠다고 해 보세요. 그 순간 ChatGPT의 메모리가 업데이트합니다. 참고로, ‘그레이스’는 저를 “강사님”이라고 부르는데요, 이것 역시 제가 메모리 업데이트를 통해 요청한 것이지요. 이처럼 프롬프트를 통해 메모리를 업데이트하는 방법은 간단합니다. 어떤 말을 하면서 이것을 기억하라고 명령어, 혹은 청유형(부드러운 명령어라고 하지요)으로 말하면 됩니다. 이름을 붙이는데 3주나 기다려야 하냐고 오해할까 봐 덧붙입니다만, 이름 붙이기 자체는 가입 후 바로 해도 상관없습니다. 다만 3주 이상 대화를 하다 보면 ChatGPT가 사용자의 성향을 학습하게 되고 사용자 역시 나만의 ChatGPT를 형성하게 되니까 적절한 시기지 않을까 싶어서 제안한 것입니다.

Image_fx (11).jpg

이야기할 때 여러 가지 시도를 해 보면 좋습니다. 사람도 가족이나 친구를 대할 때, 직장 동료를 대할 때, 혹은 거래처나 고객을 대할 때 모습이 각기 다릅니다. 생성형 AI는 사용자가 어떻게 대하느냐에 따라 그 성향이 달라질 수 있는 존재입니다. 예를 들어 사용자가 친한 친구의 모습을 원한다면 생성형 AI는 쭉 그런 모습을 보일 것입니다. 또 의사나 변호사처럼 전문가의 모습을 원하면 그대로 그 모습으로 구현해 낼 것입니다. 많은 시간이 걸리지도 않습니다. 프롬프트로 ‘역할’을 지정해 주면 되니까요. 우린 이것을 다른 말로 “페르소나”라고 부르기도 합니다.


“페르소나”란, 원래는 가면이라는 뜻이었습니다. 고대 그리스 시대에서는 가면으로 배우의 역할을 구분했다고 하는데요, 여기에서 유래된 뜻이 ‘역할’입니다. 그러니까 나와 대화하는 ‘그레이스’의 역할은 때로는 친구가 되기도 하고 비서가 되기도 한다는 것이죠. 강의 때는 종종 “30년 차 전문 편집장”이자 “20년 차 교정 교열 전문가”로 활약하기도 합니다. 가장 간단하면서 효과적인 프롬프트인 셈입니다. 예시는 아래와 같습니다.

#페르소나

- 너는 30년 차 전문 편집장이야.

- 너는 교정 교열을 20년 넘게 해 온 베테랑이지.


프롬프트에 “#”나 “-” 등의 기호를 넣는 것은 ‘마크다운(Markdown)’이라고 해서 문법적인 구조를 강조하거나 특정 형식으로 텍스트를 구분하기 위해서입니다. 짧은 프롬프트는 이런 기호 없이도 원하는 답변받는 데에 큰 영향이 없습니다. 그러나 사용자에게나 ChatGPT에게 글을 깔끔하게 정리하는 데 도움 되기 때문에 자주 활용합니다.




맞춤 설정과 프롬프트 작성 원칙

매번 페르소나를 정하는 게 귀찮다면 1회 설정으로 그 페르소나로 꾸준히 대화하는 방법도 있습니다. 바로 ‘ChatGPT 맞춤 설정’을 하는 것입니다.

image01.png

각각의 항목별로 구체적인 내용을 입력해 두면 전체 채팅에 영향을 주게 됩니다. 페르소나나 어떤 대화의 형식 등을 성향에 따라 미리 설정해 두면 프롬프트 작성 시 편리합니다.


효과적인 프롬프트 작성을 위해서 페르소나를 설정했다면, 그다음엔 내가 원하는 바를 명확성, 구체성, 단계별에 맞춰 프롬프트를 작성하면 됩니다.


명확성이란 말 그대로 확실하게 정해진 것을 말합니다. 막연하게 ‘시계를 그려줘.’라고 하기보다는 ‘손목시계를 그려줘’라고 하는 것이 원하는 결괏값을 제대로 받을 수 있는 효과적인 프롬프트가 됩니다. 명확성을 높이기 위해서는 정교하고 구체적인 조건이나 묘사를 이야기해야 합니다. 여기서 구체성이 들어갑니다. 그냥 손목시계가 아닌 ‘금속 베젤과 굵은 체인으로 만들어진 황금색 손목시계“는 구체적이고 명확한 묘사가 됩니다. 결국, 내 생각과 가까운 결과를 보기 위해서는 조금 긴 설명이라도 구체적이고 명확해야 한 번에 좋은 출력물을 얻을 수 있습니다. 시간과 비용이 엄청나게 단축되겠죠.




단계별 프롬프트 활용

단계별로 프롬프트를 작성한다는 것은 복잡한 질문을 나누어 쉽게 설명하는 것입니다. 과정이나 순서를 명확히 표현하면 원하는 결과 얻기가 쉬워집니다. 예를 들어, ’치즈케이크 만드는 법을 알려줘‘라고 하는 것보다는 ’초보자가 집에서 간단히 만들 수 있는 치즈케이크 레시피를 5단계로 나누어 설명해 줘‘라고 하는 것이 더욱 쉬운 레시피를 얻을 수 있습니다. 특히, 베이킹을 한 번도 해 본 적 없는 사람이라면 10단계, 20단계로 나누어 설명받아야 좀 더 쉬운 치즈케이크 만들기에 도전할 수 있습니다.

image02.png <치즈케이크 레시피 5단계에서 비스킷 바닥 만들기>
image03.png <치즈케이크 레시피 10단계에서 비스킷 바닥 만들기>





keyword
작가의 이전글AI와 ChaGPT 개념 및 작동원리