Vite+: JavaScript를 위한 통합 툴체인 정리 — ViteConf 2025 발표 내용 기반

okorion·2025년 11월 14일

2025년 10월 ViteConf(암스테르담)에서 Evan You가 Vite+를 공개했다. Vite+는 기존 Vite 위에 올라가는 “드롭인 업그레이드형 통합 툴체인”으로, dev/build만 하던 Vite에 새 CLI 명령들을 붙여 개발·테스트·린트·포매팅·라이브러리 번들·모노레포 러너·GUI까지 한 번에 묶은 도구다.

아래는 원문 내용을 기반으로 한 구조화된 정리다.


1. Vite+ 한 줄 정의

“Vite를 기반으로 한, JavaScript용 통합 Rust 툴체인 + 상위 상업 레이어”

  • npm에서 설치하는 CLI 도구 (Vite처럼 쓰지만, 더 많은 명령 제공)
  • 기존 vite dev, vite build는 그대로 두고, 그 위에 다음 명령을 추가:
vite new   # 프로젝트/모노레포 스캐폴딩
vite test  # Vitest 기반 유닛 테스트
vite lint  # Oxlint 기반 린트
vite fmt   # Oxfmt 기반 포매터
vite lib   # 라이브러리 번들링
vite run   # 모노레포 태스크 러너 + 캐싱
vite ui    # GUI Devtools

각 명령은 이미 널리 쓰이는 오픈소스 도구(Vitest, Oxlint, Rolldown, tsdown 등)를 기반으로 하면서, Vite+ 안에서 일관된 UX와 설정 방식으로 통합된다.


2. 각 CLI 명령이 하는 일

2-1. vite new – 프로젝트/모노레포 스캐폴딩

  • 새 프로젝트/모노레포 생성용 명령.
  • Vite+에 최적화된 디렉터리 구조/설정으로 스타터를 만들어 줌.
  • 단순 템플릿 생성뿐 아니라:
    • 모노레포에 새 패키지 추가
    • 커스텀 코드 제너레이터 실행
      같은 코드 생성 플로우도 지원.

2-2. vite test – Vitest 기반 테스트 러너

  • 내부적으로 Vitest를 사용.
  • 특징:
    • Jest 호환 API (테스트 작성 경험 유지)
    • 앱과 동일 설정 기반으로 바로 테스트 실행
    • 브라우저 모드, 샤딩, 시각적 회귀 테스트 등 포함

→ 사실상 “Vite 프로젝트에 최적화된 Vitest 프리셋 + CLI 통합 버전”이라고 보면 된다.

2-3. vite lint – Oxlint 기반 초고속 린터

  • Oxlint(Rust로 구현된 JS/TS 린터) 기반.
  • 스펙:
    • ESLint 호환 룰 600+개 내장
    • ESLint 대비 최대 100배 빠른 성능 (Rust + 최적화된 구현)
    • 타입 인식(type-aware) 린팅 지원
    • 룰/플러그인을 JS로 작성 가능 + ESLint 호환 API

→ “ESLint 설정 지옥 + 느린 속도”를 줄이고, ESLint 생태계를 최대한 재사용하는 방향.

2-4. vite fmt – Oxfmt 기반 코드 포매터

  • Oxfmt(곧 출시 예정) 기반.
  • 목표:
    • Prettier와 99%+ 호환
    • 하지만 Prettier보다 라인 래핑 등 세부 제어를 더 많이 제공
  • 결국 “Prettier처럼 쓰되, 더 빠르고 세밀한 컨트롤이 가능한 Rust 포매터”를 지향.

2-5. vite lib – 라이브러리 번들링

  • tsdown + Rolldown 조합으로 라이브러리 번들.
  • 특징:
    • 라이브러리용 번들 환경(best practice)이 기본 내장
    • TypeScript 정의 파일(DTS) 생성 시
      • isolatedDeclarations 기반 초고속 DTS 번들 생성

→ 라이브러리 개발자가 매번 Rollup/Webpack 설정을 직접 짜지 않아도 되도록 표준 패턴을 강제하는 역할.

2-6. vite run – 캐싱 내장 모노레포 태스크 러너

  • 모노레포를 위한 태스크 러너 + 캐시 시스템.
  • 컨셉:
    • Turborepo 같은 것인데, 캐시 무효화 규칙을 직접 정의하지 않아도 되는 버전”
  • 구현:
    • 태스크 입력(input) 자동 추론으로 캐시 키 생성
    • 대부분의 태스크가 명시적인 설정 없이도 캐시 가능
    • 수동 설정보다 더 세밀한 캐싱이 가능한 경우도 있다고 언급

2-7. vite ui – GUI Devtools

  • 브라우저/GPU 기반이 아니라 Vite+용 GUI 툴.
  • 제공 기능:
    • 모듈 resolve / transform 과정 시각화
    • 번들 크기 분석
    • tree-shaking 효과 분석
    • React/Vue 같은 프레임워크별 Devtools와 통합

→ “Vite Devtools + 번들 분석 + 프로파일링”을 하나의 UI에서 보게 하는 느낌.


3. Vite+의 기술 기반: 전부 Rust로 짜인 컴파일러 스택

Vite+ 커맨드들은 모두 공유된 Rust 기반 컴파일러 스택 위에 올라간다.

Rust로 구현된 구성 요소:

  • 파서(parser) – Oxc
  • 리졸버(resolver)
  • 트랜스포머(transformer)
  • 미니파이어(minifier)
  • 번들러(bundler) – Rolldown

특징:

  • 성능 집착형 최적화 (파서 ~ 번들러까지 전체 스택 튜닝)
  • 이미 여러 회사에서 실제로 사용 중:
    • Framer, Linear, Atlassian, Shopify 등
  • parse, transform 같은 유틸을 API로 노출
    → 팀이 직접 커스텀 코드 모드/검사/변환 도구를 만들 수 있음.

4. Vite+가 풀고자 하는 문제: JS 툴체인의 분열과 조직 규모 문제

Evan의 정리 기준, 해결 대상은 명확하다.

4-1. 문제 1: 파편화된 툴체인

  • 팀·레포마다:
    • dev 서버: Vite/Next/CRA/커스텀
    • 빌드: Vite/Rollup/Webpack/esbuild
    • 테스트: Jest/Vitest/Playwright
    • 린트: ESLint + 플러그인 조합
    • 포맷팅: Prettier/Biome 등
    • 모노레포 관리: Turborepo/Nx/mage/커스텀 스크립트…

의존성과 버전 조합이 서로 다르고, 보안 리뷰·업그레이드를 팀마다 따로 해야 하는 상황.

4-2. 문제 2: 대규모 조직·모노레포에서의 비용

  • 여러 팀이 서로 다른 도구 세트를 쓰면:
    • 공통 CI 파이프라인 설계가 어려워짐
    • 패키지 업데이트/보안 이슈 대응이 레포별로 따로 돌아감
    • 나중에 팀을 합치거나 레포를 통합하면, 도구를 통합하느라 추가 인건비 발생
    • 도구들을 어설프게 섞어 쓰면 “프랑켄슈타인 툴체인”이 됨

4-3. Vite+의 목표

“툴 선택·설정·디버깅에 쓰는 시간을 줄이고, 제품 개발에 집중하게 하는 통합 솔루션”

  • dev/build/test/lint/fmt/lib/run/ui를 하나의 도구 + 하나의 생태계에서 해결
  • 프레임워크 호환:
    • React, Vue는 물론
    • TanStack Start, SvelteKit 같은 풀스택 메타 프레임워크도 지원
  • 이미 사용 중인 도구들(Vitest/Oxlint/Rolldown 등)을 그대로 활용하면서, CLI 차원에서 통합

5. 라이선스 모델과 OSS와의 관계

5-1. Vite+ 라이선스 구조

Vite+는 상업적 라이선스를 가진, 소스 공개(source-available) 상위 레이어다.

  • 무료 대상
    • 개인 개발자
    • 오픈소스 프로젝트
    • 소규모 비즈니스
  • 유료 대상
    • 스타트업: 연 단위 고정 요금(Flat pricing)
    • 엔터프라이즈: 커스텀 가격
  • 구체적인 티어 기준·가격은 퍼블릭 런치 시점에 공지 예정.

전략적 포인트:

  • 대규모 조직에서 나오는 가치의 일부를 회수 → 이를 기반 OSS에 재투입하겠다는 모델.

5-2. Vite / Vitest / Rolldown / Oxc는 그대로 MIT

중요한 점:

“Vite+, Vitest, Rolldown, Oxc 같은 기반 프로젝트는 MIT로 영원히 오픈소스로 남는다.”

  • Vite+는 이들 위에 얹힌 별도의 상위 레이어
  • Vite+의 품질을 올리려면, 어차피:
    • Vite
    • Vitest
    • Rolldown
    • Oxc
      자체를 개선해야 해서, OSS가 함께 이득을 본다는 구조.

6. 로드맵 & 도입 시점

  • 현재 시점: 개발 중
  • 계획:
    • 퍼블릭 프리뷰: 2026년 초 목표
  • 지금은:
    • 초기 도입 팀(early adopters) 모집 중
    • 관심 있는 팀은 viteplus.dev를 통해 연락 가능

7. 기존 Vite 사용자 입장에서의 의미

7-1. “드롭인 업그레이드”로 설계

  • npm 설치 후, 기존 Vite와 유사한 방식으로 사용
  • Vite 생태계(플러그인, 프레임워크 통합)를 그대로 승계
  • vite dev, vite build만 쓰던 프로젝트에:
    • 테스트, 린트, 포맷팅, 모노레포 캐시, Devtools를 차례로 붙일 수 있음

7-2. 기존 도구와의 관계

  • Vitest, ESLint, Prettier, Turborepo 등을 모두 Vite+로 바로 갈아치워야 하는 건 아니다.
  • 점진적으로:
    • 테스트 → vite test
    • 린트 → vite lint
    • 포맷팅 → vite fmt
    • 라이브러리 → vite lib
    • 모노레포 → vite run
      로 옮겨가며 도구 스택을 단일 계열로 정리하는 것이 Vite+ 설계 방향.

8. 요약 및 도입 검토 체크리스트

8-1. 핵심 요약

  • Vite+는 Vite 기반 통합 툴체인으로:
    • dev/build를 넘어
    • new/test/lint/fmt/lib/run/ui를 하나의 Rust 기반 스택에서 제공
  • 목표:
    • 대규모 JS 코드베이스·모노레포·여러 팀·여러 프로젝트를 가진 조직의
      • 툴 관리 비용
      • 빌드/테스트 속도
      • 설정/디버깅 피로
        를 줄이는 것
  • OSS 관계:
    • Vite / Vitest / Rolldown / Oxc는 계속 MIT OSS
    • Vite+는 소스 공개 + 상업 라이선스 레이어
  • 로드맵:
    • 퍼블릭 프리뷰: 2026년 초
    • 현재는 early adopters 모집 단계

8-2. 도입 검토용 체크리스트(요약)

  • 현재 조직/프로젝트가 2개 이상 툴체인 조합을 쓰고 있는가?
  • 모노레포에서 빌드/테스트 캐싱 구성에 시간을 많이 쓰고 있는가?
  • ESLint/Prettier 성능이나 설정 복잡도가 병목인가?
  • Vitest, Rollup/Rolldown, Vite를 이미 사용 중인가?
  • 라이선스 기준상, 개인/OSS/소규모 비즈니스에 해당하는가, 아니면 스타트업/엔터프라이즈인가?
  • 2026년 이후 도입을 고려할 수 있을 만큼 장기적으로 JS/TS 기반을 유지할 계획인가?

이 질문에 “그렇다”가 많이 나온다면, Vite+는 최소한 진지하게 관찰해야 할 툴체인 옵션이다.


profile
okorion's Tech Study Blog.

0개의 댓글