16만 5천 달러짜리 AI 코드 습격 사건
Bun은 전례 없는 디지털 습격을 감행하여 50만 줄이 넘는 Zig 코드를 단 11일 만에 Rust로 포팅했습니다. 2026년 5월 3일부터 14일까지 진행된 이 놀라운 작업은 4개의 Git 워크트리에서 사전 출시된 Fable 5 모델을 실행하는 64개의 병렬 Claude 에이전트를 활용했습니다. AI 기반 마이그레이션을 통해 약 535,496줄의 Zig 코드가 약 682,000줄의 Rust 코드로 변환되었으며, 분당 최대 58회의 커밋을 기록하며 총 6,502회의 커밋으로 마무리되었습니다.
이 급진적인 개편에 대한 Bun의 공식적인 이유는 명확했습니다. 수년간 지속된 'use-after-free' 메모리 버그를 근절하는 것이었습니다. 팀은 Rust의 엄격한 borrow checker를 활용하여 안정성을 높이고, 코드베이스를 괴롭히던 128개의 알려진 문제를 직접 해결하고자 했습니다. 이러한 전략적 전환은 런타임 오류를 컴파일 타임 보장으로 바꾸어 더욱 강력하고 신뢰할 수 있는 런타임을 약속했습니다.
결정적으로, 이 AI 기반 재작성은 2025년 12월 Anthropic이 Bun을 인수했기에 재정적으로 가능했습니다. 이러한 전략적 통합을 통해 Bun은 Anthropic의 고급 AI 모델에 독보적으로 접근할 수 있었으며, 공개 API를 통해 구매했을 경우 예상되는 16만 5천 달러의 토큰 비용을 피할 수 있었습니다. 따라서 이 프로젝트는 Anthropic의 생성형 AI 역량을 대규모 코드 변환에 활용할 수 있음을 보여주는 기념비적인 내부 쇼케이스 역할을 했습니다.
"검토되지 않은 쓰레기": 창시자의 신랄한 비판
Zig의 창시자인 Andrew Kelly는 Bun의 원본 코드베이스와 AI가 생성한 후속 버전을 모두 해체하며 맹렬한 반격을 가했습니다. 이후 더 강한 어조로 수정된 그의 공개 블로그 게시물은 이 전체 작업에 대한 그의 깊은 경멸을 의심할 여지 없이 드러냈습니다.
Kelly는 Bun의 원본 Zig 구현에 대해 "해킹 위에 또 해킹을 쌓은 것"이자 "Zig를 작성하지 말아야 할 방법의 전형적인 예"라고 비판하며 거침없는 공격을 퍼부었습니다. 그는 50만 줄의 코드가 자신의 언어에 "순부채"라고 주장하며, AI가 손대기 훨씬 전부터 엔지니어링의 근본적인 실패가 있었다고 암시했습니다.
64개의 병렬 Claude 에이전트가 생성한 Rust 포팅 결과물에 대해서도 그는 "100만 줄의 검토되지 않은 쓰레기(unreviewed slop)"라고 일축하며 경멸을 표했습니다. Kelly는 이를 지지하는 사람들을 "취향 없는 AI 애호가들"이라고 비난하며, 인간의 장인 정신보다 자동화된 평범함을 맹목적으로 추종하고 양질의 코드를 구별하는 안목이 부족하다고 지적했습니다.
비판은 Bun의 창립자인 Jarred Sumner에 대한 매우 개인적인 공격으로 이어졌습니다. Kelly는 공개적으로 Sumner를 "냄새나는 관리자"라고 부르며 Bun을 "Zig의 망신"으로 만들었다고 비난하고 그의 리더십을 직접적으로 공격했습니다. 그는 "우리가 처리해 온 쓰레기 중 일부는 Sumner의 책임"이라고 비난하며 "그의 리더십에 대한 나의 비판을 고수한다"고 단호하게 결론지었습니다.
엔지니어링 철학의 전쟁
Bun의 재작성을 둘러싼 싸움은 단순한 코드 문제가 아니라 근본적인 엔지니어링 철학의 충돌입니다. Zig의 창시자인 Andrew Kelly는 명시적인 제어와 최소한의 추상화를 요구하는 꼼꼼한 수동 엔지니어링을 옹호합니다. 반면 Jarred Sumner가 이끄는 Bun은 64개의 병렬 Claude 에이전트를 통해 50만 줄의 코드를 포팅하는 등, 빠르게 진행되는 기능 중심 개발 모델을 구현하고 있습니다.
Kelly는 Bun의 기존 Zig 코드베이스를 "해크 위에 해크(hacks on top of hacks)"이자 "검토되지 않은 쓰레기(unreviewed slop)"라고 일축하며, 만연한 버그가 Zig 자체의 한계가 아닌 잘못된 코딩 관행에서 비롯된 것이라고 주장하며 거침없이 비판했습니다. 그는 AI 기반의 포팅 작업이 Anthropic의 지원을 암시하는 "조 단위 기업의 마케팅 전략"이라고 공언했습니다. 그의 신랄한 평가에 대한 자세한 내용은 My Thoughts on the Bun Rust Rewrite - Andrew Kelley에서 확인하실 수 있습니다.
이러한 비난 속에서도 데이터는 완전히 깔끔하지는 않더라도 복잡한 상황을 보여줍니다. 포팅을 통해 128개의 알려진 버그가 수정되었으며, 이는 상당한 기능적 개선입니다. 그러나 초기에는 19개의 새로운 회귀 버그가 발생했으며, 이는 현재 해결된 상태입니다. 또한 Bun의 새로운 Rust 코드 중 약 4%(약 13,000개의 키워드)가 unsafe 블록 내에 존재하는데, 이는 절대적인 메모리 안전성을 기대하는 Rust 순수주의자들의 눈살을 찌푸리게 할 만한 세부 사항입니다.
이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.
하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음
AI 기반 개발의 새로운 현실
64개의 병렬 Claude 에이전트가 11일 동안 535,496줄의 Zig 코드를 약 682,000줄의 Rust 코드로 포팅한 이 전례 없는 재작성 작업은 오싹한 선례를 남겼습니다. 이것이 대규모 코드 마이그레이션의 미래일까요, 아니면 "검토되지 않은 쓰레기"와 기술 부채(technical debt)의 축적에 대한 엄중한 경고일까요? Anthropic의 Bun 인수로 인해 면제되었다 하더라도, 추정 비용 165,000달러에 달하는 토큰 비용은 개발 경제의 지각 변동을 예고합니다.
Bun의 기존 코드를 "해크 위에 해크"로, AI가 생성한 포팅 코드를 "100만 줄의 검토되지 않은 쓰레기"라고 묘사한 Andrew Kelly의 여과 없는 비난은 격렬한 논쟁을 불러일으켰습니다. 많은 이들이 코드 품질에 대한 그의 신선한 정직함과 필요한 진실을 말한 점을 칭찬한 반면, 다른 이들은 이를 비전문적이며 Bun과 Zig 모두의 평판을 훼손하는 행위라고 간주했습니다. 이러한 분열은 오픈 소스 협업의 진화하는 환경에 대한 깊은 불안감을 강조합니다.
이제 핵심적인 질문이 크게 대두됩니다. AI가 더 많은 기초 코드를 생성함에 따라, 그 품질, 보안 및 장기적인 유지 관리성에 대한 궁극적인 책임은 누구에게 있을까요? 이는 인간의 기여, 동료 검토, 언어의 평판에 대한 전통적인 개념에 도전하며 오픈 소스(open-source)의 본질을 재정의합니다. 업계는 이러한 함의를 정면으로 마주해야 하며, 그렇지 않으면 불투명한 AI 기반 토대 위에 구축된 미래를 맞이할 위험이 있습니다.
자주 묻는 질문
Bun은 왜 Zig에서 Rust로 전환했나요?
Bun의 창시자인 Jarred Sumner는 'use-after-free' 충돌과 같은 지속적인 메모리 안전성 버그를 주된 이유로 꼽았습니다. 목표는 Rust의 소유권 검사기(borrow checker)를 활용하여 컴파일 타임에 이러한 문제를 제거하는 것이었습니다.
Andrew Kelly는 누구이며 왜 화가 났나요?
Andrew Kelly는 Zig 프로그래밍 언어의 창시자입니다. 그는 Bun의 Zig 코드가 형편없이 작성되었으며('해크 위에 해크'), AI 기반의 Rust 재작성은 Zig의 평판을 부당하게 훼손한 마케팅 쇼라고 믿기 때문에 화가 났습니다.
Bun은 어떻게 AI를 사용하여 전체 코드베이스를 재작성했나요?
Bun은 출시 전 Anthropic Claude 모델로 구동되는 64개의 병렬 AI 에이전트를 활용했습니다. 이 에이전트들은 11일 동안 여러 git 작업 트리에 걸쳐 작업하며 약 535,000줄의 Zig 코드를 682,000줄의 Rust 코드로 포팅했습니다.
Andrew Kelly가 Bun에 대해 제기한 가장 강력한 비판은 무엇인가요?
그는 Bun의 코드베이스를 '검토되지 않은 쓰레기'이자 Zig에 대한 '순부채(net liability)'라고 불렀습니다. 또한 Bun의 창시자인 Jarred Sumner를 '형편없는 관리자(stinky manager)'라고 부르며, Bun을 'Zig의 수치'로 만든 것에 대해 그를 비난했습니다.

