Claude가 엉뚱한 결과를 만드는 이유: 프롬프트 3개
MarkdownClaude는 사용자의 의도를 이해하지 않은 채 서둘러 코드를 작성하기 때문에 엉뚱한 결과를 만듭니다. 그 이유를 설명하고, Claude가 먼저 질문하도록 만드는 즉시 사용 가능한 프롬프트 3개를 소개합니다.
전체 글 읽기
핵심 요점
Claude는 코드부터 서둘러 작성하며 사용자가 원한다고 생각하는 내용을 빈칸에 채워 넣기 때문에 엉뚱한 결과를 만듭니다. 실제로는 그 추측이 틀리는 경우가 많습니다. 문제는 거의 언제나 모델이 아닙니다. 가장 뛰어난 모델도 모호한 작업에서는 빗나갈 수 있습니다. 해결책은 간단합니다. Claude가 먼저 저를 인터뷰해 의도를 끌어내게 한 다음에야 글을 쓰도록 합니다. 아래에는 복사해 바로 사용할 수 있는 프롬프트 세 가지가 있습니다.
서비스를 더 자세히 알아보려면 Ailoot 문서를 참고하세요.
Claude는 왜 엉뚱한 결과를 만들까요?
핵심 요점
Claude는 짧은 요청을 받으면 빠진 부분을 즉시 채우고, 자신이 해석한 작업을 바탕으로 코드를 서둘러 작성합니다. Claude의 해석과 사용자의 생각은 다릅니다. 한 줄만 바뀔 거라고 예상했는데 14개 파일을 건드리는 diff를 받게 되는 이유입니다. 원인은 말한 내용과 실제 의도 사이의 간극입니다. 모델과는 거의 관계가 없습니다.
“제품 페이지에 필터를 추가해 줘.”라고 씁니다. 머릿속으로는 체크박스 몇 개와 업데이트된 목록을 떠올립니다. Claude는 같은 요청을 듣고 완전한 필터링 엔진을 만들기로 합니다. 자체 상태 저장소, 별도의 입력 지연 로직, URL 동기화, 도우미 함수 열두 개까지 추가합니다. URL 매개변수 몇 개면 충분한데 수백 줄을 작성하는 셈입니다.
이런 경우 결론은 분명합니다. 에이전트가 실수한 것이 아니라 필요 이상으로 큰 문제를 해결했을 뿐입니다. 원하는 결과를 짧고 정확하게 설명하지 않은 것이 원인이었습니다.
핵심 단어는 “의도”입니다. 사용자의 머릿속에는 있지만 Claude에게는 없습니다. Claude는 요청의 글자와 그 요청에 이르기까지의 모든 맥락을 봅니다. 그런 다음 빈틈을 추측으로 메웁니다. 요청이 짧을수록 더 많이 추측하고, 결과는 사용자가 원한 것에서 더 멀어집니다.
Anthropic은 Claude Code 문서에서 이를 분명히 설명합니다.
Claude가 곧바로 코드 작성에 뛰어들게 두면 잘못된 문제를 해결할 수도 있습니다.
제 프로젝트에서도 이런 일을 겪었습니다. 인증 화면 하나를 수정해 달라고 했는데 인접한 모듈의 절반에 영향을 주는 diff를 받았습니다. Claude의 잘못은 아니었습니다. 제가 한 줄만 알려 줬고, 나머지는 Claude가 알아서 채웠습니다. 그 뒤로는 오타 수정 이상의 작업이라면 무엇이든 먼저 질문부터 시작합니다. Claude가 저에게 질문하게 합니다.
정말 모델 탓일까요? 가장 뛰어난 모델도 왜 빗나갈까요?
핵심 요점
모델은 사람들이 생각하는 것만큼 중요하지 않습니다. 모호한 작업에서는 가장 뛰어난 모델도 빗나갑니다. 동일하게 불완전한 지시를 받고, 빈틈을 자기 추측으로 채우기 때문입니다. 에이전트를 잘 통제하는 개발자는 최상위 모델을 쓰든 중급 모델을 쓰든 같은 결과를 얻습니다. 결국 원하는 것을 얼마나 명확하게 설명하느냐에 달려 있습니다. 여기서는 모델의 성능이 부차적입니다.
매주 이전보다 “더 똑똑한” 모델이 등장하고, 그때마다 이제 AI가 몇 마디만 듣고도 마침내 우리를 이해할 것처럼 느껴집니다. 그렇지 않습니다. 더 강력한 모델은 코드를 더 빨리 작성하고 복잡한 로직을 더 잘 다루지만, 여전히 사용자의 생각을 읽지는 못합니다. 작업을 잘못 설명하면 문장은 훌륭하지만 결과는 여전히 틀린 답을 얻게 됩니다.
여기서 얻을 교훈은 간단합니다. 더 잘 추측하게 하려고 최신 모델을 쫓는 것은 막다른 길입니다. 추측할 필요가 없도록 작업을 지시하는 법을 배우는 편이 더 저렴하고 신뢰할 수 있습니다. 이어서 그 방법을 알아보겠습니다.
그릴링이란 무엇이며, AI와의 의도 불일치를 어떻게 해결할까요?
핵심 요점
그릴링은 AI가 일을 시작하기 전에 사용자를 인터뷰하게 하는 방식입니다. 서로 같은 내용을 이해할 때까지 작업에 관해 자세한 질문을 합니다. 첫 줄의 코드를 쓰기 전에 의사소통의 간극을 좁히는 것이 목적입니다.
직관에 어긋나는 이야기처럼 들립니다. 일을 더 빨리 끝내려고 AI를 쓰는데 이제 속도를 늦추고 먼저 질문하게 하라니요. 하지만 코드를 쓰기 전에 질문하는 데 5분을 쓰면 나중에 수정하는 데 드는 1시간을 아낄 수 있습니다.
문제는 Claude에게 설명을 잘못한 것만이 아닙니다. 사용자가 작업을 충분히 생각해 보지 않은 경우도 많습니다. 어떤 사례를 다뤄야 하는지, 경계는 어디인지, 무엇이 가장 중요한지 말입니다. 그릴링은 질문을 통해 이런 내용을 끌어냅니다. 대화가 끝나면 AI가 이해하는 작업 사양뿐 아니라, 마침내 세부 사항까지 명확해진 사용자의 작업도 얻을 수 있습니다.
이것이 컨텍스트 엔지니어링이 작동하는 방식입니다. 주요 작업은 프롬프트를 쓰는 동안이 아니라 그 전에 이뤄집니다. 마법 같은 프롬프트 문구를 찾는 것이 아닙니다. Claude가 추가 설명 없이 이해할 때까지 필요한 내용을 미리 정리하는 것입니다.
Claude가 먼저 질문하게 하려면 어떻게 해야 할까요?
핵심 요점
Claude에게 작업을 짧게 설명하고 작업을 시작하기 전에 사용자를 인터뷰하라고 명확하게 요청하세요. 세부 사항, 예외 사례, 제약 조건에 관해 질문하게 한 뒤 마지막에는 모든 내용을 사양 파일 하나로 정리하게 합니다. 이는 Anthropic의 공식 권장 사항입니다. Claude Code 문서에는 바로 쓸 수 있는 프롬프트 템플릿이 있습니다. 복사한 뒤 설명을 바꾸고 세션을 시작할 때 붙여 넣으세요.
Anthropic은 이 접근을 허용하는 데 그치지 않고 권장합니다. 문서에는 미리 작성된 프롬프트와 함께 “Claude가 인터뷰하게 하기”라는 섹션이 있습니다. 실용적인 버전은 다음과 같습니다.
프롬프트
그릴링 프롬프트—Claude가 사용자를 인터뷰하게 하기
[작업에 대한 간략한 설명]을 만들고 싶습니다.
코드를 작성하기 전에 저를 자세히 인터뷰하세요. 구현, 인터페이스, 예외 사례, 위험, 장단점에 관해 질문하세요. 뻔한 질문은 하지 말고, 제가 미처 생각하지 못했을 수 있는 까다로운 부분을 깊이 파고드세요.
한 번에 질문 하나만 하고 제 답변을 기다리세요. 각 질문마다 가장 적절하다고 생각하는 답변을 즉시 제안하세요.
모든 내용을 다룰 때까지 계속하세요. 그런 다음 완전한 사양을 SPEC.md라는 파일에 정리하세요.
이 프롬프트를 형식에 그치지 않고 유용하게 만드는 세부 사항은 세 가지입니다. 첫째, “한 번에 질문 하나만.” AI가 질문 열 개를 한꺼번에 쏟아 내면 부담을 느껴 피상적으로 답하게 됩니다. 둘째, “답변을 제안하세요.” 모든 것을 처음부터 생각해 낼 필요 없이 제안을 받아들이거나 고치면 됩니다. 셋째, “사양을 파일에 정리하세요.” 끌어낸 의도가 사라지지 않는 문서로 남습니다.
Anthropic은 효과를 투입한 시간으로 설명합니다.
사양을 제대로 만드는 데 들인 시간은 구현을 지켜보는 데 들인 시간보다 가치가 큽니다.
인터뷰를 마친 뒤 새 세션을 열고 완성된 사양을 전달하세요. 깨끗한 컨텍스트와 명확한 의도만 있으면 Claude는 첫 시도부터 정확히 해냅니다.
“이게 최선의 계획이라는 걸 증명해 봐” 기법
핵심 요점
AI가 질문하게 하는 데 그치지 말고 결정도 변호하게 하세요. 저는 제안한 계획이 단지 가장 먼저 떠오른 계획이 아니라 최선의 계획이며, 여러 단계 앞까지 생각한 결과임을 증명하라는 조건을 작업에 추가합니다. 이렇게 하면 Claude가 “비슷한 걸 하겠습니다”라는 태도에서 벗어나, 구현에 시간을 들이기 전에 스스로 작업을 확인하는 비평가의 태도를 갖게 됩니다.
그릴링은 의도를 끌어냅니다. 하지만 AI에게는 또 다른 습관이 있습니다. 그럴듯해 보이는 첫 번째 해결책을 붙잡는 것입니다. Anthropic은 이를 “믿되 검증하라”의 간극이라고 부릅니다. Claude는 그럴듯하지만 예외 사례에서 버티지 못하는 구현을 내놓습니다. 해결책은 코드 작성 전에 근거를 요구하는 것입니다.
결과를 확인할 수 없다면 제출하지 마세요.
저는 거의 항상 프롬프트에 “증명해 봐” 섹션을 추가합니다. 정확한 문구는 다음과 같습니다.
프롬프트
프롬프트—AI가 계획을 변호하게 하기
코드를 작성하기 전에 비평가의 관점에서 작업을 분석하세요.
해결 방법을 2-3가지 찾으세요. 각 방법이 쓸데없이 복잡성을 더하는 것이 아니라 실제로 내 작업을 해결한다는 점을 증명하세요. 단지 코드를 작성하기 위해 코드를 쓰지 마세요.
그런 다음 하나를 선택하고, 여러 단계 앞까지 생각한 최선의 해결책임을 증명하세요. 프로젝트가 성장하면 무엇이 망가질까요? 지금 우리가 놓치고 있는 것은 무엇인가요?
그제야 구현 방안을 제안하세요.
이 섹션이 없으면 Claude는 처음 찾은 실행 가능한 방안을 내놓습니다. 이 섹션이 있으면 Claude가 스스로 막다른 길을 걸러내고 선택을 설명하며, 파일 하나를 건드리기도 전에 판단 근거를 보여 줍니다. 완성된 코드가 예상대로 작동하지 않는 이유를 한 시간 동안 알아내는 대신, 2분이면 읽을 수 있는 짧은 글을 확인하면 됩니다.
사전 부검: 시작 전에 실패할 이유 10가지를 AI가 찾게 하기
핵심 요점
사전 부검은 프로젝트가 이미 실패했다고 상상하고 그 이유를 말해 보라고 AI에게 요청하는 기법입니다. Claude는 낙관적인 “해내겠습니다” 모드에서 벗어나, 일주일간 작업한 뒤에야 드러날 약점을 찾기 시작합니다. 프로젝트에 시간을 투자하기 전에 위험 목록을 받아 미리 해결할 수 있습니다.
제가 가장 좋아하는 기법이며 심리적인 효과가 있습니다. AI에게 “잘해 달라”고 하면 성공을 전제로 삼아 허점을 건너뜁니다. 실패를 상상해 보라고 하면 이전에 무시했던 점을 보기 시작합니다. 프롬프트는 짧습니다.
프롬프트
사전 부검 프롬프트—시작 전에 허점 찾기
지금으로부터 1년 뒤라고 상상해 보세요. 우리가 계획 중인 프로젝트는 실패했습니다.
실패한 이유 10가지를 적으세요. 시작할 때 무엇을 고려하지 못했나요? 무엇을 과소평가했나요? 어디서 지름길을 택했나요? 어떤 가정이 틀린 것으로 드러났나요?
그런 다음 각 이유를 해결하기 위해 지금 바로 무엇을 고칠 수 있는지 알려 주세요.
계획을 승인하기 전에 이 프롬프트를 실행합니다. 이유의 절반은 말이 안 되는 것으로 드러나지만, 나머지 절반은 일주일 뒤에 실제로 맞닥뜨렸을 함정입니다. 계획 단계에서 해결하면 10분이면 됩니다. 완성된 프로젝트에서 마주치면 조사에 며칠이 듭니다.
조합은 간단합니다. 그릴링은 의도를 끌어내고, “증명해 봐”는 결정을 변호하며, 사전 부검은 허점을 찾습니다. 코드를 작성하기 전에 붙여 넣는 짧은 글 세 가지입니다. 이를 통해 Claude는 서두르는 실행자에서 먼저 생각하는 협력자로 바뀝니다.
컨텍스트가 과부하되면 Claude가 왜 멍청하게 행동할까요?
핵심 요점
Claude의 컨텍스트 창은 한 번에 기억할 수 있는 정보량에 한계가 있습니다. 창이 절반 넘게 차면 중요한 세부 사항을 잊고, 이전에 합의한 내용을 뒤섞으며, 기억하는 대신 빈틈을 추측으로 채우기 시작합니다. 온갖 이야기를 나누는 긴 세션은 하루가 끝날 무렵 AI가 아침에 합의한 내용과 완전히 다른 일을 하는 흔한 원인입니다.
아무리 작업을 완벽하게 정의해도 어수선한 컨텍스트에서 작업하면 무너집니다. 작동 방식은 이렇습니다. 새로운 요청을 할 때마다 전체 채팅 기록이 Claude의 작업 컨텍스트에 들어갑니다. 세션이 길어질수록 창은 더 빨리 찹니다. 절반을 넘기지 마세요. 그 이상 차면 AI가 멍청하게 행동하고 대화 초반에 논의한 중요한 내용을 잃기 시작합니다.
제가 가장 큰 좌절을 줄인 규칙은 다음과 같습니다. 작업 하나에 채팅 하나. 함수를 완성했나요? 채팅을 닫고 다음 작업을 위한 새 채팅을 여세요. 물론 한 창에서 모든 일을 처리하는 편이 더 편할 때도 있지만, 컨텍스트를 잃고 주제에서 벗어난 답변을 받게 됩니다.
Anthropic은 이런 실패 유형을 “잡동사니 서랍 세션”이라고 부릅니다. 해결책은 간단합니다. 관련 없는 작업 사이에 /clear를 사용해 창을 비우고, 이전 작업의 잡동사니가 새 작업으로 넘어오지 않게 하세요.
긴 세션을 사용하면서 비용과 AI의 주의력이 어디로 가는지 모르겠다면 Claude Code 토큰이 사용되는 곳에 관한 별도 가이드에서 다룹니다. Claude가 시작할 때마다 읽는 영구 컨텍스트의 기본 사항은 CLAUDE.md 설정하기 가이드에 정리했습니다.
그릴링과 Plan Mode의 차이는 무엇이며 어떻게 함께 사용할까요?
핵심 요점
그릴링과 Plan Mode는 같은 문제의 서로 다른 절반을 해결합니다. 그릴링은 계획을 세우기 전에 질문으로 사용자의 의도를 끌어냅니다. Plan Mode는 이미 이해한 작업을 받아 변경 계획을 보여 주며, 사용자가 승인할 때까지 아무것도 건드리지 않습니다. 함께 사용할 때 가장 효과적입니다. 먼저 그릴링으로 무엇을 만들지 명확히 하고, 이어서 Plan Mode로 구체적인 방법을 확인합니다.
사람들은 이 두 기법을 혼동하거나 하나만 있으면 된다고 생각하는 경우가 많습니다. 실제로는 작업 과정의 서로 다른 시점에 쓰입니다.
| 기능 | 그릴링 | Plan Mode |
|---|---|---|
| 실행 시점 | 계획 수립 전—의도를 명확히 함 | 그 후—변경 계획을 만듦 |
| 누가 누구에게 묻는가 | AI가 사용자를 인터뷰함 | 사용자가 계획을 읽고 승인함 |
| 결과물 | 작업 사양 | 파일별 변경 계획 |
| 주요 이점 | “내가 원한 건 그게 아니야”를 방지 | “다른 건 건드리지 마”를 방지 |
Anthropic은 표준적인 4단계 작업 흐름을 설명합니다. 먼저 Explore(Claude가 조사하고 질문함), 다음 Plan(변경 없이 계획 수립), 이어서 Implement(계획에 따라 코드 작성), 마지막으로 Commit(결과 기록)입니다. 그릴링은 첫 번째 단계에서, Plan Mode는 두 번째 단계에서 이뤄집니다. 두 번째 단계의 전체 설명은 Claude Code의 Plan Mode 가이드를 참고하세요.
Anthropic은 중요한 단서를 덧붙입니다. 작은 작업에 이런 절차를 부담으로 만들지 마세요.
한 문장으로 변경 사항을 설명할 수 있다면 계획은 건너뛰세요.
오타 수정, 이름 변경, 한 줄 수정이라면 인터뷰나 계획 없이 바로 작성하면 됩니다. 모호한 작업이나 오류 비용이 큰 작업에서 그릴링이 효과를 발휘합니다. 사소한 작업에는 오히려 속도를 늦출 뿐입니다.
AI가 엉뚱한 일을 하게 만드는 작업 설명 실수 5가지
핵심 요점
AI가 빗나가는 이유는 거의 모두 다섯 가지 작업 설명 실수에 있습니다. 모호한 한 줄 요청, 제약 조건의 부재, “먼저 이해하기” 단계 없이 “코드 작성하기”부터 지시하기, 완료의 정의가 없음, 모든 일을 하나의 끝없는 세션에서 처리하기입니다. 각각은 Claude가 추측으로 작업의 빈틈을 채우게 만듭니다. 아래에서 각 실수의 사례와 대체 방법을 살펴봅니다.
흔한 실수를 표로 정리했습니다. 왼쪽은 사람들이 보통 하는 잘못된 방식이고, 오른쪽은 대신 해야 할 일입니다.
| 실수 | 이렇게 말함 | 대신 할 일 |
|---|---|---|
| 모호한 한 줄 요청 | “대시보드를 개선해 줘” | 작업을 설명하고 그릴링을 시작해 AI가 질문으로 세부 사항을 끌어내게 하기 |
| 제약 조건 없음 | “인증을 추가해 줘” | 무엇이 망가지면 안 되는지, 어떤 라이브러리를 추가하면 안 되는지, 범위 밖에 무엇이 있는지 말하기 |
| 곧바로 “코드 작성” | 프롬프트를 쓰고 코딩 시작 | 먼저 “이해하고 질문하기”, 그다음 코드 작성 |
| 완료의 정의 없음 | AI가 결과를 추측하기를 기대함 | 예시, 참고 스크린샷 또는 “작동한다”의 의미를 보여 주는 테스트 제공 |
| 모든 일을 하나의 세션에서 처리 | 하루 종일 채팅 하나만 사용 | 컨텍스트가 어수선해지지 않도록 작업 하나에 새로운 채팅 하나 사용 |
AI가 잘못된 답을 했던 마지막 프롬프트를 검토해 보세요. 거의 확실히 이 다섯 가지 실수 중 하나가 작용했을 겁니다. 가장 흔한 실수는 첫 번째입니다. 짧은 문구만 주고 Claude가 나머지를 정확하게 채우기를 기대한 경우입니다. 나머지를 채우기는 했지만 사용자가 생각한 방식은 아니었습니다.
다음 단계: AI가 몇 마디만 듣고도 이해하도록 시스템 만들기
핵심 요점
개별 프롬프트는 개별 작업을 해결합니다. 매번 길게 설명하지 않아도 AI가 사용자를 이해하게 하려면 시스템이 필요합니다. 그릴링은 각 작업의 의도를 끌어내고, Second Brain은 프로젝트 지식을 저장하며, 컨텍스트 엔지니어링은 Claude가 프롬프트 전에 읽는 모든 정보를 연결합니다. 그러면 Claude가 엉뚱한 일을 하게 만드는 이유가 사라집니다. 추측하지 않아도 될 만큼 충분한 컨텍스트를 항상 갖게 됩니다.
이 가이드의 프롬프트 세 가지, 즉 그릴링, “증명해 봐”, 사전 부검은 당면한 작업을 처리합니다. 그것만으로도 큰 효과가 있습니다. 한 줄만 바꾸고 싶었는데 14개 파일을 건드리는 diff를 받는 일이 사라집니다.
하지만 그릴링에도 한계가 있습니다. 매번 처음부터 의도를 끌어내려면 시간이 오래 걸립니다. 진정한 변화는 컨텍스트 일부가 항상 마련돼 있을 때 시작됩니다. 프로젝트 지식이 담긴 폴더, Claude가 시작할 때마다 읽는 CLAUDE.md 파일, 스킬에 인코딩한 사용자의 방법론이 그렇습니다. 그러면 AI는 사용자의 업무, 목표, 스타일을 이미 알고 작업에 들어옵니다. 컨텍스트의 절반을 미리 정리해 두었기 때문에 몇 마디만으로도 사용자를 이해합니다.
Anthropic의 최근 분석은 이 작업이 얼마나 남았는지 보여 줍니다. 개발자들은 업무의 약 60%에서 AI를 사용하지만, 작업의 0-20%만 완전히 신뢰할 수 있습니다. 나머지에는 사용자의 이해와 감독, 무엇을 만들어야 하는지 설명하는 능력이 필요합니다. 개발해야 할 능력은 이것이지, 가장 똑똑한 모델을 쫓는 것이 아닙니다.
출처
Ailoot에 대해 알아보세요.
자세히 보기
Claude가 엉뚱한 결과를 만드는 이유: 프롬프트 3개: 자주 묻는 질문
바로 코딩하지 않고 인터뷰 프롬프트를 쓰는 경우는 언제인가요?
목표, 예외 상황, 제약이 불명확하고 실수 비용이 클 때 사용하세요. 한 번에 하나씩 질문하고 합의한 결과를 SPEC.md에 저장하세요. 오타나 분명한 한 줄 변경은 직접 요청할 수 있습니다.
제안된 계획을 승인하기 전에 무엇을 확인하나요?
두세 가지 접근을 요청해 각 방식이 명세와 제약을 어떻게 충족하는지 비교하세요. 이어서 사전 실패 분석 프롬프트를 실행하고 실패 이유를 검토해 관련 위험을 구현 전에 다루세요.