Bun이 unsafe AI 코드를 배포했습니다
Bun은 최근 대규모 Rust 재작성을 발표했습니다. 팀은 이 작업의 상당 부분을 Claude AI를 사용하여 작성했습니다. 이 재작성 과정에서 코드베이스에 13,000개 이상의 unsafe 코드 블록이 추가되었습니다.
시스템 프로그래밍에서 unsafe 코드는 메모리 안전 규칙을 우회합니다. 단 하나의 unsafe 블록도 위험 요소입니다. AI가 생성한 코드에 13,000개의 블록이 포함되어 있다는 것은 위기입니다.
또한 팀은 동시성 가비지 컬렉터(concurrent garbage collector) 없이 이를 출시했습니다. 이는 멀티스레드 워크로드에서 메모리 관리를 어렵게 만듭니다.
속도의 필요성은 이해합니다. 소규모 팀이 Node.js 및 Deno와 경쟁하려면 빠르게 움직여야 합니다. 하지만 속도가 신중함을 대신해서는 안 됩니다.
unsafe 코드 블록은 메모리 접근이 유효하다는 약속입니다. AI가 코드를 작성한다면, 그 약속에 서명한 인간은 아무도 없습니다.
AI 코드가 나쁜 것은 아닙니다. 하지만 이 정도 규모로 unsafe 코드를 생성하는 데 AI를 사용하는 것은 위험합니다.
런타임은 단순한 라이브러리가 아닙니다. 애플리케이션 전체의 기반입니다. 런타임을 선택한다는 것은 그것을 신뢰하기로 선택하는 것입니다.
일부 개발자들은 안정성 문제로 인해 다시 Node.js로 돌아가고 있습니다. 이는 실험적인 인프라를 배포한 결과입니다.
저는 매일 AI 도구를 사용합니다. 저는 AI 코드를 주니어 엔지니어가 작성한 코드처럼 취급합니다. 위험도에 걸맞은 리뷰가 필요합니다.
JavaScript 런타임에서 멀티스레딩의 위험은 엄청납니다. 그 13,000개의 블록이 존재하려면 13,000개의 타당한 이유가 필요합니다. 단순히 13,000번의 형식적인 승인이 필요한 것이 아닙니다.
빠른 속도의 AI 생성에는 그에 걸맞은 빠른 속도의 리뷰가 필요합니다.
Bun은 큰 잠재력을 가지고 있습니다. 팀은 인상적인 작업을 해왔습니다. 하지만 신중함 없이 야심만 갖는 것은 리스크를 초래합니다.
AI 사용을 중단해서는 안 됩니다. 다만 리뷰의 수준이 영향 범위(blast radius)와 일치하도록 보장해야 합니다. AI는 잘못되었을 때의 비용에 대해 추론할 수 없습니다.
여러분은 프로덕션 앱에서 AI가 생성한 13,000개의 unsafe 블록을 실행하시겠습니까? 인프라를 AI에게 맡길 때 여러분의 신뢰 한계는 어디까지입니까?