Anthropic의 Claude Code 소스 유출: 합법적으로 활용 가능한 7가지 프롬프팅 (Prompting) 기술
요약
Anthropic의 Claude Code 소스 코드 유출 사고를 통해 공개된 고성능 AI 에이전트의 프롬프팅 패턴을 분석합니다. 에이전트의 역할 정의, 범위 제한, 단계별 계획 수립 등 실무에 즉시 적용 가능한 7가지 핵심 기술을 소개합니다.
핵심 포인트
- AI 에이전트에게 좁고 명확한 역할과 엄격한 행동 범위를 부여해야 함
- 실행 전 단계별 계획을 먼저 수립하도록 지시하여 출력의 의도성을 높임
- 소스 코드 유출은 지적 재산 침해 대상이나, 프롬프트 패턴은 학습 가능한 기술임
- 추측을 방지하기 위해 에이전트가 할 수 없는 일을 명시하는 가드레일 설정이 중요함
Anthropic이 수천 명의 개발자가 신뢰하는 AI 코딩 에이전트(AI coding agent)인 Claude Code의 전체 소스 코드를 실수로 공개했습니다. 그들의 코드를 재사용할 수는 없으며(재사용해서도 안 됩니다). 하지만 이번 유출은 더 유용한 것을 알려주었습니다. 바로 세계 최고 수준의 AI 에이전트가 정확히 어떻게 프롬프팅 (Prompting) 되는가 하는 점입니다. 여기 그 패턴들과 이를 오늘 바로 적용하는 방법이 있습니다.
우선, 실제로 어떤 일이 일어났는가
2026년 6월, Anthropic은 npm의 공개 패키지인 @anthropic-ai/claude-code에 정기 업데이트를 배포했습니다. 그 안에 실수로 소스 맵 (source map)이 포함되었습니다. 소스 맵이란 압축된 (minified) 코드를 원래 코드로 매핑해 주는 개발자용 파일입니다. 이 파일 하나로 인해 약 1,900개의 파일과 50만 줄 이상의 난독화되지 않은 TypeScript로 구성된 Claude Code의 전체 클라이언트 소스가 노출되었습니다.
한 연구자가 몇 시간 만에 이를 발견했습니다. 코드가 회수되었을 때쯤에는 이미 인터넷 전역에서 수천 번 복사되고 포크 (fork)된 상태였습니다. Anthropic은 이것이 해킹이 아닌 패키징 오류임을 확인했습니다. 고객 데이터, 자격 증명 (credentials), 모델 가중치 (model weights) 등은 유출되지 않았으며, 단지 앱 자체의 구조 (plumbing)만 노출되었습니다.
여기서 여러분에게 중요한 부분이 있습니다. 여러분이 코드를 한 줄이라도 쓰든 안 쓰든, 이번 유출은 최고 수준의 AI 에이전트가 작동하는 청사진을 공개적으로 보여주었습니다. 그리고 그 청사진에서 가장 가치 있는 것은 코드가 아닙니다. 바로 프롬프팅 (prompting)입니다. 즉, 가공되지 않은 모델을 실제로 작업을 완수하는 도구로 바꾸어 주는 지침 (instructions), 구조 (structure), 그리고 가드레일 (guardrails)입니다.
윤리에 관한 명확한 선: 코드는 Anthropic의 지적 재산입니다. 이를 자신의 제품에 복사하는 것은 잘못된 일일 뿐만 아니라 법적인 문제도 됩니다. 하지만 아래의 아이디어에는 해당되지 않습니다. 훌륭한 프롬프트 디자인은 일반적인 지식입니다. 마치 훌륭한 요리사의 레시피를 읽는 것이 그 식당을 훔치지 않고도 기술을 배우는 것과 같습니다. 우리가 여기서 하려는 것이 바로 그것입니다.
훔칠 가치가 있는 7가지 기술
1. AI에게 역할과 엄격한 범위를 동시에 부여하라
에이전트 도구(Agentic tools)는 결코 "당신은 도움이 되는 비서입니다"라는 말로 시작하지 않습니다. 대신 좁은 정체성(identity)과 명시적인 경계(boundary)를 정의하며 시작합니다. 즉, 에이전트가 무엇인지, 무엇을 할 수 있는지, 그리고 무엇을 거절해야 하는지를 정의합니다. 넓은 범위보다는 좁은 범위가 낫습니다. 범위가 엄격하게 제한된 에이전트는 무분별한 추측을 덜 합니다.
적용 방법: "코드 작성을 도와줘" 대신, _"당신은 시니어 TypeScript 리뷰어입니다. 당신은 내가 붙여넣은 diff(차이점)에 대해서만 의견을 남깁니다. 관련 없는 코드는 다시 작성하지 않으며, 만약 diff 범위를 벗어나는 내용이 있다면 추측하는 대신 그렇게 말하십시오."_라고 시도해 보세요. 동일한 구조가 모든 작업에 적용됩니다. 역할을 정의한 다음, 그 주위에 울타리를 치십시오.
2. 행동하기 전에 계획을 세우게 하라
진지한 에이전트들에게서 가장 반복적으로 나타나는 단 하나의 패턴은 바로 "먼저 생각하고, 그다음에 행동하라"입니다. 이들은 짧은 계획을 세우고, 단계를 정리한 다음, 그제서야 실행하도록 지시받습니다. 이것이 에이전트의 출력이 산만하지 않고 의도적(deliberate)으로 느껴지는 이유입니다.
적용 방법: 거의 모든 프롬프트에 다음 한 줄을 추가하세요. "무엇인가를 작성하기 전에, 당신이 취할 단계들을 순서대로 나열하십시오. 기다렸다가, 내 목표와 계획을 대조하여 확인한 다음, 실행하십시오." 모델이 자유 연상(free-associating)을 멈추고 추론(reasoning)을 시작하기 때문에, 품질이 즉시 도약하는 것을 느낄 수 있을 것입니다.
3. 도구를 언제 사용해야 하는지, 그리고 언제 사용하지 말아야 하는지 정확히 알려주라
훌륭한 에이전트는 단순히 도구(검색, 파일 편집, 코드 실행 등)를 가지고 있는 것에 그치지 않습니다. 각 도구가 언제 제 역할을 다할 수 있는지에 대한 명확한 규칙을 가지고 있으며, "필요하지 않은 도구는 사용하지 않는다"라는 기본 원칙을 따릅니다. 그러한 절제력이 에이전트가 제자리를 맴도는 것을 방지합니다.
적용 방법: 웹 검색이나 코드 실행 기능이 있는 ChatGPT 또는 Claude를 사용하는 경우, 다음과 같이 명시적으로 말하세요. "현재의 사실에 대해 확신이 없을 때만 검색을 사용하십시오. 이미 알고 있는 내용이라면 직접 답변하고 검색하지 않았다고 말하십시오." 그러면 더 빠르고 정직한 답변을 얻을 수 있습니다.
4. 허세를 부리는 대신 불확실성을 인정하도록 강제하라
유출된 스타일의 지침들은 환각(hallucination)에 대해 매우 직설적입니다. 모른다면 모른다고 말하라는 것입니다. 파일이나 사실이 눈앞에 없다면, 그것을 지어내지 마십시오. 이 한 가지 규칙이 AI의 가장 치명적인 실패인 "자신감 넘치는 오답"을 방지합니다.
적용 방법: 프롬프트 끝에 _"이 내용 중 추측인 부분이 있다면 명확하게 추측이라고 표시하십시오. 절대로 가정을 사실처럼 제시하지 마십시오."_라고 덧붙이세요. 이는 당신이 할 수 있는 가장 저렴한 신뢰성 업그레이드입니다.
5. 출력 형식(Output Format)을 미리 고정하십시오
실제 시스템을 다루는 에이전트(Agents)는 모호한 결과물을 내놓아서는 안 됩니다. 이들은 시작하기 전에 답변의 정확한 형태(예: diff, JSON 객체, 번호가 매겨진 체크리스트 등)를 전달받으며, 이를 통해 결과물을 별도의 정리 작업 없이 바로 사용할 수 있게 됩니다.
적용 방법: "Task, Owner, Due 컬럼을 가진 5행 테이블로만 반환하십시오. 서론이나 맺음말은 생략하십시오." 컨테이너(형식)를 지정하면 콘텐츠가 그 안에 맞춰지게 되며, AI의 출력물을 수동으로 다시 포맷팅하는 수고를 덜 수 있습니다.
6. 완료를 선언하기 전에 스스로의 작업물을 검증하게 하십시오
전체 청사진에서 가장 강력한 패턴은 바로 자기 검증 루프(Self-check loop)입니다. 에이전트는 단순히 결과물을 생성하는 데 그치지 않고, 원래의 요구사항과 자신의 결과물을 대조하며 다시 읽고, 전달하기 전에 부족한 부분을 수정합니다. 여기서 "완료"란 단순히 생성되었다는 뜻이 아니라, 검증되었다는 것을 의미합니다.
적용 방법: "작업을 마친 후, 나의 원래 요청을 한 줄씩 다시 읽고 각 요구사항이 충족되었는지 확인하십시오. 충족되지 않은 부분이 있다면 답변하기 전에 수정하십시오." 이 단 하나의 지침만으로도 AI의 결과물이 '거의 맞지만 미묘하게 틀린' 느낌을 주는 대부분의 작은 실수들을 잡아낼 수 있습니다.
7. 컨텍스트(Context)를 긴밀하고 관련성 있게 유지하십시오
강력한 에이전트는 모델 앞에 무엇을 놓을지 신중하게 결정합니다. 적절한 파일, 적절한 이력, 그리고 불필요한 정보는 배제합니다. 노이즈가 입력되면 노이즈가 출력됩니다(Noise in means noise out). 이들은 모든 것을 쏟아붓는 대신 컨텍스트를 큐레이션(Curate)합니다.
적용 방법: 프로젝트 전체를 붙여넣고 모호한 질문을 던지지 마십시오. 단 하나의 함수와 단 하나의 에러만 붙여넣고 구체적인 것을 물으십시오. 모델의 주의력(Attention)은 유한하므로, 중요한 것에 집중하도록 사용해야 합니다.
패턴 뒤에 숨겨진 패턴
이 일곱 가지를 다시 읽어보면 일관된 흐름이 보일 것입니다. 역할을 정의하십시오. 먼저 계획하십시오. 도구를 절제하며 사용하십시오. 불확실성을 인정하십시오. 형식을 고정하십시오. 완료 전 검증하십시오. 컨텍스트를 큐레이션하십시오. 이 중 마법 같은 것은 없으며, 비밀스러운 것도 없습니다. 이것은 단지 매번 기록되고 실행되는 규율(Discipline)일 뿐입니다.
그것이 이번 유출이 주는 진짜 교훈입니다. "AI는 실망스럽다"와 "AI가 내 시간을 몇 시간이나 아껴준다" 사이의 격차는 결코 모델의 문제가 아니었습니다. ChatGPT, Claude, 그리고 Gemini는 모두 충분한 역량을 갖추고 있습니다. 그 격차는 프롬프트 (Prompt)에 있으며, 최고의 도구를 만드는 기업들은 단순히 우리 나머지 사람들보다 자신들의 프롬프트에 대해 더 엄격한 규율 (Discipline)을 적용해 왔을 뿐입니다.
여러분도 그 규율을 빌려옴으로써, 오늘 당장 무료로 그 격차를 줄일 수 있습니다.
솔직한 주의 사항
중요하기 때문에 다시 한번 말씀드립니다. 여기서 가치 있는 것은 Anthropic의 코드가 아니라 바로 그 _패턴 (Patterns)_에 있습니다. 복사하기 위해 유출된 파일을 찾아 헤매지 마십시오. 그것들은 독점 자산이며, 법적 노출 위험이 실재합니다. 또한 여러분에게는 그런 파일이 필요하지 않습니다. 위에 언급된 원칙들은 어떤 모델에도 적용할 수 있는 공개된 지식입니다. 이번 뉴스를 여러분 자신의 프롬프팅 (Prompting) 실력을 높이기 위한 하나의 프롬프트로 활용하십시오. 그것이 정답입니다.
이 글은 재게시된 것입니다. 항상 업데이트되는 전체 가이드는 제 사이트에서 확인하실 수 있습니다: Anthropic Leaked Claude Code's Source. Here Are 7 Prompting Tricks You Can Steal (Legally).
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기