Asana Codex 전환, 비용 논쟁
- •OpenAI는 Asana가 Codex로 약 $12,000에 1.5주 만에 Enzyme을 제거했다고 밝혔다
- •OpenAI에 따르면 Asana의 기존 마이그레이션 전망은 최소 5년, 약 $6M이었다
- •Airbnb, Uber, Bun 사례는 3,500개 테스트부터 15 million lines까지 AI 지원 마이그레이션을 보였다
OpenAI는 Asana가 Codex를 사용해 오래된 React 테스트 시스템인 Enzyme을 제거했다고 밝혔다. 작업은 두 calendar weeks에 걸쳐 1.5 weeks의 엔지니어링 effort로 진행됐고, 모델 및 인프라 비용은 약 $12,000이었다. OpenAI는 이를 최소 five years와 약 $6M이 들 것으로 예상됐던 Asana의 기존 계획과 비교했으며, 그 결과 Asana가 실용적이라고 보는 장기 소프트웨어 프로젝트의 범위가 달라졌다고 설명했다.
게르게이 오로스(Gergely Orosz)는 OpenAI가 제시한 five-year 및 $6M 비교의 크기에 의문을 제기했지만, 유사 작업을 검토한 뒤 two-week migration 자체는 신뢰할 만하다고 봤다. Enzyme과 React Testing Library는 서로 다른 테스트 방식을 쓴다. Enzyme은 컴포넌트 인스턴스에 초점을 맞추는 반면, React Testing Library는 렌더링된 Document Object Model(브라우저의 페이지 구조)을 통해 작동해 복잡한 테스트 재작성은 단순한 문법 교체를 넘어선다.
Airbnb는 March 2025에 LLM을 활용해 3,500개의 Enzyme component test files를 six weeks 만에 이전했다고 밝혔다. 수작업 예상치는 1.5 engineering years였다. Airbnb는 retry loops를 구축해 four hours 동안 파일의 75%를 이전했고, 이후 더 정교한 refactor pipeline을 만들어 over 4 days 실행 후 전체 automated migration을 97%까지 끌어올렸다. 엔지니어들은 남은 3%를 LLM input과 함께 a week 안에 마무리했다.
Asana에서 Developer Productivity group을 이끄는 Dan Ubilla는 오로스에게 Asana가 2024년에 4,000+ Enzyme files로 Enzyme migration을 시작했다고 말했다. 팀은 먼저 파일의 약 25%를 React Testing Library로 이전했다. 특히 이전이 가장 쉽거나 가장 자주 업데이트되는 테스트처럼 return on investment가 가장 높은 테스트를 우선했고, 동시에 mocking, data setup, coverage instrumentation도 개선했다.
Ubilla는 Asana의 남은 Enzyme migration이 critical 또는 important가 아니라 opportunistic한 작업이 됐다고 말했다. 따라서 five-year 수치는 한 팀이 five years 동안 nonstop으로 일한다는 뜻이 아니라 projected completion timeframe을 가리킨다. 오로스는 $6M 추정치가 파일당 수작업 재작성 및 검증 시간, 3,000+ remaining files, framework traces cleanup, monitoring and static analysis tools, typical engineer’s hourly rate를 바탕으로 한 back-of-the-envelope calculation이었다고 설명했다.
오로스는 $6M 수치가 probably an overestimate라고 봤지만, 더 큰 요점은 pre-AI migrations가 often impractical했다는 데 있다고 말했다. 그는 Sentry의 2021 JavaScript-to-TypeScript migration을 예로 들었다. 해당 작업은 약 10 engineers가 1,100 files와 95,000 lines of code를 변환하는 데 1.5 years가 걸렸고, engineer 1명당 비용을 $300K로 잡으면 $2–4M cost를 시사했다.
인용된 다른 AI-assisted migrations에는 Uber의 JUnit 4에서 JUnit 5로의 전환이 포함됐다. Two engineers와 AI는 four months 동안 15 million lines of code에 걸친 600,000 unit tests를 옮겼고, 1.25M lines를 수정했으며, eight engineering months와 AI costs가 필요했다. Bun의 migration은 two weeks 동안 530,000 lines of code를 Zig에서 Rust로 옮겼고, API cost는 $165K였다.
오로스는 rapid AI-assisted migrations가 전환 기간 동안 팀이 old libraries를 지원해야 하는 시간을 줄인다고 결론 냈다. 다만 엔지니어는 여전히 작업을 계획하고, verification loops를 설계하며, 전 과정에 관여해야 한다. 해당 보도에 따르면 Asana의 팀과 리더십은 이제 LLMs가 migrations에 유용하다고 보고 있으며, 다른 장기 migration work에도 이를 사용할 계획이다.