JS frameworks, React/Vue/Svelte, and runtime updates Compiled for immediate developer deployment.
calendar_todaysummarizeWeek 12-2026
article
Next.js 16.2
TAG: 프레임워크
Next.js 16.2는 next dev 시작 시간이 약 87% 빨라지고 서버 렌더링 속도가 25~60% 향상되는 등 전반적으로 상당한 성능 개선을 제공합니다. 렌더링 속도 향상은 React에 직접 기여한 변경 사항에서 비롯되었으며, JSON.parse reviver 콜백이 키-값 쌍마다 C++/JavaScript V8 경계를 넘나드는 방식 대신 순수 JavaScript 재귀 탐색을 사용하는 2단계 방식으로 대체되었습니다. 이 외에도 개발 터미널에서 Server Function 로그 확인, +Client/-Server 범례로 수화 불일치를 명확히 표시하는 Hydration Diff Indicator, 2~20배 빨라진ImageResponse가 포함됩니다. Link 컴포넌트에는 View Transitions를 위한 transitionTypes prop이 추가되었고, Adapters API가 안정화되었습니다. 실험적 기능으로는 컴포넌트 수준 에러 경계를 위한 unstable_catchError()와 세그먼트별 prefetch 요청을 하나로 통합하는 prefetchInlining이 도입되었습니다.
Bun v1.3.11에는 두 가지 주요 새 API와 함께 대규모 버그 수정이 포함되었습니다. Bun.cron은 Linux에서는 crontab, macOS에서는 launchd, Windows에서는 Task Scheduler를 사용하여 OS 수준의 cron 작업을 등록하며, Cloudflare Workers Cron Triggers API 규약을 따릅니다. Bun.cron.parse는 @daily 등 명칭 단축어를 포함한 모든 cron 표현식에 대한 다음 실행 시각을 반환합니다. 새로운 Bun.sliceAnsi는 slice-ansi 및 cli-truncate npm 패키지를 대체하며, 순수 ASCII 입력에는 SIMD ASCII 고속 경로를 사용하여 ANSI SGR 코드와 그래핌 클러스터 경계를 보존하면서 컬럼 너비 기준으로 터미널 문자열을 슬라이싱합니다. Bun.markdown.render의 listItem 콜백은 이제 index, depth, ordered, start 메타데이터를 전달받아 정규식 후처리 없이 중첩 번호 체계를 구현할 수 있습니다. 버그 수정으로는 macOS의 dgram UDP 소켓, Windows의 네이티브 ARM64 심, Node.js의 fs/crypto/HTTP2 호환성 개선이 포함됩니다.
VoidZero의 3월 런치 위크에서는 JavaScript 툴체인 전반에 걸쳐 대규모 업데이트가 출시되었습니다. 핵심은 Vite 8으로, Rust 기반 Rolldown 번들러가 esbuild와 Rollup을 모두 대체하며 Rollup 대비 10~30배 빠른 속도를 제공합니다. Linear는 빌드 시간을 85%, Beehiiv는 64% 단축했다고 보고했습니다. Oxlint는 JS Plugins Alpha에서 기존 ESLint 플러그인과 거의 100% 호환성을 달성하며 최대 100배 빠른 린팅을 제공합니다. Vitest 4.1은 Vite 8 지원, 테스트 태그, 비동기 누수 감지, GitHub Actions 리포터를 추가했습니다. 새로운 Vite+ CLI는 Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown을 단일 vp 바이너리와 하나의 vite.config.ts로 통합합니다. 마지막으로 Evan You가 Vite 애플리케이션 전용 배포 플랫폼 Void를 발표했습니다.
수년간 JavaScript에서 JSON 파일을 import하는 것은 네이티브처럼 보였지만, 실제로는 빌드 시점에 번들러가 처리하는 방식이었습니다. 이제 import attributes 제안이 브라우저, Node.js, Deno, Bun에서 지원되면서 JSON을 런타임 퍼스트클래스 모듈로 직접 import할 수 있게 되었습니다: import config from './config.json' with { type: 'json' }. 명시적인 with { type: 'json' } 절은 엔진이 파일을 실행할지 파싱할지 추측할 필요를 없애고, 표준 ESM 캐싱 의미론과 일치시킵니다. 즉, 동일한 모듈은 한 번 파싱되어 모든 import 지점에서 공유됩니다. 번들러 기반 import와 달리 네이티브 JSON 모듈은 런타임에 fetch되며 일반 CORS 및 Content-Type 규칙을 따릅니다. 번들러는 인라이닝, 에셋 해싱, 코드 분할 면에서 여전히 유용하지만, 순수 JSON import에 있어서는 플랫폼이 툴링 수준을 따라잡았습니다.
React SSR 프레임워크 벤치마크: TanStack Start, React Router, Next.js
TAG: 벤치마크
Platformatic은 카드 10,000장, 매물 50,000건 규모의 트레이딩 카드 마켓플레이스 앱을 TanStack Start, React Router, Next.js 세 프레임워크로 동일하게 구현한 뒤 AWS EKS에서 1,000 req/s 부하 테스트를 실시했습니다. TanStack Start(v1.157.16, 최적화 이후)는 평균 레이턴시 13ms, 성공률 100%를 기록하며 명확한 1위를 차지했습니다. 이전 버전은 p95 요청이 10초 타임아웃 한계에 부딪혀 성공률이 75%에 불과했으나, 7개 마이너 버전 만에 252배 개선을 이뤄냈습니다. React Router는 실패 없이 안정적으로 부하를 처리했습니다. Next.js 15.5.5는 평균 응답 시간 8~11초에 약 40%의 요청이 실패했으나, v16.2.0-canary.66으로 업그레이드 후 처리량이 두 배 이상 증가하고 평균 레이턴시가 6배 감소했습니다. 핵심 발견 사항은 flame 그래프를 프레임워크 팀과 공유함으로써 React RSC 역직렬화에서 JSON.parse reviver를 제거하는 수정이 이뤄졌으며, 이는 모든 React Server Components 사용자에게 75%의 속도 향상을 제공한다는 점입니다.
TanStack 팀은 @platformatic/flame CPU 프로파일링과 autocannon 부하 테스트를 활용하여 20개 이상의 PR로 TanStack Start의 SSR 처리량을 개선한 체계적인 프로세스를 상세히 기술합니다. 가장 큰 성과를 낸 세 가지 패턴은 다음과 같습니다: 일반적인 내부 경로에서 전체 WHATWG URL 파싱을 건너뛰는 저비용 isSafeInternal조건자로 무조건적인 new URL() 생성을 대체, isServer 빌드 타임 상수 뒤에 리액티브 스토어 구독을 게이팅하여 서버가 상태 변경 구독 대신 단순 스냅샷을 사용하도록 전환, 그리고 V8 HiddenClass 전환을 유발하는 딕셔너리 모드 프로퍼티 접근을 방지하기 위해 핫 패스 객체에서 delete 대신 undefined 할당 사용입니다. links-100 벤치마크(동시 연결 100개) 최종 결과: 처리량이 477에서 1,041 req/s로 증가했고, 평균 레이턴시는 3,171ms에서 13.7ms로, p90은 10,001ms에서 23ms로 감소했으며, 성공률은 75.5%에서 100%로 향상되었습니다.
Erik의 이 영상은 VoidZero가 출시한 통합 JavaScript 툴체인 Vite+를 소개합니다. Vite+는 Vite 8, Vitest, Oxlint, Oxfmt, Rolldown, tsdown을 단일 vp 바이너리로 통합합니다. Erik은 curl로 Vite+를 설치하고 vp create로 Vue 프로젝트를 스캐폴딩한 뒤, 하나의 vite.config.ts 파일이 포매터, 린터, 테스트 러너 등 개별 설정 파일을 대체하는 방식을 시연합니다. fmt 설정 옵션을 통한 실시간 Oxfmt 포매팅, 저장 시 자동 import 정렬, 개별 도구 설치 없이 CI 파이프라인에서 vp test 실행 등을 실제로 보여줍니다. 또한 현재 Nuxt 프로젝트는 vite.config.ts를 무시하기 때문에 Vite+와 호환되지 않는다는 한계를 명확히 지적하며, 향후 업데이트로 이 문제가 해결될 때까지는 사용을 권장하지 않는다고 설명합니다. vp migrate 명령은 기존 Vite 프로젝트를 Vite+로 통합하려는 팀을 위한 마이그레이션 경로를 제공합니다.
Next.js 16.2는 next dev 시작 시간이 약 87% 빨라지고 서버 렌더링 속도가 25~60% 향상되는 등 전반적으로 상당한 성능 개선을 제공합니다. 렌더링 속도 향상은 React에 직접 기여한 변경 사항에서 비롯되었으며, JSON.parse reviver 콜백이 키-값 쌍마다 C++/JavaScript V8 경계를 넘나드는 방식 대신 순수 JavaScript 재귀 탐색을 사용하는 2단계 방식으로 대체되었습니다. 이 외에도 개발 터미널에서 Server Function 로그 확인, +Client/-Server 범례로 수화 불일치를 명확히 표시하는 Hydration Diff Indicator, 2~20배 빨라진ImageResponse가 포함됩니다. Link 컴포넌트에는 View Transitions를 위한 transitionTypes prop이 추가되었고, Adapters API가 안정화되었습니다. 실험적 기능으로는 컴포넌트 수준 에러 경계를 위한 unstable_catchError()와 세그먼트별 prefetch 요청을 하나로 통합하는 prefetchInlining이 도입되었습니다.
Erik의 이 영상은 VoidZero가 출시한 통합 JavaScript 툴체인 Vite+를 소개합니다. Vite+는 Vite 8, Vitest, Oxlint, Oxfmt, Rolldown, tsdown을 단일 vp 바이너리로 통합합니다. Erik은 curl로 Vite+를 설치하고 vp create로 Vue 프로젝트를 스캐폴딩한 뒤, 하나의 vite.config.ts 파일이 포매터, 린터, 테스트 러너 등 개별 설정 파일을 대체하는 방식을 시연합니다. fmt 설정 옵션을 통한 실시간 Oxfmt 포매팅, 저장 시 자동 import 정렬, 개별 도구 설치 없이 CI 파이프라인에서 vp test 실행 등을 실제로 보여줍니다. 또한 현재 Nuxt 프로젝트는 vite.config.ts를 무시하기 때문에 Vite+와 호환되지 않는다는 한계를 명확히 지적하며, 향후 업데이트로 이 문제가 해결될 때까지는 사용을 권장하지 않는다고 설명합니다. vp migrate 명령은 기존 Vite 프로젝트를 Vite+로 통합하려는 팀을 위한 마이그레이션 경로를 제공합니다.
Bun v1.3.11에는 두 가지 주요 새 API와 함께 대규모 버그 수정이 포함되었습니다. Bun.cron은 Linux에서는 crontab, macOS에서는 launchd, Windows에서는 Task Scheduler를 사용하여 OS 수준의 cron 작업을 등록하며, Cloudflare Workers Cron Triggers API 규약을 따릅니다. Bun.cron.parse는 @daily 등 명칭 단축어를 포함한 모든 cron 표현식에 대한 다음 실행 시각을 반환합니다. 새로운 Bun.sliceAnsi는 slice-ansi 및 cli-truncate npm 패키지를 대체하며, 순수 ASCII 입력에는 SIMD ASCII 고속 경로를 사용하여 ANSI SGR 코드와 그래핌 클러스터 경계를 보존하면서 컬럼 너비 기준으로 터미널 문자열을 슬라이싱합니다. Bun.markdown.render의 listItem 콜백은 이제 index, depth, ordered, start 메타데이터를 전달받아 정규식 후처리 없이 중첩 번호 체계를 구현할 수 있습니다. 버그 수정으로는 macOS의 dgram UDP 소켓, Windows의 네이티브 ARM64 심, Node.js의 fs/crypto/HTTP2 호환성 개선이 포함됩니다.
VoidZero의 3월 런치 위크에서는 JavaScript 툴체인 전반에 걸쳐 대규모 업데이트가 출시되었습니다. 핵심은 Vite 8으로, Rust 기반 Rolldown 번들러가 esbuild와 Rollup을 모두 대체하며 Rollup 대비 10~30배 빠른 속도를 제공합니다. Linear는 빌드 시간을 85%, Beehiiv는 64% 단축했다고 보고했습니다. Oxlint는 JS Plugins Alpha에서 기존 ESLint 플러그인과 거의 100% 호환성을 달성하며 최대 100배 빠른 린팅을 제공합니다. Vitest 4.1은 Vite 8 지원, 테스트 태그, 비동기 누수 감지, GitHub Actions 리포터를 추가했습니다. 새로운 Vite+ CLI는 Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown을 단일 vp 바이너리와 하나의 vite.config.ts로 통합합니다. 마지막으로 Evan You가 Vite 애플리케이션 전용 배포 플랫폼 Void를 발표했습니다.
수년간 JavaScript에서 JSON 파일을 import하는 것은 네이티브처럼 보였지만, 실제로는 빌드 시점에 번들러가 처리하는 방식이었습니다. 이제 import attributes 제안이 브라우저, Node.js, Deno, Bun에서 지원되면서 JSON을 런타임 퍼스트클래스 모듈로 직접 import할 수 있게 되었습니다: import config from './config.json' with { type: 'json' }. 명시적인 with { type: 'json' } 절은 엔진이 파일을 실행할지 파싱할지 추측할 필요를 없애고, 표준 ESM 캐싱 의미론과 일치시킵니다. 즉, 동일한 모듈은 한 번 파싱되어 모든 import 지점에서 공유됩니다. 번들러 기반 import와 달리 네이티브 JSON 모듈은 런타임에 fetch되며 일반 CORS 및 Content-Type 규칙을 따릅니다. 번들러는 인라이닝, 에셋 해싱, 코드 분할 면에서 여전히 유용하지만, 순수 JSON import에 있어서는 플랫폼이 툴링 수준을 따라잡았습니다.
React SSR 프레임워크 벤치마크: TanStack Start, React Router, Next.js
Platformatic은 카드 10,000장, 매물 50,000건 규모의 트레이딩 카드 마켓플레이스 앱을 TanStack Start, React Router, Next.js 세 프레임워크로 동일하게 구현한 뒤 AWS EKS에서 1,000 req/s 부하 테스트를 실시했습니다. TanStack Start(v1.157.16, 최적화 이후)는 평균 레이턴시 13ms, 성공률 100%를 기록하며 명확한 1위를 차지했습니다. 이전 버전은 p95 요청이 10초 타임아웃 한계에 부딪혀 성공률이 75%에 불과했으나, 7개 마이너 버전 만에 252배 개선을 이뤄냈습니다. React Router는 실패 없이 안정적으로 부하를 처리했습니다. Next.js 15.5.5는 평균 응답 시간 8~11초에 약 40%의 요청이 실패했으나, v16.2.0-canary.66으로 업그레이드 후 처리량이 두 배 이상 증가하고 평균 레이턴시가 6배 감소했습니다. 핵심 발견 사항은 flame 그래프를 프레임워크 팀과 공유함으로써 React RSC 역직렬화에서 JSON.parse reviver를 제거하는 수정이 이뤄졌으며, 이는 모든 React Server Components 사용자에게 75%의 속도 향상을 제공한다는 점입니다.
TanStack 팀은 @platformatic/flame CPU 프로파일링과 autocannon 부하 테스트를 활용하여 20개 이상의 PR로 TanStack Start의 SSR 처리량을 개선한 체계적인 프로세스를 상세히 기술합니다. 가장 큰 성과를 낸 세 가지 패턴은 다음과 같습니다: 일반적인 내부 경로에서 전체 WHATWG URL 파싱을 건너뛰는 저비용 isSafeInternal조건자로 무조건적인 new URL() 생성을 대체, isServer 빌드 타임 상수 뒤에 리액티브 스토어 구독을 게이팅하여 서버가 상태 변경 구독 대신 단순 스냅샷을 사용하도록 전환, 그리고 V8 HiddenClass 전환을 유발하는 딕셔너리 모드 프로퍼티 접근을 방지하기 위해 핫 패스 객체에서 delete 대신 undefined 할당 사용입니다. links-100 벤치마크(동시 연결 100개) 최종 결과: 처리량이 477에서 1,041 req/s로 증가했고, 평균 레이턴시는 3,171ms에서 13.7ms로, p90은 10,001ms에서 23ms로 감소했으며, 성공률은 75.5%에서 100%로 향상되었습니다.
12주차는 JavaScript 생태계 전반에 걸친 대규모 성능 혁신이 두드러진 한 주였습니다. Next.js 16.2는 dev 시작 시간이 약 87% 빨라지고, 서버 렌더링 속도가 25~60% 향상되었습니다. 이는 JSON.parse의 reviver 콜백을 순수 JavaScript 2단계 방식으로 교체하여 C++/V8 경계 비용을 제거한 결과입니다. Platformatic이 AWS EKS에서 1,000 req/s로 TanStack Start, React Router, Next.js를 비교한 SSR 벤치마크에서 발견된 이 수정 사항은 모든 React Server Components 사용자에게 75%의 속도 향상을 제공합니다. TanStack Start는 20개 이상의 PR을 통해 V8 HiddenClass 전환, 핫 패스 URL 파싱, 리액티브 스토어 구독을 최적화하며 성공률이 75.5%에서 100%로 향상되었습니다.
VoidZero의 3월 런치 위크는 프런트엔드 툴체인 전체를 통합했습니다. Vite 8은 esbuild와 Rollup을 모두 대체하는 Rolldown을 탑재해 10~30배의 속도를 제공하고, Oxlint는 기존 ESLint 플러그인과 거의 100% 호환되면서 최대 100배 빠른 JS Plugins Alpha에 도달했습니다. 새로운 Vite+ CLI(vp 바이너리)는 Vite, Vitest, Oxlint, Oxfmt, Rolldown, tsdown을 하나의 vite.config.ts로 통합합니다. 실제 팀들은 빌드 시간을 64~85% 단축했다고 보고했습니다. Bun v1.3.11은 OS 수준의 cron 스케줄링(Bun.cron)과 네이티브 터미널 문자열 슬라이서(Bun.sliceAnsi)를 추가했습니다. 한편 import attributes를 통한 네이티브 JSON 모듈(with { type: 'json' })이 브라우저, Node.js, Deno, Bun 전반에서 런타임 퍼스트클래스 기능으로 지원되며, JSON import에 표준 ESM 캐싱 의미론이 처음으로 적용됩니다.
Key Takeaways
Platformatic의 벤치마크 flamegraph를 통해 발견된 React RSC 역직렬화의 JSON.parse reviver 제거로 모든 React Server Components 사용자가 서버 렌더링 속도 75% 향상을 누리게 되었습니다.
VoidZero의 Vite+(vp 바이너리)는 Vite 8, Vitest, Oxlint, Oxfmt, Rolldown, tsdown을 하나의 설정 파일로 통합하며, Linear와 Beehiiv는 각각 빌드 시간을 85%, 64% 단축했다고 보고했습니다.
import attributes(with { type: 'json' })를 통한 네이티브 JSON 모듈이 브라우저, Node.js, Deno, Bun에서 기본 지원되어, 번들러 우회 없이 JSON import에 표준 ESM 캐싱 의미론이 적용됩니다.