
프라임 데이(Prime Day)를 통해 배운 프롬프트 엔지니어링 (Prompt Engineering)
요약
실제 쇼핑 데이터를 활용해 신뢰할 수 있는 답변을 얻기 위한 프롬프트 엔지니어링 기법을 설명합니다. 모호한 질문 대신 페르소나를 부여하고 구체적인 분석 기준을 제시하는 것이 중요함을 강조합니다.
핵심 포인트
- 단순 할인율 질문은 마케팅 앵커에 속기 쉬운 공허한 답변을 유도함
- 가격 분석가와 같은 구체적인 페르소나를 설정하여 답변의 질을 높임
- 시장 가격, 가격 변동 빈도 등 구체적인 검토 항목을 프롬프트에 포함해야 함
- 출처 인용 및 미확인 정보 표시를 요구하여 답변의 신뢰성을 확보함
저는 프롬프트 엔지니어링 (Prompt Engineering)을 더 잘하고 싶었습니다. 로봇을 속이는 종류가 아니라, 지루하지만 유용한 종류 말입니다. 즉, 실제로 신뢰할 수 있는 답변을 얻기 위해 모델에게 질문하는 방법입니다.
연습할 때의 문제는 대부분의 튜토리얼이 가공된 예시를 사용한다는 점입니다. 주제에 관심이 없다면 좋은 답변과 나쁜 답변을 구분하기 어렵습니다. 그래서 저는 제가 정말 관심 있는 주제로 연습했습니다. 바로 제 Amazon 장바구니에 담겨 있는 할인 상품들이었습니다. 눈여겨보던 청소기와 "43% 할인" 중인 헤어 스타일러가 있었는데, 이것들이 정말 좋은 가격인지 아니면 그저 마케팅일 뿐인지 진심으로 알고 싶었습니다. 실제 돈이 걸린 실제 결정이었기에 이는 훌륭한 연습이 되었습니다. 모호한 프롬프트 (Prompt)는 자신감 있는 답변을 내놓지만, 당신이 실제로 그 결과에 관심이 있다면 그 답변이 공허하다는 것을 느낄 수 있습니다.
실제 할인 정보와 실제 전후 프롬프트 (Prompt)를 통해 제가 배운 점은 다음과 같습니다:
모든 거래에 숨겨진 함정
헤어 스타일러부터 시작하겠습니다. 상품 목록에는 다음과 같이 적혀 있었습니다:
Shark FlexStyle. 한정 기간 거래. $199.00, 43% 절약. 권장 소비자 가격: $349.99.
제 첫 번째 본능은 대부분의 사람들이 작성하는 프롬프트 (Prompt)였습니다:
"Shark FlexStyle $199, 권장가 $349.99 대비 43% 할인, 이거 좋은 거래인가요?"
이것은 합리적으로 느껴집니다. 하지만 거의 쓸모가 없습니다. 모델이 진짜 질문(199달러가 실제로 좋은 가격인가?) 대신 쉬운 질문(43% 할인이 큰 할인인가? 물론이죠!)에 답하게 만들기 때문입니다. 저 $349.99라는 권장 소비자 가격은 마케팅 앵커 (Marketing anchor)입니다. 게으른 프롬프트 (Prompt)는 이를 그대로 받아들이고, 그 결과 당신은 게으른 "네, 아주 좋은 거래입니다!"라는 답변을 받게 됩니다.
해결책은 이를 재구성하는 것이었습니다:
가격 분석가 (Pricing Analyst)로서 행동하세요. $199가 권장 소비자 가격 (List Price) 대비 할인된 것처럼 보이는지는 중요하지 않습니다. 제가 궁금한 것은 현재 Shark FlexStyle 제품에 대해 $199가 진정으로 좋은 가격인지 여부입니다. 결론을 내리기 전에 다음 사항들을 검토하세요: (1) 지난 6~12개월 동안의 실제 시장 가격 (Street Price), (2) 가격이 $199 이하로 떨어지는 빈도, (3) 권장 소비자 가격이 아닌 일반 판매가 대비 실제 할인율. 각 가격에 대해 출처와 날짜를 인용하거나, 확인되지 않은 경우 미확인으로 표시하세요.
질문은 동일했지만, 답변은 완전히 달랐습니다. 어시스턴트가 스스로 설명한 답변 내용은 다음과 같습니다:
$199는 진정으로 좋은 가격이지만, Shark가 마케팅하는 방식 때문은 아닙니다. 이는 6개월간의 최저가(Floor)이며, 해당 기간 동안 불과 몇 번만 나타났습니다. 더 정직한 기준점은 최근의 중앙값 가격 (Median Price)이며, $199는 부풀려진 권장 소비자 가격인 $349.99 대비 헤드라인 할인율이 아니라, 그 중앙값 대비 실제 절약 금액입니다.
저는 어시스턴트가 보고한 구체적인 수치들을 그대로 믿기로 했습니다. 어시스턴트가 보고했고 제가 가격 이력을 독립적으로 검증하지는 않았지만, 그것은 거의 본질적인 문제가 아닙니다. 변한 것은 답변의 '형태'였습니다. "43% 할인, 아주 좋은 거래입니다!" 대신에 "$199는 아마존(Amazon) 역대 최저가입니다. 180일 동안 단 두 번만 도달했으며, 이전 도달 시에는 단 하루뿐이었습니다"라는 답변을 받았습니다. 제가 다르게 한 유일한 일은 모델에게 앵커 (Anchor, 기준점)를 무시하고 시장 가격 (Street Price)과 비교하라고 말한 것뿐이었습니다.
첫 번째 교훈: 앵커를 공격하도록 질문을 재구성하세요. "권장 소비자 가격이 아닌 시장 가격과 비교하세요"라는 문구는 앞으로 제가 훨씬 더 유용하게 사용할 문장이 될 것입니다. 이는 당신이 던질 수 있는 거의 모든 "이것이 좋은 거래인가요?"라는 질문에 적용됩니다.
"더 나은"이라는 말이 아직 의미가 없을 때
다음으로 저는 비교를 시도해 보았는데, 바로 이 지점에서 모호한 프롬프트(Prompt)가 무너집니다:
Dyson V8 무선 청소기: $269.99, 권장 소비자 가격 $389.99 대비 31% 할인.
HEPA 필터가 포함된 Shark IZ363HT: $199.99, 권장 소비자 가격 $349.99 대비 43% 할인.

Amazon 쇼핑을 위한 Alexa에서 유사 제품과 단순히 비교한 결과
함정은 바로 저 숫자 속에 있습니다. Shark 제품은 43% 할인되어 더 저렴하므로, 게으른 프롬프트(prompt)는 단 한 줄로 이를 승자로 선언합니다. 하지만 "더 나은 거래(better deal)"라는 말은 "무엇에 대해 더 나은지"를 말하기 전까지는 아무런 의미가 없습니다. 비교는 기준(criteria)을 정의하기 전까지는 답을 낼 수 없습니다.
제가 최종적으로 도달한 프롬프트는 앵커 브레이크(anchor break) 위에 세 가지 새로운 움직임을 추가했습니다:
제품 및 가격 분석가(product and pricing analyst)로 행동하세요. 더 높은 할인율이 승자를 결정하게 두지 마세요. Dyson V8 ($269.99)과 Shark IZ363HT ($199.99)를 구매 관점에서 비교하세요. 권장 소비자 가격(list-price) 할인은 무시하고, 각 제품을 실제 시장 가격(street price)과 비교하세요. 제품군(product classes)이 다를 경우 이를 표시하세요. 가중치 기준(weighted criteria)에 따라 점수를 매기세요: 시장가 대비 가격 30%, 청소 성능 25%, 작동 시간 20%, HEPA 15%, 유지 관리 10%. 그 다음 두 가지 사항을 별도로 답변하세요: 더 나은 '거래(DEAL)', 그리고 더 나은 '제품(PRODUCT)'. 가격에 대해 출처와 날짜를 인용하거나 확인되지 않았음을 표시하세요.
이 방식이 효과적이었던 세 가지 이유가 있습니다:
-
가중치 기준 (Weighted criteria). 무엇이 중요하고 얼마나 중요한지를 선언하기 전까지 "더 나은"이라는 말은 아무런 의미가 없습니다. 가중치를 작성하면서 저는 제가 실제로 무엇을 중요하게 생각하는지 인정할 수밖에 없었습니다.
-
거래와 제품의 분리. 어떤 물건은 아주 좋은 '거래'일 수도 있지만, 잘못된 '구매'일 수도 있습니다. 이 두 질문을 분리함으로써 비교 시 발생하는 혼란의 대부분을 해소할 수 있습니다.
-
제품군 불일치 표시 (Flag the class mismatch). 이 두 청소기는 동일한 등급이 아닙니다. 저는 모델이 단순히 원가(raw prices)를 비교하는 대신 이 점을 명시하기를 원했습니다.
결과는 훌륭한 분석이 이루어져야 하는 방식 그대로 나누어 나왔습니다 (다시 말씀드리지만, 이는 어시스턴트가 산출한 수치이며 제가 독립적으로 확인한 것은 아닙니다):
더 나은 DEAL (거래): Shark 제품이 $199.99로, 일반적인 시중 가격 대비 진정한 할인율을 보입니다. Dyson의 거래도 실제이긴 하지만, 데이터가 부족한 과거 이력에 기반하고 있습니다. 더 나은 PRODUCT (제품): Dyson V8은 더 깔끔한 설계 (engineering)와 쉬운 유지보수 측면에서 우수하지만, Shark의 HEPA 밀봉 (seal) 기능은 고양이를 키우는 가정에 있어 의미 있는 승리입니다.
하나의 프롬프트(prompt), 두 명의 서로 다른 승자. 만약 단순히 "어느 것이 더 나은가?"라고만 물었다면, 결과는 하나의 임의적인 답변으로 축소되었을 것이고 저는 아무것도 배우지 못했을 것입니다.
두 번째 교훈: 어떤 비교에서든, 답변의 품질은 당신이 기준 (criteria)을 정의했는지 여부에 따라 제한됩니다. 모델은 당신이 "어떤 면에서 더 나은지"를 말해주기 전까지는 "더 낫다"라고 말할 수 없습니다.
모델은 더 똑똑해졌지만, 무결하지는 않습니다
저를 가장 놀라게 했던 부분은 바로 그 동일한 비교 답변 안에 포함되어 있었습니다. 다음과 같은 내용이었습니다:
Dyson과의 $130 차이는 실제 돈입니다...
그리고 나중에:
... $70를 더 지불하는 것이 편안합니다.
두 문장은 동시에 참일 수 없습니다. 실제 차액은 $269.99에서 $199.99를 뺀 $70입니다. $130은 틀렸으며, 모델은 동일한 답변 내에서 스스로 모순을 일으켰습니다. 잘 설계된 프롬프트 (prompt engineering)는 추론 (reasoning) 과정을 훨씬 개선해주었습니다. 하지만 산술 (arithmetic)을 정확하게 만들어주지는 못했습니다.
해결책은 제약 조건 (constraint)을 하나 더 추가하는 것입니다: "가격 차이 계산 과정을 명시적으로 보여주세요." 오류는 요약된 주장 속에는 숨어있을 수 있지만, 보여지는 계산 과정 속에는 숨기 어렵습니다. 만약 제가 $269.99 - $199.99 = $70라고 쓰도록 강제했다면, 이러한 모순은 불가능했을 것입니다.
세 번째 교훈: 더 나은 프롬프트는 진실이 아닌 추론을 개선합니다. 모델의 수학 계산은 항상 검증하십시오.
내가 예상했어야 했던 제약 조건: 글자 수
그 비교 프롬프트를 아마존 쇼핑 어시스턴트 (Amazon shopping assistant)에 복사했을 때, 앞부분 절반만 붙여넣기 되었습니다. 글자 수 제한이 있었고, 역할 (ROLE), 작업 (TASK), 출력 (OUTPUT) 헤더를 포함하여 정성스럽게 작성한 제 프롬프트는 문장 중간에서 잘려 나갔습니다.
짜증 나는 점은 한계에 부딪히기 전까지는 그 제한이 존재한다는 사실을 아무도 알려주지 않는다는 것입니다. 이러한 어시스턴트(Assistants)들은 이를 문서화하는 경우가 드물기 때문에, 머리를 부딪쳐 보는 과정을 통해서야 비로소 한계치를 알게 됩니다. 이는 전략을 변화시킵니다. 알 수 없는 숫자를 기준으로 계획을 세울 수는 없으므로, 답변을 변화시키는 지침(Instructions)을 가장 먼저 배치해야 합니다. 그래야 만약 내용이 잘리더라도(Truncated), 실질적인 내용이 아닌 형식이 손실되기 때문입니다.
그 사고를 통해 유용한 교훈을 얻었습니다. 예산(Budget)이 빠듯할 때는 각 단어가 얼마나 많은 가치를 가져다주는지에 따라 기술의 우선순위를 정하고 나머지는 삭제해야 합니다. 헤더(Headers)와 스캐폴딩(Scaffolding, 구조적 틀)? 가장 먼저 삭제 대상입니다. 모델은 스스로 구조를 추론할 수 있습니다. 보호해야 할 항목의 순서는 다음과 같습니다:
- 기준점 파괴 (권장 소비자 가격이 아닌 실제 시장 가격)
- 딜(Deal) 대 제품(Product)의 분리
- 가중치가 적용된 기준 (인라인 약어(Inline shorthand)로 압축)
- 인용 또는 미검증 규칙
압축된 버전은 길이는 4분의 1로 줄어들었지만 모든 필수 지침을 담고 있었습니다:
구매 관점에서 비교: Dyson V8 $269.99 vs Shark IZ363HT (HEPA) $199.99. 권장 소비자 가격 할인은 무시하고, 각 제품을 실제 시장 가격(Street price)과 비교할 것. 제품군이 다른지 여부를 명시할 것. 점수 산정 기준: 가격 대비 시장가 30%, 청소 성능 25%, 작동 시간 20%, HEPA 15%, 유지 관리 10%. 두 가지 사항을 별도로 답변할 것: 더 나은 딜(DEAL), 그리고 더 나은 제품(PRODUCT). 가격별로 출처+날짜를 인용하거나 미검증으로 표시할 것.

이제 프롬프트에 당신이 중요하게 생각하는 더 많은 세부 사항이 포함되었습니다. 가격 이력 테이블과 생성된 차트가 포함된 엔지니어링된 프롬프트입니다.
네 번째 교훈: 프롬프트의 힘은 형식이 아니라 제약 조건(Constraints)과 재구성(Reframes)에 있습니다. 헤더는 가독성을 위한 사치일 뿐입니다. _답변_을 변화시키는 지침이야말로 절대 삭제해서는 안 되는 핵심입니다.
동일한 질문, 나란히 비교
이것이 바로 제가 회의론자들에게 보여주고 싶은 비교입니다. 차이점을 한눈에 볼 수 있도록 세 번째 제품을 두 가지 종류의 프롬프트(Prompt)로 실행해 보았습니다: 바로 Garmin epix Pro (Gen 2) Sapphire Edition, 51mm입니다. 권장 소비자 가격(List price)이 1,000달러를 상회하는 프리미엄 시계로, 이는 앵커링 문제(Anchor problem)를 더욱 유혹적으로 만듭니다.
프롬프트 엔지니어링 (Prompt Engineering) 없이, 당신은 자연스럽게 느껴지는 대로 작성합니다:
"Garmin epix Pro (Gen 2) Sapphire 51mm가 지금 사기에 좋은 가격인가요?"
그러면 권위 있게 들리면서도, 당신이 원하는 정보의 일부는 알려주지만 전부는 아닐 수도 있는 답변을 받게 됩니다:
그 답변이 어떻게 작동하는지 주목하세요. 할인가를 액면 그대로 받아들이고, 권장 소비자 가격(List price)을 기준으로 사용합니다.
프롬프트 엔지니어링 (Prompt Engineering)을 적용하면, 재구성(Reframes)에 시간을 투자합니다:
가격 분석가(Pricing analyst)로서 행동하세요. 나는 Garmin epix Pro (Gen 2) Sapphire 51mm의 현재 가격이 권장 소비자 가격 대비 할인된 것처럼 보이는지가 아니라, 실제로 좋은 가격인지가 궁금합니다. 결론을 내리기 전에: (1) 지난 6~12개월 동안의 실제 시장가/역사적 가격(Street/historical price)을 찾고, (2) 현재 가격 또는 그 이하로 내려간 빈도를 기록하며, (3) 권장 소비자 가격이 아닌 일반 판매가(Typical selling price) 대비 실제 할인율을 명시하세요. 가격별로 출처와 날짜를 인용하거나 확인되지 않았음을 표시하세요. 그런 다음 구매 / 대기 / 건너뜀(Buy / Wait / Skip)의 판결을 내리고, 기다려야 한다면 기다려야 할 목표 가격을 제시하세요.
돌아오는 결과물의 _형태(Shape)_가 완전히 바뀝니다. 판매 문구 대신, 추론 과정이 포함된 판결을 받게 됩니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

