
Rolldown 1.0 RC 발표
output.codeSplitting API가 포함됩니다. Vite 8 beta는 이미 Rolldown을 기본 번들러로 채택하여 기존의 esbuild + Rollup 이중 파이프라인을 하나로 통합하였습니다.JS frameworks, React/Vue/Svelte, and runtime updates Compiled for immediate developer deployment.

output.codeSplitting API가 포함됩니다. Vite 8 beta는 이미 Rolldown을 기본 번들러로 채택하여 기존의 esbuild + Rollup 이중 파이프라인을 하나로 통합하였습니다.
@types/espree 및 @types/eslint-scope DefinitelyTyped 패키지를 대체한다는 점입니다. 새 타입에는 기존 커뮤니티 유지 타입과 다른 버그 수정 사항이 포함되어 있어 검토가 필요합니다. no-shadow 규칙의 함수 및 클래스 표현식 이름 처리 수정도 포함되었으며, eslint@next로 설치할 수 있습니다.
appLayout 속성으로 레이아웃을 선언적으로 관리할 수 있게 되었고, ISR/SWR 라우트까지 payload 추출이 확장되어 CDN에서 _payload.json을 캐시하고 클라이언트 API 호출을 줄일 수 있습니다. setPageLayout은 레이아웃에 props를 직접 전달하는 두 번째 인자를 지원합니다. 서버 디렉토리 내 보호된 임포트를 위한 #server alias가 추가되었으며, route rules 컴파일에 rou3를 도입해 클라이언트 번들의 radix3 의존성을 제거했습니다. 대부분의 기능은 Nuxt v3.21.0에도 백포트되었습니다.
form() 함수에 전달하면 FieldTree/FieldState 계층 구조가 생성되며, 기존 모델을 직접 변경합니다. 바인딩에는 [field] 디렉티브(v21.0.0-next.8에서 [control]에서 변경)를 사용하며, 내장 유효성 검사기, 커스텀 유효성 검사기, schema 재사용, when 옵션을 통한 조건부 유효성 검사를 지원합니다. 커스텀 컨트롤 생성 시 더 이상 4개 메서드의 ControlValueAccessor를 구현할 필요 없이 modelSignal 타입의 value 속성 하나만으로 새로운 FormValueControl<> 인터페이스를 만족시킵니다.
tsc 없이 동작하는 type-aware 린트 규칙, GritQL 플러그인, Vue/Svelte/Astro 실험적 지원을 포함한 Biome v2를 출시했습니다. 2026년 주요 계획으로는 SCSS 지원, CSS와 JSX를 아우르는 cross-language 린트 규칙, HTML 포매팅 개선, JavaScript 내 CSS/GraphQL 임베디드 언어 DX 향상, LSP 기능 강화, opt-in 모노레포 workspace 설정, YAML 안정화 등이 포함됩니다. 모노레포 메모리 누수와 복잡한 설정 디버깅 문제 등 과거 실수도 인정하였습니다.
Vc<…>)이라는 세밀한 캐시 단위를 사용하여 어떤 함수가 어떤 셀을 읽었는지 자동으로 추적합니다. 소스 파일 변경 시, 실제로 그 셀을 읽은 함수만 dirty로 표시되고 active query(열린 dev 페이지 또는 프로덕션 빌드 요청)가 발생할 때까지 재연산이 지연됩니다. 의존성 그래프 위에 "aggregation graph"를 구성하여 수백만 개의 세밀한 노드를 순회하지 않고 서브그래프 전체 쿼리를 효율적으로 처리합니다. Next.js 16.1부터 next dev의 파일 시스템 캐시가 안정적으로 기본 활성화됩니다.
useState로 생성한 ref 객체를 자식 컴포넌트에 prop으로 전달할 때, 컴파일러는 객체의 참조 동일성으로 자식을 메모이즈하여 내부 값이 변해도 업데이트가 발생하지 않습니다. 이 버그는 클래스 인스턴스를 통해 변경이 간접적으로 이루어질 때 ESLint 규칙으로 감지되지 않습니다. 해결책은 Babel 플러그인에서 panicThreshold: 'all_errors'를 설정하고, 변경 대신 useMemo로 새 객체를 생성하는 방식으로 전환하는 것입니다.VoidZero가 Rust 기반 JavaScript/TypeScript 번들러인 Rolldown 1.0 RC를 발표하며 공개 API 안정성을 선언했습니다. 이번 RC는 beta.1 이후 3,400개 이상의 커밋, 749개의 기능 추가, 682개의 버그 수정, 109개의 성능 최적화를 담고 있으며, Rollup 대비 10–30배 빠른 속도를 제공합니다. Rollup plugin API와 완벽하게 호환되며, Oxc 기반 TypeScript/JSX 변환, 네이티브 CJS/ESM interop, webpack 스타일의 청크 제어를 위한 output.codeSplitting API가 포함됩니다. Vite 8 beta는 이미 Rolldown을 기본 번들러로 채택하여 기존의 esbuild + Rollup 이중 파이프라인을 하나로 통합하였습니다.

ESLint v10.0.0-rc.1이 최종 안정 버전 출시에 앞서 커뮤니티 테스트용으로 공개되었습니다. 가장 큰 변경 사항은 Espree v11.1.0과 ESLint Scope v9.1.0이 빌트인 TypeScript 타입 정의를 제공하게 되어 기존의 @types/espree 및 @types/eslint-scope DefinitelyTyped 패키지를 대체한다는 점입니다. 새 타입에는 기존 커뮤니티 유지 타입과 다른 버그 수정 사항이 포함되어 있어 검토가 필요합니다. no-shadow 규칙의 함수 및 클래스 표현식 이름 처리 수정도 포함되었으며, eslint@next로 설치할 수 있습니다.
Nuxt 4.3이 개발자 경험과 성능 개선을 중심으로 출시되었습니다. route rules에서 appLayout 속성으로 레이아웃을 선언적으로 관리할 수 있게 되었고, ISR/SWR 라우트까지 payload 추출이 확장되어 CDN에서 _payload.json을 캐시하고 클라이언트 API 호출을 줄일 수 있습니다. setPageLayout은 레이아웃에 props를 직접 전달하는 두 번째 인자를 지원합니다. 서버 디렉토리 내 보호된 임포트를 위한 #server alias가 추가되었으며, route rules 컴파일에 rou3를 도입해 클라이언트 번들의 radix3 의존성을 제거했습니다. 대부분의 기능은 Nuxt v3.21.0에도 백포트되었습니다.
Angular 21 beta에서 실험적으로 도입된 Signal Forms는 Template Forms 및 Reactive Forms에 비해 보일러플레이트를 크게 줄이는 모델 기반 방식입니다. signal 모델을 새로운 form() 함수에 전달하면 FieldTree/FieldState 계층 구조가 생성되며, 기존 모델을 직접 변경합니다. 바인딩에는 [field] 디렉티브(v21.0.0-next.8에서 [control]에서 변경)를 사용하며, 내장 유효성 검사기, 커스텀 유효성 검사기, schema 재사용, when 옵션을 통한 조건부 유효성 검사를 지원합니다. 커스텀 컨트롤 생성 시 더 이상 4개 메서드의 ControlValueAccessor를 구현할 필요 없이 modelSignal 타입의 value 속성 하나만으로 새로운 FormValueControl<> 인터페이스를 만족시킵니다.
Biome 코어 팀이 2026년 로드맵을 공개했습니다. 2025년에는 월 1,500만 다운로드를 돌파하고, tsc 없이 동작하는 type-aware 린트 규칙, GritQL 플러그인, Vue/Svelte/Astro 실험적 지원을 포함한 Biome v2를 출시했습니다. 2026년 주요 계획으로는 SCSS 지원, CSS와 JSX를 아우르는 cross-language 린트 규칙, HTML 포매팅 개선, JavaScript 내 CSS/GraphQL 임베디드 언어 DX 향상, LSP 기능 강화, opt-in 모노레포 workspace 설정, YAML 안정화 등이 포함됩니다. 모노레포 메모리 누수와 복잡한 설정 디버깅 문제 등 과거 실수도 인정하였습니다.
Next.js 팀이 Turbopack의 핵심인 증분 연산(incremental computation) 아키텍처를 상세히 설명합니다. Turbopack은 변경 시 전체를 재빌드하는 대신, Salsa(Rust-Analyzer, Ruff의 핵심)와 SolidJS signal에서 영감을 받은 "value cell"(Vc<…>)이라는 세밀한 캐시 단위를 사용하여 어떤 함수가 어떤 셀을 읽었는지 자동으로 추적합니다. 소스 파일 변경 시, 실제로 그 셀을 읽은 함수만 dirty로 표시되고 active query(열린 dev 페이지 또는 프로덕션 빌드 요청)가 발생할 때까지 재연산이 지연됩니다. 의존성 그래프 위에 "aggregation graph"를 구성하여 수백만 개의 세밀한 노드를 순회하지 않고 서브그래프 전체 쿼리를 효율적으로 처리합니다. Next.js 16.1부터 next dev의 파일 시스템 캐시가 안정적으로 기본 활성화됩니다.
TanStack Form의 메인테이너 Corbin Crutchley는 React Compiler의 자동 메모이제이션이 클래스 기반 라이브러리 코드에서 흔히 사용하는 패턴을 조용히 망가뜨리는 사례를 설명합니다. useState로 생성한 ref 객체를 자식 컴포넌트에 prop으로 전달할 때, 컴파일러는 객체의 참조 동일성으로 자식을 메모이즈하여 내부 값이 변해도 업데이트가 발생하지 않습니다. 이 버그는 클래스 인스턴스를 통해 변경이 간접적으로 이루어질 때 ESLint 규칙으로 감지되지 않습니다. 해결책은 Babel 플러그인에서 panicThreshold: 'all_errors'를 설정하고, 변경 대신 useMemo로 새 객체를 생성하는 방식으로 전환하는 것입니다.
이번 주 JavaScript 툴링의 흐름은 Rust 기반의 세대 교체로 요약됩니다. VoidZero의 Rolldown 1.0 RC가 핵심입니다. beta 이후 3,400개 이상의 커밋, Rollup 대비 10–30배 빠른 속도, Oxc 기반 내장 TypeScript/JSX 변환, webpack 스타일 청크 제어를 위한 output.codeSplitting API를 갖추면서도 Rollup 플러그인 호환성을 유지합니다. 특히 Vite 8 beta가 이미 Rolldown을 기본 번들러로 채택해 기존의 esbuild + Rollup 이중 파이프라인을 단일 도구로 통합했습니다. Next.js 팀의 Turbopack 증분 연산 아키텍처 심층 분석 — Salsa와 SolidJS signal에서 영감을 받은 demand-driven "value cell"(Vc<…>)과 Next.js 16.1에서 안정화된 파일 시스템 캐시 — 도 번들러 르네상스를 완성합니다.
린팅 영역도 활발합니다. ESLint v10.0.0-rc.1은 Espree와 ESLint Scope에 내장 TypeScript 타입을 추가하여 DefinitelyTyped 패키지를 대체합니다. 기존 커뮤니티 타입에 의존하는 프로젝트는 변경 사항을 점검해야 합니다. Biome는 월 1,500만 다운로드를 달성한 Biome v2를 바탕으로 야심찬 2026년 로드맵을 공개했습니다. SCSS 지원, JSX와 CSS를 아우르는 cross-language 린트 규칙, HTML 포매팅 개선, 메모리 누수를 해결할 opt-in 모노레포 workspace 설정이 핵심입니다.
프레임워크 측에서는 Nuxt 4.3이 route rules의 appLayout을 통한 선언적 레이아웃 관리, ISR/SWR 라우트까지 확장된 CDN 캐시 가능 payload 추출, 서버 전용 임포트를 위한 #server alias를 선보였습니다. Angular 21의 실험적 Signal Forms는 signal 모델을 form() 함수에 전달해 FieldTree 계층을 생성하며, 기존 4개 메서드의 ControlValueAccessor를 단일 modelSignal 타입 value 속성으로 대체합니다. 한편 Corbin Crutchley의 React Compiler 묵음 메모이제이션 함정 분석 — 클래스 기반 ref 변경이 컴파일러의 의존성 추적을 우회하는 문제 — 은 컴파일러를 도입하는 라이브러리 작성자라면 반드시 읽어야 할 내용입니다.