AI VIDEO BRIEFING
번(Bun) 러스트 재작성 논쟁: AI 에이전트 64개가 11일 만에 53만 줄을 옮겼다
자바스크립트 툴킷 번(Bun)이 클로드 에이전트 64개를 병렬로 돌려 53만 줄의 지그 코드를 11일 만에 러스트로 옮겼다. 왜 전면 재작성을 택했는지, 어떤 방식으로 AI에게 맡겼는지, 그리고 지그 창시자가 성능 수치를 반박한 이유를 정리했다.

핵심 메시지
쉽게 이해하기
자바스크립트 올인원 툴킷 번(Bun)이 코드베이스 전체를 지그(Zig)에서 러스트(Rust)로 옮겼다고 발표했다. 지난해 말 앤트로픽에 인수된 이 프로젝트는 약 53만 5천 줄, 1,448개 파일을 11일 만에 이전했다고 밝혔다. 토큰 사용량을 비용으로 환산하면 약 16만 5천 달러 규모이며, 한때는 1분에 러스트 코드 1,300줄이 쏟아지는 속도로 작업이 진행됐다.
전면 재작성은 오랫동안 소프트웨어 업계에서 최악의 전략적 실수로 꼽혀 왔다. 약 26년 전 조엘 스폴스키는 넷스케이프가 브라우저를 다시 쓰는 3년 동안 시장을 빼앗긴 사례를 들어 이를 경고한 바 있다. 그럼에도 번이 재작성을 감행한 이유는 메모리 관리였다. 번은 사파리의 자바스크립트 엔진인 JavaScriptCore를 품고 있는데, 객체의 절반은 가비지 컬렉터가, 나머지 절반은 수동으로 관리되는 지그 메모리가 소유하면서 양쪽이 서로를 가리키는 포인터를 계속 주고받아야 했다.
그 결과 이미 해제된 메모리를 읽거나, 같은 메모리를 두 번 해제하거나, 아예 해제하지 않는 버그가 변경 이력에 쌓였다. 한 시점에는 오류 처리 경로 하나가 뒷정리를 빠뜨린 탓에 개발 서버가 다시 빌드할 때마다 3메가바이트씩 메모리를 흘리기도 했다. 러스트의 소유권 검사기는 이런 메모리 관리를 타입 시스템 안으로 끌어들여, 실행 중에야 드러나던 문제 상당수를 컴파일 시점의 오류로 바꿔 준다.
두 번째 이유는 AI였다. 앤트로픽 인수 이후 앞으로의 코드 대부분을 클로드가 쓰게 될 상황에서, 지그는 불리한 언어였다. 지그 진영은 AI에 강경해서 LLM이 생성한 풀 리퀘스트를 받지 않고 AI가 찾아낸 보안 제보도 닫아 버린다. 게다가 인터넷에 공개된 지그 코드 자체가 적고 아직 1.0에 이르지 못해 호환성이 깨지는 변경이 이어지다 보니, 모델이 지그를 쓰는 실력은 널리 쓰이는 언어에 비해 떨어졌다.
작업 방식이 특히 눈길을 끈다. 먼저 클로드가 몇 시간에 걸쳐 코드베이스를 읽고 이식 지침서를 만들었고, 이어서 모든 구조체 필드의 수명을 추적해 거대한 표로 정리했다. 누가 언제 무엇을 해제하는지에 대한 수년치 암묵지를 문서로 끄집어낸 셈이다. 그다음 네 개의 깃 워크트리에 걸쳐 64개 에이전트를 병렬로 돌리되, 구현을 맡은 에이전트마다 별도의 컨텍스트에서 도는 검토 에이전트 두 개를 붙였다. 이 검토자들의 임무는 오직 코드가 틀렸다고 가정하고 그 이유를 찾아내는 것이었다.
주요 인사이트
- AI에게 대규모 이식을 맡길 때 핵심은 에이전트 수가 아니라 사전 준비였다. 코드를 읽어 이식 지침서를 만들고 구조체 수명을 표로 정리하는 단계가 병렬 작업의 전제 조건 역할을 했다.
- 구현 에이전트마다 '코드가 틀렸다고 가정하는' 검토 에이전트를 별도 컨텍스트로 붙인 구조는, AI가 만든 결과물을 다시 AI로 검증하는 실전적인 안전장치의 사례로 볼 만하다.
- 언어 선택의 기준에 'AI가 이 언어를 얼마나 잘 쓰는가'가 들어오기 시작했다. 학습 데이터가 적고 사양이 자주 바뀌는 언어는 AI 주도 개발 환경에서 불리해질 수 있다.
- 성과 발표는 한쪽의 주장일 뿐이라는 점도 드러났다. 지그 창시자 앤드루 켈리는 성능 개선이 주로 링크 타임 최적화 덕분이며 이는 지그도 지원해 왔다고 반박했고, 바이너리 축소 역시 러스트와 무관하며 지그가 앞서는 컴파일 시간은 언급되지 않았다고 지적했다.
- 재작성 결과 128개의 묵은 버그가 함께 정리되고 바이너리가 20% 작아졌으며, 이 코드는 6월부터 별다른 소동 없이 클로드 코드를 구동해 왔다고 한다.
자주 묻는 질문
번(Bun)은 왜 지그에서 러스트로 옮겼나요?
가장 큰 이유는 메모리 관리입니다. 가비지 컬렉션되는 자바스크립트 엔진과 수동 관리되는 지그 메모리가 뒤섞여 해제된 메모리 접근, 이중 해제, 누수 같은 버그가 반복됐습니다. 러스트의 소유권 검사기는 이런 문제를 컴파일 시점에 잡아 줍니다. 여기에 앤트로픽 인수 이후 코드 대부분을 AI가 쓰게 되는데, 지그는 학습 데이터가 적고 사양 변경이 잦아 모델이 잘 다루지 못한다는 점도 작용했습니다.
AI 에이전트를 어떻게 활용했나요?
먼저 클로드가 코드베이스를 오래 분석해 이식 지침서를 만들고, 모든 구조체 필드의 수명을 추적해 표로 정리했습니다. 이후 네 개의 깃 워크트리에서 64개 에이전트를 병렬로 돌렸고, 구현 에이전트 하나마다 별도 컨텍스트에서 동작하는 검토 에이전트 두 개를 붙여 코드가 틀렸다는 전제로 검증하게 했습니다.
지그 쪽에서는 어떤 반론이 나왔나요?
지그 창시자 앤드루 켈리는 벤치마크가 오해를 부른다고 주장했습니다. 성능 향상의 상당 부분은 지그도 계속 지원해 온 링크 타임 최적화에서 왔고, 바이너리 크기 감소는 러스트와 관계가 없으며, 지그가 거의 확실히 앞서는 컴파일 시간에 대한 언급은 빠져 있다는 것입니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗