콘텐츠 생산 및 자동화

AI에게 지시가 안 먹을 때, 프롬프트를 고치는 순서

AI 로컬 LLM 2026. 9. 16. 15:54

내 맥미니로 자동화 파이프라인을 돌리면서 가장 많이 부딪힌 문제 중 하나는 AI가 시키는 대로 움직이지 않는다는 점이다. 특히 글을 생성하거나 요약하는 작업에서 그랬다. 원하는 길이와 톤, 구조를 맞추지 못해 프롬프트를 고치는 데만 몇 시간씩 날려버린 적도 많다. 이런 시행착오를 겪으며 AI에게 제대로 지시하는 순서를 익혔다.

증상 AI가 글의 길이, 톤, 구조 지시를 따르지 않고 엉뚱한 결과물을 내놓는다.

원인
  1. AI에게 숫자는 정확한 제약이 아니라 대략적인 분위기로 전달된다.
  2. "강하게" 같은 추상적인 톤 지시는 과하게 해석된다.
  3. 지시를 늘릴수록 AI는 그중 일부를 빼먹거나 섞는다.
해결
  1. 길이는 프롬프트 대신 후처리 코드로 자른다.
  2. 톤은 원하는 것과 원치 않는 것을 함께 적어 경계를 긋는다.
  3. 내용 지시 대신 출력 구조를 지정한다.
확인법 고친 프롬프트로 같은 작업을 여러 번 돌려 길이·톤·구조가 의도대로 나오는지 직접 세어 본다.

프롬프트가 내 말을 안 들을 때

맥미니에서 돌아가는 내 자동화 파이프라인은 주로 글을 만들거나 다듬는 일이었다. 처음에는 AI가 만능인 줄 알았다. "이거 해줘", "저거 해줘" 하면 알아서 다 해줄 줄 알았다. 하지만 현실은 달랐다.

AI는 내 기대를 번번이 저버렸다. 글의 길이나 어조, 심지어는 내용의 순서까지 제멋대로였다. 맥미니 앞에 앉아 "이게 왜 안 될까" 하며 한숨만 쉬었던 때가 많다.

나는 이 문제를 해결하려고 프롬프트만 수도 없이 고쳐봤다. 처음에는 이렇게 시작했다.

"다음 내용을 300자 이내로 요약해줘. 톤은 강하게."

결과물은 늘 300자를 넘겼다. '강한 톤'은 가끔 무례하게 들릴 정도로 과했다. 이런 식의 씨름이 계속되자 하나를 깨달았다. AI는 '창작'에는 능하지만, '제약'을 지키는 데는 약하다.

AI 지시 안 먹힐 때, 이렇게 해결했다

가장 흔한 문제가 바로 길이 지시였다. "300자 이내로 요약해달라"고 프롬프트를 넣으면 십중팔구 400자, 심지어 600자가 넘어 나왔다.

처음엔 프롬프트에 "반드시 300자 이내로 엄수!", "정확히 글자 수를 세어서 300자를 넘기지 마!" 같은 말들을 덧붙여 봤다. 심지어 "한 글자라도 넘어가면 안 돼." 같은 강경한 표현도 써봤다. 하지만 결과는 크게 달라지지 않았다. 글자 수가 약간 줄어들 수는 있어도, 내가 정한 한계를 칼같이 지키는 경우는 드물었다.

AI에게 숫자는 '대략적인 분위기'이지 '정확한 제약'이 아니었다.

그래서 나는 프롬프트로 길이를 통제하려는 시도를 멈췄다. 대신 후처리(post-processing) 코드를 사용했다. AI가 아무리 길게 만들어도, 내가 원하는 길이로 잘라버리는 식이다. 파이프라인에서 AI가 돌려준 텍스트를 받은 뒤, 이런 간단한 파이썬 코드를 돌렸다.

ai_output_text = "AI가 생성한 엄청 긴 문장..."  # AI가 돌려준 텍스트
max_length = 300  # 원하는 최대 길이

if len(ai_output_text) > max_length:
    trimmed_text = ai_output_text[:max_length]
else:
    trimmed_text = ai_output_text

print(trimmed_text)

이 방법은 확실했다. AI가 500자를 만들든 1000자를 만들든, 결국 내가 원하는 300자로 딱 잘려 나왔다.

물론 문장이 중간에 잘려 어색해질 수도 있다. 그래서 실제로는 글자 수가 아니라 문장 단위로 세어 마지막 온전한 문장까지만 남기는 식으로 조금 더 다듬었다. 어느 쪽이든 원칙은 같다. 지키게 하려고 프롬프트를 계속 고치는 것보다, 결과를 직접 세어 잘라내는 쪽이 확실하다. 이 방식은 프롬프트 수정에 들이던 시간을 없애줬다.

다음 문제는 톤이었다. "강한 톤으로 작성해달라"는 지시는 자주 무례하거나 심지어 공격적인 문장으로 이어졌다. 분명 나는 '단호함'이나 '확신에 찬 어조'를 원했는데, AI는 '타인을 비난하는' 방향으로 해석하는 경우가 있었다.

이것도 프롬프트를 고쳐가며 여러 번 시도했다. "단호하게", "확신을 가지고", "설득력 있게" 같은 표현을 써봤지만, 여전히 만족스럽지 않았다. AI는 '강함'의 스펙트럼 전체를 활용하는 듯 보였다.

여기서 얻은 교훈은 '하지 말아야 할 것'을 명확히 알려주는 것이었다. 긍정적인 지시('강하게')만으로는 AI의 해석 범위가 너무 넓어지는 것이다. 그래서 프롬프트에 이렇게 덧붙였다.

"강하고 설득력 있는 톤으로 작성하되, 절대로 무례하거나 비난하는 어조는 사용하지 마."

이렇게 부정적인 제약을 함께 넣어주자, AI의 톤이 훨씬 균형 잡히고 내가 의도한 '전문적이면서도 단호한' 어조에 가까워졌다. AI에게 원하는 방향만 알려줄 게 아니라, 원치 않는 방향을 명확히 알려 경계를 그어줘야 했다.

 

가장 강력한 변화는 지시의 양을 늘리는 대신 '구조'를 지정했을 때 일어났다. 처음에는 내가 원하는 내용을 구구절절 지시했다. "첫 문장에는 꼭 이 내용이 들어가야 하고, 다음에는 저 내용을, 그리고 마지막에는 이걸 넣어서 마무리해줘." 이런 식이었다.

하지만 AI는 이런 지시들을 제멋대로 섞거나, 아예 빼먹는 경우가 많았다. 내가 원하는 정보의 우선순위나 배열 방식과는 상관없이 AI가 생각하는 '최적의 흐름'대로 글을 써버렸다. 이 때문에 원하는 결과물을 얻기까지 다섯 번, 여섯 번씩 프롬프트를 고쳐가며 재시도를 해야 했다. 이게 가장 많은 시간을 잡아먹었다.

 

그러다 문득, AI는 빈 공간을 채우는 데 훨씬 능하다는 사실을 깨달았다. 자유롭게 창작하라고 하면 제멋대로지만, 정해진 틀 안에 넣으라고 하면 의외로 잘 따랐다. 그래서 프롬프트의 초점을 '내용 지시'에서 '구조 지시'로 바꿨다. 첫 문장은 무엇으로 시작하고, 한 편에 몇 개만 넣고, 마지막은 무엇으로 끝내는지를 적는 식이다.

"다음 주제로 블로그 글을 작성해줘.
글은 다음 구조를 따라야 해:

1. 서론: 독자의 공감을 얻는 문제 제기로 시작하고, 이 글에서 다룰 내용을 간략히 소개. (최대 2문장)
2. 본론 1: 문제의 원인과 배경 설명. 구체적인 사례 하나를 언급. (최대 3문장)
3. 본론 2: 문제 해결을 위한 구체적인 방법 제시. 단계별로 설명하고, 각 단계는 짧은 한 문장으로 마무리. (최대 4단계)
    - 단계 1: [설명]
    - 단계 2: [설명]
    - 단계 3: [설명]
4. 결론: 핵심 내용을 요약하고, 독자에게 주는 교훈이나 다음 행동을 유도하는 메시지로 마무리. (최대 2문장)"

이렇게 명확한 구조를 제시하자, AI는 놀랍도록 정확하게 그 틀을 채워냈다. 비록 각 문단의 길이나 내용 디테일은 내 의도와 약간 다를 수 있지만, 전체적인 틀과 흐름은 지켰다. 나는 이후 세부 내용만 살짝 손보면 됐다. 프롬프트 하나로 내가 원하는 구조의 글을 즉시 얻을 수 있게 된 것이다.

쇼츠 대본을 뽑을 때도 같은 방식을 썼다. 잘 되는 채널의 대본 구조를 먼저 뜯어보고 그 구조를 프롬프트에 옮기는 과정은 쇼츠 대본 AI로 뽑기, 잘 되는 채널 대본부터 뜯어보고 배운 것에 따로 적어 두었다.

결국 AI와 잘 일하려면 AI의 특성을 이해해야 한다. AI는 우리의 언어를 이해하는 '척'할 뿐, 사실은 패턴과 확률로 움직이는 기계라는 점을 항상 염두에 둬야 했다.

 

나는 이제 프롬프트를 짤 때, AI가 지시를 따르지 않을 가능성을 항상 고려한다. 특히 숫자 제약 같은 명확한 기준은 처음부터 프롬프트에 의존하기보다, 후처리 코드로 해결할 준비를 해둔다.

톤은 원하는 것과 원치 않는 것을 함께 알려주어 AI가 헤매는 범위를 줄인다. 가장 중요한 건, 추상적인 지시보다는 구체적인 '구조'를 만들어 AI가 그 빈칸을 채우도록 유도하는 것이다. 이 원칙 덕분에 내 맥미니 자동화 파이프라인은 훨씬 안정적으로 돌아가고 있다.

맥미니로 만드는 AI 홈서버 — 직접 돌려보고 씁니다