AI 카피 품질을 금지어가 아니라 근거 문제로 보기

@givemethatsewon· May 15, 2026· 4 min read

상황 설명 도식
상황 설명 도식

Place2Page의 AI 카피는 문법적으로 틀리지 않았지만, 여러 장소를 보면 반복 패턴이 바로 보였다. 처음에는 premium, special experience 같은 단어를 금지하면 해결될 것 같았지만 실제 문제는 단어가 아니라 근거 없는 주장에 있었다. 그래서 final HTML contract를 "더 멋지게 쓰기"가 아니라 "제공된 장소 데이터 안에서 쓸모 있게 쓰기"로 바꿨다.

요약

  • 문제: AI가 만든 랜딩페이지 카피가 실제 장소 정보보다 "premium", "special experience" 같은 범용 문구에 기대고 있었다.
  • 판단: 금지어 목록보다, 문장이 입력 데이터에 근거하는지 확인하는 contract가 더 중요했다.
  • 해결: final HTML 직전의 생성 규칙에 copy quality constraint를 넣고, 메뉴, 위치, 영업시간, 예약 링크처럼 실제 business facts를 우선 쓰게 했다.
  • 배운 점: 좋은 AI 카피는 더 화려한 문장이 아니라 덜 지어낸 문장에 가깝다.

상황

Place2Page는 장소 데이터를 바탕으로 랜딩페이지를 만든다. 음식점이면 메뉴와 영업시간, 사진, 리뷰가 들어오고 미용실이면 예약 링크와 서비스 정보가 들어온다. 이 데이터를 바탕으로 페이지의 제목, 소개 문구, CTA, 방문 정보가 만들어진다.

처음 생성 결과를 보면 그럴듯했다. 디자인도 있고, 섹션도 있고, CTA도 있었다. 그런데 여러 결과를 반복해서 보다 보니 비슷한 문장 패턴이 보였다.

"premium experience", "unforgettable journey", "crafted with care" 같은 문장이 자주 나왔다. 한국어로도 "특별한 경험", "최고의 가치", "프리미엄 공간", "잊지 못할 순간" 같은 표현이 반복됐다.

한두 번 보면 괜찮아 보이지만, 여러 장소에 같은 말이 반복되면 곧 AI가 쓴 문장처럼 느껴진다.

문제

처음에는 금지어 문제처럼 보였다.

특정 단어가 너무 자주 나오니까 그 단어들을 막으면 된다고 생각하기 쉽다. 실제로 "premium", "journey", "crafted" 같은 표현을 피하라는 규칙은 어느 정도 효과가 있다.

하지만 곧 더 큰 문제가 보였다.

문제가 되는 문장은 특정 단어 때문이 아니라 실제 장소 데이터에 근거하지 않기 때문에 어색했다. 어떤 식당인지, 어떤 메뉴가 있는지, 어디에 있는지, 예약이 가능한지 같은 정보보다 분위기 좋은 말이 먼저 나왔다.

예를 들어 메뉴 데이터가 있는데도 "특별한 경험을 선사합니다"라고 쓰면 약하다. 차라리 실제 메뉴 이름과 가격, 예약 링크, 위치 정보를 짧게 보여주는 편이 더 믿을 만하다.

처음 생각한 가설

처음에는 meta prompt를 고치면 충분할 것 같았다. meta prompt 단계에서 "더 구체적으로 써라", "과장하지 마라"라고 지시하면 final HTML도 나아질 거라고 봤다.

그런데 실제로는 final HTML 단계에서 다시 문장이 부풀었다. meta prompt가 아무리 담백해도, 마지막 생성 모델이 랜딩페이지 카피를 만들면서 익숙한 마케팅 문구를 끌어왔다.

그래서 최종 HTML 출력 직전의 contract에 copy quality 규칙을 넣어야 한다고 봤다. 원문 기획 단계보다 마지막 생성 단계에서 "입력 데이터 안에서만 쓴다"는 규칙이 더 강하게 필요했다.

확인한 증거

나중에 runbook을 정리하면서 이 문제를 다시 확인해보니 기록은 꽤 명확했다.

문제 상황에는 "premium", "experience", "special moment" 계열 표현이 반복된다고 남아 있었다. 한국어 출력에서도 "특별한 경험", "최고의 가치", "프리미엄 공간" 같은 표현이 데이터 근거 없이 등장했다.

처음 의심한 방향은 meta prompt였다. 하지만 현재 생성 규칙을 비교해보니 의미 있게 바뀐 부분은 final HTML 직전의 copy quality contract였다. 파일에 남은 기본 문구보다, 실제 선택된 마지막 생성 규칙에 grounding constraint가 들어간 것이 핵심 차이였다.

final HTML prompt도 같은 방향을 가리킨다. business facts가 있을 때는 웹사이트, 가격대, 영업시간, 예약 링크, 메뉴, 사진 같은 실제 단서를 visible copy에 사용하라는 요구가 있었다. 즉, "더 감성적으로 써라"가 아니라 "입력 데이터에 있는 사실을 보이게 써라"가 핵심이었다.

정리하면 증거는 세 가지였다.

단서 의미
반복된 generic copy 기록 문제는 특정 단어 하나가 아니라 근거 없는 문장 패턴이었다.
운영 규칙의 변경 지점 final HTML 직전 prompt contract에서 잡아야 했다.
business facts 사용 규칙 좋은 문장은 더 화려한 문장이 아니라 데이터에 더 가까운 문장이었다.

해결한 방식

핵심은 금지어 목록이 아니라 grounding 규칙이었다.

규칙은 대략 이렇게 잡았다.

  • 제공된 JSON 데이터의 상호명, 카테고리, 위치, 영업시간, 리뷰, 서비스, 메뉴, 예약 URL, 웹사이트, 사진, 가격대를 먼저 사용한다.
  • 데이터에 없는 수상 이력, 창업 스토리, 프리미엄 포지셔닝, 감정적 주장을 만들지 않는다.
  • 모르는 정보는 그럴듯하게 채우지 말고, 알고 있는 정보 안에서 쓴다.
  • 제목과 문단을 반환하기 전에 "이 문장이 아무 가게에나 붙을 수 있는가?"를 스스로 확인한다.

물론 피해야 할 표현도 함께 적었다. 하지만 목적은 "이 단어를 쓰지 마"가 아니라 "근거 없는 문장을 쓰지 마"에 가까웠다.

바뀐 점

이 규칙을 넣고 나면 카피의 방향이 조금 달라진다.

이전에는 이런 문장이 나오기 쉬웠다.

잊지 못할 프리미엄 경험을 선사하는 특별한 공간입니다.

이 문장은 그럴듯하지만 거의 아무 장소에나 붙일 수 있다.

반대로 grounding을 강하게 걸면 이런 방향이 된다.

홍대입구역 근처에서 예약 가능한 파스타 전문점입니다. 대표 메뉴와 영업시간을 확인하고 방문 계획을 세울 수 있습니다.

두 번째 문장이 더 평범해 보일 수 있다. 하지만 실제 랜딩페이지에서는 더 낫다. 사용자는 추상적인 감정보다 구체적인 방문 정보와 신뢰할 만한 단서를 먼저 필요로 하기 때문이다.

배운 점

AI 카피 품질을 올린다는 말을 처음 들으면 더 멋진 문장을 만드는 일처럼 느껴진다. 하지만 실제 제품에서는 반대에 가까웠다.

더 화려한 표현보다 더 덜 지어낸 문장이 중요했다. 제공된 데이터에 없는 말을 하지 않는 것, 같은 표현을 모든 장소에 반복하지 않는 것, 실제 사용자가 보고 행동할 수 있는 정보를 앞에 놓는 것이 더 중요했다.

이건 prompt engineering이라기보다 product writing에 가까웠다. 모델에게 "멋지게 써줘"라고 하는 대신, "알고 있는 것만으로 쓸모 있게 써줘"라고 말해야 했다.

다음에는 이렇게 판단한다

AI 생성 카피를 볼 때는 단어만 보지 않는다. 어떤 표현을 금지할지보다, 그 문장이 왜 나올 수 있었는지 먼저 본다. 입력 데이터에 근거하지 못하는 문장이라면 prompt의 문체보다 data grounding contract를 고쳐야 한다.

문장마다 아래 질문을 한다.

  • 이 문장은 제공된 데이터에 근거하는가?
  • 이 문장이 다른 아무 장소에도 붙을 수 있는가?
  • 더 짧고 구체적으로 쓸 수 있는가?
  • 사용자가 이 문장을 보고 실제 행동을 할 수 있는가?

금지어는 필요할 때가 있다. 하지만 금지어만으로는 좋은 카피가 나오지 않는다. 결국 중요한 것은 grounding이다.

givemethatsewon profile
@givemethatsewon
프로젝트를 만들고 운영하면서 배운 개발, 제품, 디버깅 기록을 남깁니다.