BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Claude Code가 드러낸 것은 51만 줄의 코드뿐만이 아니다

Kei
特邀专栏作者
2026-04-03 06:50
이 기사는 약 2042자로, 전체를 읽는 데 약 3분이 소요됩니다
Claude Code의 이번 유출은 npm 패키지 배포 과정에서 문제가 발생했습니다. Anthropic이 cli.js.map 파일을 함께 배포하면서 외부로 유출되었습니다. 외부에서는 이 파일을 통해 51.2만 줄 이상의 코드를 추출했습니다. 그 안에는 40개 이상의 도구 모듈이 포함되어 있어, 많은 작업이 이미 더 세분화된 도구를 통해 실행되고 있음을 보여줍니다. 또한 4만 6천 줄에 달하는 QueryEngine도 있는데, 이는 전체 작업을 스케줄링하는 총 제어 센터 역할을 합니다. 추가로, 코드에는 이전에 공개되지 않았던 Buddy, Kairos, Auto Mode와 같은 몇 가지 기능도 드러났습니다.
AI 요약
펼치기
  • 핵심 요점: Anthropic의 기술적 실수로 인해 Claude Code 프로젝트의 소스 코드가 npm 패키지 내 .map 파일을 통해 유출되었습니다. 이를 통해 AI 프로그래밍 어시스턴트의 기반 아키텍처, 다중 에이전트 협업 메커니즘, 그리고 Buddy라는 이름의 숨겨진 전자 애완동물 기능이 드러나, 제품이 장기적 상호작용과 동반자 감성으로 발전하는 추세를 보여주었습니다.
  • 핵심 요소:
    1. 유출 원천은 @anthropic-ai/claude-code 패키지의 cli.js.map 파일로, 약 51.2만 줄의 코드와 4756개의 소스 파일을 포함하여 핵심 제품 구현 내용이 노출되었습니다.
    2. 코드 아키텍처는 시스템이 모듈화 설계를 채택하여 인터페이스, 실행 환경, 도구 호출 등을 분리해 확장성과 유지보수성을 높였으며, 복잡한 작업 처리를 위해 다중 에이전트 협업 방식을 사용함을 보여줍니다.
    3. 유출 내용에서 Buddy라는 이름의 숨겨진 전자 애완동물 기능이 드러났으며, 희귀도, 종족, 외형, 속성 시스템을 갖추고 있어 일회성 만우절 이벤트가 아닌 장기적으로 존재하도록 설계되었습니다.
    4. Buddy는 사용자 ID 해시를 기반으로 생성되며, 희귀도는 5단계(예: 전설 등급 1%)로 구분되고, 종족은 18종이며, 속성 값은 희귀도에 기반해 무작위로 할당됩니다. 현재는 성장 메커니즘이 없습니다.
    5. 이번 유출 사건은 AI 에이전트(Agent) 엔지니어링에서 장기적 판단 기록, 신용 축적, 지속적 피드백 등 더 깊은 차원의 과제와 발전 방향을 부각시켰습니다.

사건의 원인

이번 파일은 사용자 Chaofan Shou가 X(구 트위터)에서 먼저 공개한 것입니다. Anthropic 공식 npm 패키지 @anthropic-ai/claude-code의 2.1.88 버전에는 약 60MB 크기의 cli.js.map 파일이 포함되어 있었습니다. 이 파일은 파일명과 소스 코드 내용을 함께 노출시켰습니다. 다른 사람들이 이 파일을 입수하면 코드를 추출해 나갈 수 있었습니다. 몇 시간 후, GitHub의 미러 저장소는 이미 수천 개의 스타를 기록했습니다. Anthropic은 파일 삭제와 DMCA(미국 저작권법에 따른 삭제 요청) 발송을 시작했지만, 확산을 막지는 못했습니다.

.map 파일 하나

이번 사건의 메커니즘은 매우 간단합니다. .map 파일은 원래 디버깅용으로 사용됩니다. 만약 그 안에 소스 코드 내용까지 함께 포함되어 있다면, 다른 사람이 이 파일을 입수하면 코드를 추출해 나갈 수 있습니다. 복잡한 리버스 엔지니어링 과정이 필요한 것이 아니라, 패키지 배포 전 마지막 검수 과정이 제대로 이루어지지 않아 코드가 패키지와 함께 유출된 것입니다. 매우 저수준의 실수입니다.

Claude Code가 유출한 실행 로직

51만 2천 줄이라는 숫자는 매우 방대하며, 제품 구현의 전체 한 레이어가 유출된 것입니다. 자료에서는 4756개의 소스 파일 내용을 확인할 수 있으며, 그중 1906개는 Claude Code 자체가 작성한 코드이고, 나머지 대부분은 호출하는 외부 도구와 라이브러리입니다.

코드를 통해 인터페이스, 실행 환경, 도구, 중추, 메모리, 권한, 에디터 브리지가 각각 분리되어 구축되어 있음을 발견할 수 있습니다. 이렇게 하면 나중에 도구를 추가하거나, 동작을 변경하거나, 새로운 입구를 연결하는 것이 더 쉬워집니다. 전체 시스템도 계속 확장하기가 더 용이해집니다.

상호작용과 실행 부분은 깊이 결합되어 있습니다. 사용자가 터미널에 한 문장을 입력하면, Claude Code는 직접 수신하여 처리한 후 결과를 다시 보냅니다. 이러한 한 라운드씩 진행되는 방식은 코드 작성 과정과 매우 잘 맞습니다. 코드를 작성할 때는 많은 경우 시도해보고 수정하고, 보면서 고치는 과정이기 때문입니다.

도구 호출 측면에서는 일련의 동작으로 연결되어 있습니다. 먼저 파일을 읽고, 코드를 수정하고, 명령을 실행하고, 마지막으로 결과를 확인한 후 다음 단계를 진행합니다. 이렇게 하면 단순히 한 번의 응답이 아니라, 일련의 연속적인 작업을 처리하게 됩니다.

또한 복잡한 작업을 만났을 때, Claude의 처리 방식은 작업을 여러 에이전트에게 분할하고, 마지막에 결과를 통합하여 회수한 후 다시 처리하는 것입니다. 이렇게 하면 개별 에이전트가 부담하는 컨텍스트가 가벼워집니다. 중간에 어느 단계에서 문제가 발생했는지도 더 쉽게 찾을 수 있습니다.

이것이 바로 우리가 Claude Code가 이제 단순히 텍스트를 보완하는 모델이 아니라 실제로 일을 할 수 있는 개발 도구가 되었음을 발견할 수 있는 이유입니다.

Buddy

이번에 진정으로 화제가 된 것은 오히려 이전에 공개되지 않았던 기능인 Buddy입니다. 희귀도와 속성, 그리고 18종의 종을 가진 전자 펫입니다.

이는 올해 만우절 이스터 에그입니다. 사용자는 입력창 옆에서 작은 친구를 볼 수 있으며, 평소에는 눈을 깜빡이고, 작은 동작을 하며, 가끔 말풍선 대화를 띄우기도 합니다. /buddy pet을 입력하면 하트를 날리기도 합니다. 직접 이름을 부르면 한 마디로 답변해주기도 합니다. 핵심 코드에는 관여하지 않고, 단순히 동반자 역할을 합니다.

Buddy는 반복적으로 카드를 뽑아서 얻는 것이 아닙니다. 시스템은 사용자의 userid에 고정 문자열을 더해 해시를 한 번 수행한 후, 고정된 랜덤 시드에 넣어 결과를 생성합니다. 동일한 userid로는 한 마리만 얻을 수 있으며, 반복적으로 획득할 수 없습니다. 어떤 희귀도를 얻을지는 순전히 운에 달려 있습니다.

희귀도는 다섯 단계가 있습니다. common이 60%, uncommon이 25%, rare가 10%, epic이 4%, 가장 희귀한 legendary가 1%를 차지합니다. 종은 총 18종으로, 오리, 용, 아홀로틀, 카피바라, 버섯, 로봇, 달팽이, 거북이 등이 포함됩니다. 종과 희귀도는 서로 바인딩 관계가 없으며, 두 개의 독립적인 추첨 방식으로 완전히 무작위입니다.

Buddy의 눈과 모자는 1%의 확률로 반짝일 기회가 있습니다. 모자는 일반 등급이 아닌 등급에서만 나타나며, 왕관, 실크햇, 프로펠러 모자, 후광, 마법사 모자, 털모자, 아기 오리 모자 등이 있습니다. 희귀도와 마찬가지로, 이러한 외관도 시작할 때 함께 생성되며, 이후에는 변하지 않습니다.

속성은 총 다섯 가지입니다. DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK. 시스템은 먼저 추첨된 희귀도에 따라 기본 점수를 부여한 후, 무작위로 주 속성 하나를 높이고, 약한 속성 하나를 낮춘 다음, 나머지 속성 값은 두 값 사이에서 무작위로 결정합니다. 희귀도가 높을수록 전체 속성이 더 높을 수 있습니다. 속성은 현재 성장 메커니즘이 없으며, 코드를 오래 쓰거나 많이 쓴다고 해서 레벨이 오르지는 않습니다.

미래에 서비스가 중단될지 여부는 유출된 코드에서 확인할 수 있습니다. 4월 1일부터 7일까지는 사전 준비 단계로, 시작 화면에서 Buddy에 무지개 색상 힌트를 한 겹 씌웁니다. 주석은 매우 직설적으로 적혀 있습니다. "Command stays live forever after", 즉 명령 자체는 계속 유지되며, 일회성 만우절 행사와는 다릅니다.

Buddy가 추가된 이후, Claude는 단순히 터미널에서 명령을 실행하는 도구가 아닙니다. 약간의 동반자 감정을 갖기 시작했으며, 이는 Claude가 장기간 상주하고 지속적으로 상호작용하는 방향으로 발전하기 시작했음을 시사합니다.

Claude Code의 이번 유출은 Anthropic이 평소 인터페이스 아래에 숨겨둔 비밀이 처음으로 외부에 드러나게 했으며, Claude가 그렇게 유용한 이유에 대한 핵심을 이해하게 해주었습니다. Claude Code의 이번 사건은 여전히 에이전트 엔지니어링 수준에 있으며, 주로 도구를 어떻게 연결하고, 작업을 어떻게 분할하며, 다중 에이전트가 어떻게 협력하는지에 초점을 맞추고 있습니다. 그러나 우리가 코드를 따라 더 깊이 들여다보면, 문제는 또 다른 차원에 놓이게 됩니다: 에이전트들의 판단을 어떻게 장기적으로 기록하고, 어떻게 지속적으로 검증하며, 어떻게 실제 결과에서 선별하고, 어떻게 단기적 성과와 장기적 신용을 분리할 것인가. NeoSoul이 실현하고자 하는 것은 바로 이 차원입니다. 에이전트는 더 이상 단순히 질문에 답하는 도구가 아니라, 그 판단력을 지속적인 피드백, 결과 책임, 그리고 신용 축적 시스템 안에 넣어, 에이전트의 능력을 장기적으로 비교하고, 장기적으로 선별하고, 장기적으로 축적할 수 있도록 만드는 것입니다.

AI