VoidZero — 자바스크립트를 위한 차세대 툴체인 출시

Ricki
9 min readNov 10, 2024

--

원문: https://voidzero.dev/posts/announcing-voidzero-inc

요약: 자바스크립트 생태계를 위한 오픈소스 기반의 고성능 통합 개발 툴 체인을 구축하는 것을 목표로 VoidZero Inc.를 설립했습니다. Accel이 주도하는 시드 투자를 통해 460만 달러를 유치했습니다.

15년 전, 제가 자바스크립트로 앱을 개발하기 시작했을 때만 해도 자바스크립트는 브라우저 기반의 스크립팅 언어에 불과했습니다. 하지만 오늘날 자바스크립트는 세계에서 가장 많이 쓰이는 언어로 발전했고, 웹과 모바일 앱부터 게임 개발, 심지어 IoT에서도 사용됩니다.

수년에 걸쳐 자바스크립트 애플리케이션의 규모와 복잡성이 증가함에 따라 이를 해결하기 위해 많은 훌륭한 도구들이 등장했습니다. 그러나 생태계는 항상 파편화되어 있었습니다. 모든 애플리케이션이 수많은 서드파티 의존성에 기대고 있으며, 이들을 함께 잘 작동하도록 구성하는 것은 개발 주기에서 가장 힘든 작업 중 하나로 남아있습니다.

가장 많이 사용되고 있는 프런트엔드 프레임워크 중 하나의 작성자로서, 저는 자바스크립트 툴링 스택의 모든 계층을 연구하고, 수백 개의 의존성을 조합하며, 이들 위에 복잡한 추상화를 설계하는 데 상당한 노력을 기울였습니다. 목표는 최종 사용자들에게 일관되고, 즉시 사용 가능한 개발 환경을 제공하는 것입니다. 이 노력은 2020년 Vite의 탄생으로 이어졌습니다.

4년이 지난 지금, Vite는 주간 1,500만 다운로드 이상을 기록하고 방대한 생태계를 보유한 가장 인기 있는 웹 개발 빌드 도구 중 하나가 되었습니다. Vite는 [React]와 [Vue]로 만들어진 단일 페이지 애플리케이션을 위한 최선의 선택이 되었을 뿐만 아니라, Remix, Nuxt, Astro, SvelteKit, SolidStart, Qwik, Redwood 등과 같은 메타 프레임워크도 지원합니다. 차세대 웹 프레임워크를 위한 공유 인프라 계층으로서의 입지를 확실히 다졌습니다.

커뮤니티가 Vite에 보내준 신뢰를 보면서 Vite의 미래에 대해 깊이 고민했습니다. Vite가 고수준의 개발자 경험을 크게 개선했지만 내부적으로는 여전히 다양한 의존성에 기대고 있으며, 불일치를 해소하기 위한 추상화와 임시방편을 사용하고 있습니다. 성능적 관점에서, 여전히 여러 도구 간의 중복된 구문 분석과 직렬화 비용으로 인한 병목을 겪고 있습니다. 또한 기능적 제약과 커스터마이징의 한계로 esbuild와 같은 네이티브 도구의 기능을 완전히 활용하지 못하고 있습니다.

그래서 Vite의 요구사항에 꼭 맞춘 새로운 번들러 Rolldown을 설계하기 시작했습니다. 하지만 번들러의 계층 속을 더 깊이 파고들면서, Vite가 겪고 있는 문제는 파편화, 비호환성, 비효율성과 같은 자바스크립트 생태계 전반의 문제임을 알게 되었습니다. 근본적으로 이를 바꾸기 위해, 통합된 툴 체인이 필요했습니다.

다음과 같은 툴체인을 상상해 보세요.

  • 통합: 모든 작업(구문 분석, 변환, 린팅, 포매팅, 번들링, 최소화, 테스팅)에 동일한 AST, 리졸버, 모듈 상호운용성을 사용하여 불일치를 제거하고 중복된 구문 분석 비용을 줄입니다.
  • 고성능: 네이티브 언어로 컴파일되며, 처음부터 속도를 위해 설계되었고, 최대한의 병렬화와 낮은 오버헤드의 JS 플러그인 지원을 제공합니다. 이러한 성능 예산은 개발자 경험뿐만 아니라 최종 사용자 경험도 개선하는 더 야심 찬 기능들을 가능하게 합니다.
  • 합성 가능성: 툴 체인의 각 구성 요소는 독립적으로 사용 가능하며, 고급 커스터마이징을 위한 구성 요소를 제공합니다.
  • 런타임 독립: 특정한 자바스크립트 런타임에 종속되지 않기 때문에 모든 환경에 걸쳐 동일한 개발자 경험을 제공합니다.

이런 툴 체인은 Vite뿐만 아니라 자바스크립트 생태계 전반에 걸쳐 엄청난 개선을 끌어낼 것입니다. 이건 야심 찬 목표이고 그 목표를 이루는 데에는 전담 정규직 팀이 필요합니다. 이런 팀은 독립적으로 지속 가능한 모델을 가진 저의 이전의 프로젝트에서는 불가능했습니다. 그래서 VoidZero가 설립된 것입니다.

이 비전을 추구하기 위해 460만 달러의 시드 투자를 유치했다는 것을 기쁘게 발표합니다. 시드 라운드는 Accel이 주도했고, Amplify Partners, Preston-Werner Ventures, BGZ, Eric Simons (StackBlitz), Paul Copplestone (Supabase), David Cramer (Sentry), Matt Biilmann & Christian Bach (Netlify), Dafeng Guo (Strikingly), Sebastien Chopin (NuxtLabs), Johannes Schickling (Prisma), and Zeno Rocha (Resend)가 참여했습니다.

지금까지의 진행 상황

지난 1년 동안, 우리는 자바스크립트 툴링의 전문가들로 팀을 만들어 왔습니다. Vite, Vitest, Oxc와 같은 널리 도입된 오픈소스 프로젝트의 제작자나 핵심 기여자들, 그리고 Rspack의 이전 핵심 기여자들을 포함합니다.

또한 구상한 툴 체인의 기초 요소들을 개발하는 데 큰 노력을 기울여왔습니다. Vite의 지속적인 개선 외에도 다음과 같은 성과를 이뤄냈습니다.

  • 가장 빠르고 스펙을 가장 잘 준수하는 자바스크립트 파서 (oxc-parser), SWC보다 3배 빠름 — 성능 비교
  • 가장 빠른 Node.js 호환 리졸버 (oxc-resolver), enhanced-resolve보다 28배 빠름 — 성능 비교
  • 가장 빠른 타입스크립트 / JSX 변환기 (oxc-transform), SWC보다 4배 빠름 — 성능 비교
  • 가장 빠른 린터 (oxlint), ESLint보다 50–100배 빠름 — 성능 비교
  • 웹 애플리케이션을 위한 가장 완벽한 기능을 갖춘 테스트 러너 (Vitest)
  • Oxc 기반으로 구축된 가장 빠른 번들러 (Rolldown), esbuild와 다른 모든 Rust 번들러보다 빠름 (현재 알파 버전) — 성능 비교

여전히 초기 단계에 있지만, 이 오픈 소스 프로젝트들은 이미 OpenAI (ChatGPT 웹 클라이언트), Google, Apple, Microsoft, Visa, Shopify, Cloudflare, Atlassian, Reddit, HuggingFace, Linear 등과 같은 세계 최고의 엔지니어링 팀들이 사용하고 있습니다.

다음 목표

앞으로 몇 달간의 주요 목표는 Rolldown을 안정화하고, 이를 개발 및 프로덕션 환경 모두에서 Vite의 통합 번들러로 만드는 것입니다. 이미 많이 진전한 상태고, 올해 말까지 Rolldown이 적용된 Vite의 알파 버전 출시를 목표로 하고 있습니다.

2025년에도 계속 Oxc의 예정된 기능들(최소화, 포매팅)을 완성할 것이고 점진적으로 모든 Vite 생태계를 Rolldown과 Oxc로 전환할 예정입니다. 최종 사용자들의 원활한 전환을 위해 생태계 파트너들 및 이해관계자들과 긴밀히 협력할 것입니다.

우리가 오픈소스로 공개해 둔 프로젝트는 계속 오픈소스로 유지될 것입니다. 오픈소스 프로젝트를 기반으로 기업 환경의 규모와 보안 요구사항을 충족하도록 특별히 설계된 엔드-투-엔드 자바스크립트 툴링 방법을 제공할 것입니다.

계속 지켜봐 주세요!

X 계정을 팔로우해서 진행 과정을 계속 확인하세요. 만약 이 도구들을 대규모로 사용해야 하는 요구사항이 생긴다면, 연락하세요! 이 프로젝트들을 만들거나 기여하는 데에 관심이 생긴다면, 디스코드 서버들(Vite, Vitest, Oxc, Rolldown)에 참여하세요. 마지막으로, 이번 주 ViteConf를 잊지 마세요. 이곳에서 진행 과정과 미래 계획에 대한 세부 사항을 더 얘기할 예정입니다.

자주 묻는 질문

  • 이러한 오픈소스 프로젝트들과 VoidZero는 무슨 관계인가요?

Vite와 Vite의 팀 기반 거버넌스는 이전과 똑같이 유지될 것입니다. 각각의 핵심 팀들은 여러 다른 조직(VoidZero, StackBlitz, NuxtLabs, Astro)에 소속된 구성원들로 이루어집니다. VoidZero Inc.는 Vite와 Vitest의 많은 핵심 기여자를 고용하거나 후원합니다.

VoidZero Inc.는 저작권을 가지고 있고 개발을 지원하며 Oxc와 Rolldown의 방향성을 주도합니다.

  • Vue는 어떻게 되나요?

VoidZero는 Vue와 완전히 독립적인 사업입니다. Vue는 독립적인 프로젝트로 계속될 것이지만 VoidZero가 개발하는 새로운 툴링으로부터 최고 수준의 지원을 받게 될 것입니다.

  • 왜 SWC 대신 Oxc인가요?

대다수의 팀 구성원은 SWC에 상당한 기여를 해왔습니다. 단순한 성능상 이점을 넘어서, Oxc는 근본적인 설계가 SWC와는 다르기 때문에 우리가 설계하고 있는 엔드-투-엔드 툴 체인의 더 나은 기반이 됩니다. 이 주제에 대해 더 많은 기술적 인사이트는 향후 블로그 포스트를 통해 제공할 예정입니다. 지켜봐 주세요!

  • 왜 esbuild나 Rollup 대신 Rolldown인가요?

우리는 극한으로 빠르고, 애플리케이션 번들링에 적합하고, Vite의 플러그인 생태계와 완벽히 호환되는 번들러가 필요했습니다. 이건 Rolldown의 문서에서 자세하게 다루고 있습니다. 또한 Rolldown을 Oxc 위에 구축함으로써 번들링 단계에서 더 많은 AST 관련 작업을 병렬로 수행할 수 있게 되었습니다. 예를 들어 isolatedDeclarations: true로 dts를 생성하고 번들링 하는 것이 가능해졌습니다.

  • 기존에 있었던 자바스크립트 툴체인 통합 시도와는 어떤 점이 다른가요?

통합 툴 체인의 가장 큰 도전 과제는 제로투원 문제입니다. 지속적인 개발을 정당화할 만큼의 대규모 채택을 이끌어내기 위해서는 임계점에 도달해야 하지만, 실제로 비전을 완전히 실현하기 전에는 그 간극을 넘기가 어렵습니다. 하지만 VoidZero는 이러한 문제가 없습니다. 왜냐하면 Vite가 이미 자바스크립트 생태계에서 가장 빠르게 성장하는 툴 체인이기 때문입니다.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Ricki
Ricki

Written by Ricki

Life is tons of discipline.

No responses yet

Write a response