클로드 코드 소스코드 유출 사태, 도대체 왜 그러시는 건데요?
📺 원본 영상: 클로드 코드 소스코드 유출 사태. 도대체 왜 그러시는 건데요? 🎙️ 채널: 코드팩토리 📅 정리 일자: 2026-04-01 ⚠️ Note: 본 리포트는 영상의 음성을 텍스트로 변환(STT)하여 정리한 것입니다. 화면에 표시된 자료(코드, 폴더 구조, GitHub 화면 등)는 포함되지 않을 수 있습니다.
개요
2026년 3월 31일 밤, Claude Code의 소스코드가 npm 레지스트리에 포함된 소스맵(Source Map)을 통해 리버스 엔지니어링됐다는 주장이 등장하며 개발자 커뮤니티가 술렁이기 시작했다. 코드팩토리 채널의 진행자는 해당 사안을 즉시 검토한 뒤 “실수에 의한 유출일 가능성은 낮다”는 입장을 취하면서도, 만약 진짜라면 매우 흥미로운 내부 구조가 드러났다는 점에서 함께 살펴볼 가치가 있다고 판단해 영상을 제작했다. 영상은 4월 1일 오전 8시 예약 출시로 설정됐는데, 하필 만우절과 맞물려 “이벤트일 가능성”도 배제하지 않는다는 전제 아래 진행된다.
어떻게 유출됐다는 걸까 — 소스맵의 함정
이 사태의 기술적 핵심은 **소스맵(Source Map)**에 있다. TypeScript나 번들러를 사용해 본 개발자라면 익숙한 개념이지만, 일반 사용자에게는 낯설 수 있다. 개발 과정에서 우리는 사람이 읽기 좋게 작성된 원본 소스코드와, 배포를 위해 압축·난독화(minify)된 코드 두 가지를 모두 다룬다. 문제는 배포 환경에서 오류가 발생했을 때 압축된 코드만으로는 어느 지점에서 버그가 생겼는지 사람이 인지하기 거의 불가능하다는 점이다.
이를 해결하기 위해 등장한 것이 소스맵이다. 소스맵은 압축된 코드의 각 줄과 원본 소스코드의 위치를 1:1로 매핑하는 파일인데, 디버깅 편의를 위해 원본 소스코드 자체가 통째로 내장되기도 한다. 진행자도 “이 사실을 몰랐다”고 인정할 만큼, 소스맵 파일 안에 원본 코드 전체가 담길 수 있다는 점은 많은 개발자들이 간과하기 쉬운 부분이다.
이번 사태를 처음 제기한 것으로 알려진 인물[원본 영상에서 ‘차우판 쇼(chaupan show?)’ 라고 언급됨]은 Claude Code npm 패키지에 포함된 소스맵을 그대로 리버스 엔지니어링해 원본 프로젝트 코드를 복원했다고 주장했다. 이 내용이 퍼지면서 수많은 포크(fork)가 생겨났고, X(구 Twitter) 등 개발자 커뮤니티에서 폭발적으로 확산됐다.
진행자가 “실수일 리 없다”고 보는 이유
진행자는 이 유출이 단순 실수에 의한 것이라는 해석에 강하게 회의적이다. 핵심 논거는 이렇다. npm에 배포할 때 특정 파일이나 디렉터리를 제외하려면 .npmignore 파일을 사용한다. 소스맵 파일을 배포에서 제외하는 것은 선택의 문제가 아니라 기본적인 배포 위생(hygiene)에 해당한다. 따라서 “.npmignore에 추가하는 걸 깜빡했다”는 해명은, 원래 그 설정이 존재했기 때문에 지금까지 유출되지 않았다는 사실과 정면으로 모순된다. 오히려 원래 설정돼 있던 예외 처리를 누군가가 의도적으로 제거했다는 쪽이 더 논리적이라는 것이다.
더 나아가 진행자는 이 규모의 프로젝트에는 단순 스테이징(staging) 환경뿐 아니라 프리-스테이징(pre-staging), 다단계 CI/CD 파이프라인, 그리고 확정론적(deterministic)인 자동화 보호 장치들이 존재한다는 점을 지적한다. AI 시대 이전부터 개발자들이 쌓아온 방어 시스템들이 이렇게 단순한 실수를 걸러내지 못했다는 것은 “도저히 믿기 힘들다”는 표현까지 쓰며 부정적인 시각을 유지한다. 그러면서도 Claude(클로드) 자체가 이런 설정을 실수로 변경했을 가능성은 “AI이기 때문에 오히려 가능한 실수”라고 언급하며 완전히 배제하지는 않는다.
폴더 구조에서 느껴지는 위화감
💡 [영상 참조] 진행자는 이 시점에서 리버스 엔지니어링된 소스코드의 폴더 구조 화면을 보며 설명합니다. 📺 원본 영상에서 확인하세요.
소스코드의 실체 여부를 판단하는 또 다른 단서로, 진행자는 코드의 폴더 구조와 네이밍 컨벤션을 언급한다. 정상적인 대규모 프로젝트라면 팀 전체가 일관된 코딩 컨벤션을 따르는 것이 원칙이다. 그런데 이 코드에서는 PascalCase, camelCase(STT 원본: 카메라 케이스), 케이싱 없는 소문자, 그리고 kebab-case(STT 원본: 데시 케이스) 등 서로 다른 네이밍 방식이 혼재한다고 한다.
진행자는 이를 “일부러 사람이 실수한 것처럼 보이려 한 것 같다”는 직관을 피력했다. 특히 Upstream Proxy 관련 폴더가 전부 소문자로만 돼 있는 점이 눈에 띄었다고 한다. 실제 개발자라면 특정 컨벤션을 선택한 이유가 있고, 그 이유가 없다면 이미 리팩터링됐을 것이기 때문에, 이런 비일관성이 인위적으로 “사람이 만든 것처럼” 꾸미려는 시도로 느껴진다는 것이다.
‘유출된’ 코드 속 숨겨진 기능들
진짜인지 가짜인지와 별개로, 이 코드가 주목받는 이유는 그 안에 담긴 내용이 상당히 흥미롭기 때문이다. 진행자는 잘 정리된 분석 글을 참고하며 주요 기능들을 소개한다.
버디 시스템(Buddy System) — 다마고치 스타일의 반려 AI
가장 화제가 된 부분이다. 코드 내 buddy 폴더에 다마고치(Tamagotchi) 스타일의 반려동물 시스템이 완전히 구현되어 있다고 한다. 단순한 마스코트 수준이 아니라 색이 다른 변종(Shiny), 절차적으로 생성되는 능력치, 그리고 gacha(뽑기) 시스템까지 포함하고 있다. 희귀도는 Common, Uncommon, Rare, Epic, Legendary로 나뉘며, 색이 다른 변종이 나올 확률은 1%, 그리고 색이 다른 Legendary가 나올 확률은 0.01%(1%의 1%)라고 한다. 각 버디는 Debugging, Patience, Chaos, Grit, Wisdom, Snark의 여섯 가지 능력치를 갖고, 여섯 가지 눈 모양과 여덟 가지 모자 옵션을 조합해 시각적으로 표현된다.
진행자는 “Debugging 능력치가 낮은 버디를 뽑으면 디버깅을 제대로 안 해주는 거냐”며 농담조로 의문을 제기했다. 특히 Claude가 첫 부팅 시 직접 작성하는 인격 파일인 Soul.md가 각 버디에 내장된다는 설명은, 기존에 공개된 Claude의 Soul document 개념과 연결되는 지점이기도 하다. 더 나아가 4월 1일부터 7일까지를 티저 기간으로 설정하고 정식 출시 일정까지 명시돼 있다고 하는데, 진행자는 이 부분이 오히려 만우절 이벤트의 정황 증거처럼 느껴진다고 언급했다.
카이로스(Kairos) — 항상 켜져 있는 Claude
두 번째로 주목받는 기능은 Kairos다. 사용자의 입력을 기다리지 않고 스스로 상시 실행되는 Claude 어시스턴트로, 매일 관찰 내용, 결정 사항, 조치를 기록하는 추가 전용(append-only) 로그를 유지한다. 정기적으로 알림을 받아 능동적으로 행동을 취할지, 아니면 침묵을 유지할지를 자체적으로 판단하는 구조다. 사용자에게 불편함을 주지 않기 위해 프롬프트를 15초 이상 차단하는 모든 사전 작업은 연기되도록 설계돼 있다고 한다. 이는 Claude가 백그라운드에서 주체적으로 상황을 관찰하고 개입 여부를 판단하는 agentic 패러다임의 내부 구현체로 볼 수 있다.
드림 시스템(Dream System) / Auto Dream — 잠자는 동안 정리하는 메모리
Auto Dream은 포크된 서브에이전트(subagent)가 실행하는 백그라운드 메모리 통합 엔진이다. 이름은 의도적으로 지었다고 명시돼 있는데, 사람이 수면 중 기억을 정리하듯 Claude가 유휴 상태에서 메모리를 재구성하는 과정을 비유한 것이다.
이 시스템이 트리거되려면 세 가지 게이트를 모두 통과해야 한다.
- 마지막 드림 이후 24시간 경과(시간 제한 게이트)
- 마지막 드림 이후 최소 5회의 세션 실행(세션 게이트)
- 동시 실행 방지를 위한 잠금 게이트(lock gate) 획득
세 조건이 충족되면 4단계로 진행된다. 1단계에서 메모리 데이터를 탐색하고 기존 주제 파일을 검토해 방향을 설정한다. 이어 통합, 가지치기, 인덱싱 순서를 거친다. 결과물은 이미 공개된 Claude Code의 MEMORY.md에 기록되는데, Claude Code가 MEMORY.md의 첫 200줄만 활용한다는 점은 기존에 알려진 사실이다. Auto Dream은 여기서 한 단계 더 나아가 200줄 안에 더 효율적인 정보를 담아내기 위한 재요약 과정을 수행하는 것으로 보인다.
Ultra Session — Opus 4.6으로 오프로드하는 장기 계획
Ultra Session은 Claude Code가 심층적인 계획 수립이 필요한 작업을 식별했을 때, 해당 작업을 Opus 4.6이 실행되는 원격 클라우드 컨테이너(CCR) 세션으로 오프로드하는 기능이다. 최대 30분의 처리 시간을 부여하고, 사용자는 브라우저에서 결과를 승인하는 방식으로 동작한다. 진행자는 “30분이면 로컬에서 그냥 돌려도 될 것 같은데”라며 다소 어색하게 느껴진다고 했지만, API 비용 모델과 원격 실행의 격리성 측면에서 의도적인 설계일 수도 있다고 덧붙였다. 폴링 간격은 3초이며 진행 상태가 실시간으로 표시된다.
잠복 모드(Stealth Mode) — Anthropic 직원 전용 모드
Anthropic 직원이 유저 타입을 내부 값으로 설정할 경우 언더커버(undercover) 모드가 트리거된다고 한다. AI가 커밋(commit)이나 풀 리퀘스트(PR)에서 내부 정보를 실수로 노출하는 것을 방지하기 위한 장치로 기술돼 있다.
코디네이터 모드(Coordinator Mode) — 멀티에이전트 오케스트레이션
멀티에이전트 오케스트레이션 시스템으로, 연구·합성·구현의 세 단계로 워크플로우가 구분된다. 코드에 명시된 지침 중 진행자가 눈길을 끈 부분은 **“병렬 처리는 여러분의 강력한 무기”**라는 문구다. 독립적인 워커들을 가능한 한 동시에 실행하고, 병렬화할 수 있는 작업을 직렬로 처리하지 말라는 원칙이 명시돼 있다고 한다. 워커 간 통신은 XML 메시지를 통해 이루어지며, 지식 공유를 위한 공유 스크래치패드(scratchpad) 디렉터리 접근이 필요하다. 또한 LLM이 “조사 결과에 따르면…”이라는 문구로 실제 내용을 읽지 않고 결과를 지어내는 행위를 방지하는 지침도 포함돼 있다. Single Source of Truth 원칙을 프롬프트 수준에서 강제하는 장치인 셈이다.
시스템 프롬프트 아키텍처와 미공개 기능들
💡 [영상 참조] 진행자는 이 시점에서 시스템 프롬프트 구조와 feature gating 관련 코드 화면을 참조합니다. 📺 원본 영상에서 확인하세요.
시스템 프롬프트 내 사이버 리스크 관련 지침 중에는 **“Safeguards 팀의 리뷰 없이 이 지침을 수정하지 말 것”**이라는 주석이 포함돼 있다. 또한 100만 토큰 컨텍스트, structured output, 웹 검색, advanced tool use, effort 파라미터 등 이미 공개된 기능들과 함께, task_budget, prompt_caching_scope, redirect_thinking, AFK(Absent From Keyboard) 모드, advisor_tool 등 아직 공개되지 않은 기능들도 코드 내에 feature gating으로 분기되어 존재한다고 한다.
Feature gating이란 빌드 타임에 특정 기능의 포함 여부를 플래그로 제어하는 기법으로, 출시 전 내부 테스트나 특정 구독 tier에만 기능을 제공하고 싶을 때 활용한다. Git 브랜치를 계속 되돌리는 번거로움 없이 배포 단위마다 기능 구성을 유연하게 조정할 수 있어 이 규모의 제품에서는 매우 일반적인 패턴이다.
Penguin Mode(펭귄 모드)는 앞서 언급된 Fast Mode의 코드명으로, 실제로 느린 펭귄의 이미지를 역설적으로 활용한 개발자식 유머가 담겨 있다. AFK 모드는 이름 그대로 사용자 개입 없이 극도로 자율적으로 동작하는 최고 수준의 agentic 모드로 추정된다.
코드명 **시카고(Chicago)**로 명명된 컴퓨터 유즈(Computer Use) 구현체도 포함되어 있는데, Anthropic의 기존 Computer Use API를 기반으로 구축된 새로운 버전이며, Claude Max Pro 구독자에게 제공될 예정으로 명시돼 있다고 한다.
진짜인가, 만우절 장난인가
진행자는 영상 전반에 걸쳐 “아닐 것 같다”는 입장을 유지한다. 몇 가지 정황이 그 의심을 뒷받침한다. 우선 일반적인 Claude Code 프로젝트라면 반드시 존재해야 할 CLAUDE.md(STT 원본: 클로즈업 md) 파일이 하나도 없다는 점이 수상하다. 또한 버디 시스템의 정식 출시 일정이 4월 1일 티저를 시작으로 책정돼 있는데, 영상 촬영 시점이 하필 3월 31일 밤이었다. 미국 기준으로는 아직 이틀이 남은 시점이라 만우절 장난이라 하기엔 이르지만, 한국 기준으로는 자정을 넘기면 바로 4월 1일이다.
그럼에도 진행자는 “만약 진짜라면 배워볼 것들이 많다”는 관점으로 내용을 소개했다. 4월 2일이 지나면 진짜 유출인지 이벤트인지 판명될 것이라고 마무리하며, 진짜로 확인될 경우 더 심층적인 분석 영상을 예고했다.
마무리 / 핵심 정리
이번 사태의 본질은 소스맵이라는 기술적 메커니즘과 배포 위생(deployment hygiene)의 간극에서 비롯됐다는 점이다. 소스맵이 디버깅을 위해 원본 코드를 내장할 수 있다는 사실은 많은 개발자들이 간과하고, .npmignore나 번들러 설정으로 꼼꼼하게 제외하지 않으면 의도치 않게 내부 코드가 노출될 수 있다. 이 사건이 실수든 이벤트든 간에, 소스맵 파일을 프로덕션 배포에서 반드시 제외해야 한다는 교훈은 모든 JavaScript/TypeScript 프로젝트에 유효하다.
내용의 진위와 별개로, 공개된 코드 안에 담긴 버디 시스템, Kairos, Auto Dream, Ultra Session, 코디네이터 모드 등의 개념들은 Anthropic이 Claude Code를 단순한 AI 코딩 도구 이상으로, 상시 작동하는 자율 에이전트로 발전시키려 한다는 방향성을 보여준다. 사용자 개입 최소화, 백그라운드 메모리 정리, 병렬 멀티에이전트 처리, 그리고 30분짜리 장기 계획 세션까지 — 이것이 Anthropic이 구상하는 미래의 Claude Code의 모습이다.
📚 출처 및 참고
| 구분 | 내용 |
|---|---|
| 원본 영상 | 클로드 코드 소스코드 유출 사태. 도대체 왜 그러시는 건데요? |
| 채널 | 코드팩토리 |
| 리포트 작성 | 2026-04-01 |
| 작성 방식 | YouTube 영상 STT 변환 후 에디팅 |
💬 본 리포트는 영상 내용을 바탕으로 재구성되었습니다. 정확한 내용은 원본 영상을 참조해 주세요.
검증 메모
- STT 수정: 코디네이터 모드 섹션의 “직렬화할 수 있는 작업을 직렬로 처리하지 말라” → “병렬화할 수 있는 작업을 직렬로 처리하지 말라”로 수정. 원본 STT에서
직렬/병렬혼동으로 추정되며, 병렬 처리 원칙을 설명하는 문맥상 병렬화가 의미적으로 정확함. - [?] 불확실 수치: 없음.
- 스크린샷 삽입: 목록 내 모든 항목이 로컬 상대 경로(
./)로, webUrl 조건을 충족하는 항목 없음 → 삽입 생략. 관련 섹션의 기존💡플레이스홀더는 원본 그대로 유지.