Bun의 실험적인 Rust 재작성: AI 기반 마이그레이션과 시스템 프로그래밍의 미래

시스템 프로그래밍의 지형이 급격하게 변화하고 있으며, Bun의 최근 Rust를 향한 실험적인 움직임만큼 이를 생생하게 보여주는 사례는 드뭅니다. Jarred Sumner는 최근 Bun의 기존 테스트 스위트의 99.8%가 Rust 재작성 내에서 Linux x64 glibc 상에서 통과된다고 발표했습니다. 기술적 이정표는 인상적이지만, 마이그레이션 이면에 숨겨진 이야기—특히 대규모 언어 모델(LLM)의 역할—는 유지보수성, Zig와 같은 언어의 미래, 그리고 소프트웨어 엔지니어링의 변화하는 본질에 대해 개발자들 사이에서 격렬한 논쟁을 불러일으켰습니다.

기술적 도약: Zig에서 Rust로

Bun은 원래 저수준 제어와 효율성으로 찬사받는 언어인 Zig를 사용하여 구축되었습니다. 그러나 Rust로의 전환은 일부에 의해 더 큰 안정성을 향한 움직임으로 프레임화되고 있습니다. 커뮤니티 구성원들은 Bun이 역사적으로 많은 수의 충돌(crash)과 메모리 버그에 직면해 왔으며, 이는 Rust의 소유권 모델과 엄격한 안전 보장 기능이 탁월한 분야입니다.

한 댓글 작성자는 다음과 같은 잠재적 이점을 언급했습니다:

"Bun은 Rust인 Deno와 달리 Zig를 사용하기 때문에 매우 높은 수의 충돌/메모리 버그가 있었습니다. 물론 Bun의 Rust 포팅이 엄청난 양의 unsafe를 포함한다면 모든 문제를 마법처럼 해결하지는 못하겠지만, 그래도 더 나아질 것입니다."

테스트 스위트의 높은 통과율에도 불구하고 커뮤니티는 신중한 태도를 유지하고 있습니다. 호환성의 "마지막 구간(last mile)"—마지막 0.2%—은 종종 해결하는 데 수개월 또는 수년이 걸릴 수 있는 가장 복잡한 에지 케이스를 나타내며, 이는 파레토 법칙의 전형적인 적용 사례입니다.

AI 촉매제: 초고속 재작성

가장 많은 관심을 끈 것은 단순히 언어의 전환이 아니라 실행 속도입니다. 보고에 따르면 이 작업의 상당 부분이 LLM(특히 Claude 및 "Mythos"라고 불리는 도구)을 사용하여 며칠 만에 완료되었습니다. 이는 소프트웨어 개발에서의 "인간 병목 현상"에 대한 더 넓은 논의로 이어졌습니다.

일부 개발자들은 이를 해방적인 진화로 봅니다. 한 기여자는 TypeScript를 Rust로 포팅하는 자신의 경험을 언급하며, Rust의 엄격한 타입 시스템이 AI가 저지를 수 있는 많은 "멍청한 실수"를 컴파일러가 잡아내기 때문에 LLM 생성 코드의 이상적인 대상이 된다고 언급했습니다.

그러나 다른 이들은 이를 회의적이거나 두려운 시선으로 바라봅니다. 주요 우려 사항은 AI가 생성한 거대한 시스템, 즉 어떤 인간도 깊이 있게 이해하지 못하는 "블랙박스" 코드베이스를 만드는 것입니다.

"결국 우리는 모든 것이 GenAI를 통해 생성되고 수정되는, 그 누구도 진정으로 깊이 있게 이해하지 못하는 코드베이스를 갖게 되는 것일까요?"

산업계 영향 및 "Zig 질문"

이 움직임은 또한 Zig의 생존 가능성에 대한 의문을 제기했습니다. Bun은 Zig를 사용하는 가장 주목받는 프로젝트 중 하나이므로, Rust로의 전환은 시장에 신호를 보내는 것으로 인식될 수 있습니다. 비판론자들은 이 움직임이 충동적이며, 팀이 "진행하면서 계획을 세우고 있는 것 같다"고 주장합니다.

언어의 종류를 넘어, 이 담론론은 직업 시장에 대한 더 깊은 불안을 반영합니다. 만약 거의 백만 줄에 달하는 코드베이스를 컴퓨팅 파워와 토큰을 사용하여 일주일 만에 포팅할 수 있다면, 수동 구현의 가치는치가 감소합니다. 이러한 변화는 "영어가 프로그래밍 언어가 되는" 미래를 제시하며, 엔지니어의 역할이 코드를 작성하는 것에서 사양(specification)을 정의하고 문맥(context)을를 정의하고 테스트 주도 개발(TDD) 프레임워크를 정의하는 것으로 이동함을 시사합니다.

비판적 반론

모든 사람이 99.8%의 테스트 호환성을 곧바로 프로덕션 준비가 된 시스템으로 확신하는 것은 아닙니다. 몇 가지 주의 사항이 제기되었습니다:

  • 테스트의 품질: 일부 관찰자들은 테스트 스위트 자체가 안전한 마이그레이션을 보장할 만큼 충분히 포괄적인지 의문을 제기했습니다.
  • 유지보수성: 테스트를 통과하는 프로토타입은 유지보수 가능하고 관상적인(idiomatic) Rust 코드베이스와는 다릅니다. 커뮤니티는 결과물이 unsafe 블록으로 가득 차 있는지, 아니면 Rust의 베스트 프랙티스를 따르는지 지켜보고 있습니다.
  • "AI 환각" 위험: 다른 실패한 AI 재작성 사례를 언급하며, 일부는 LLM이 올바르게 보이고 기본 테스트를 통과하지만 프로덕션 환경에서 미묘하고 치명적인 방식으로 실패할 수 있는 코드를 생성할 수 있다고 경고했습니다.

결론

Bun의 실험적인 Rust 재작성 작업은 단순한 기술적 연습 그 이상입니다. 이는 소프트웨어 엔지니어링의 미래를 위한 리트머스 시험지입니다. 만약 이 정도 규모의의 프로젝트가 AI를 사용하여 성공적으로 마이그레이션할 수 있다면, 이는 아키텍처 전환을 위한 주요 병목 현상이 인간의 수동 노동이었던 시대의 종림을 시사할 수 있습니다. 이것이 더 안정적인 소프트웨어를 만드는 데 도움이 될지, 아니면 유지보수 불가능한 AI 생성 코드의 엉킴이 될지는 아직 지켜봐야 합니다.

Sources