terminal
Weekly Digest // JS_FRAMEWORKS — Week 29-2026
codeWeekly Report

Nuxt 4.5 릴리스 — Nuxt Blog — 2026년 29주 자바스크립트

JS frameworks, React/Vue/Svelte, and runtime updates

calendar_todaysummarizeWeek 29-2026bolt2 CRITICAL
프레임워크 업데이트

Nuxt 4.5 릴리스 — Nuxt Blog

2026년 718일 출시된 Nuxt 4.5는 빌드 레이어를 Vite 8(Rolldown 기반), Rspack 2(@rsbuild/core 재구축), unhead v3(동기 엔진 및 엄격한 useHead 타이핑)으로 동시에 업그레이드하였습니다. 실험적 ssrStreaming: true 플래그는 HTML 셸을 즉시 플러시하고 본문을 스트리밍하며, 설정 가능한 botRegex로 봇에게는 자동으로 비활성화됩니다. 단, 스트리밍 시작 후의 setResponseStatus() 호출이나 쿠키 쓰기는 클라이언트에 전달되지 않습니다. 새로운 안정적 오류 코드 시스템(NUXT_E1001, NUXT_B5001)은 모든 빌드 및 런타임 진단에 사람이 읽을 수 있는 원인/수정 내용을 첨부하며, 프로덕션 번들에서는 제거됩니다. Nuxt 3은 2026년 7월 31일에 서비스가 종료되므로, 프로덕션 업그레이드 전에 npx nuxt upgrade --dedupe 실행과 커스텀 Vite 플러그인 검토를 권장합니다.

Nuxt 4.5 릴리스 — Nuxt Blog
Read Articlearrow_forward
Video · 생태계6:57

AG-UI로 연결하는 Vercel Native와 TanStack AI

Jack Herrington은 Zig 기반의 XML 선언적 UI(열·행·스크롤 섹션)로 구축된 Vercel Native 데스크톱 앱이 AG-UI 오픈 프로토콜을 통해 SSE로 TanStack AI 채팅 서버와 통신하는 모노레포를 시연합니다. Zig 프런트엔드와 Node 백엔드 사이에 커스텀 접착 코드가 전혀 없습니다. TanStack AI 서버(포트 3000)는 npx create-tanstack --template ai의 기본 결과물로, 사용 가능한 환경변수 API 키를 기반으로 Anthropic·OpenAI·Gemini·Ollama 어댑터를 자동 선택한 후 chat() 함수를 통해 AG-UI 패킷을 스트리밍합니다. 웹 클라이언트에서는 TanStack AI의 React 훅인 useChat이 AG-UI SSE 패킷을 직접 소비하며, Zig 클라이언트에서는 직접 작성한 ag-ui 모듈이 JSON 토큰을 파싱하고 tool_call_end 이벤트를 기타 추천 콜아웃으로 매핑합니다. 이 데모는 AG-UI를 사용하는 모든 서버가 프로토콜 협상 없이 어떤 AG-UI 클라이언트에서도 소비될 수 있음을 보여줍니다.

AI_INFOGRAPHIC
AG-UI로 연결하는 Vercel Native와 TanStack AI — infographicWATCH_VIDEOarrow_forward
Article · 런타임READ TIME: 2m

Node.js 20, 2026년 10월 1일부로 Vercel에서 지원 종료

Node.js 20의 업스트림 서비스 종료일인 2026년 4월 30일에 이어, Vercel은 2026년 10월 1일에 프로젝트 설정에서 Node.js 20을 비활성화하며, Node 20으로 고정된 서버리스 함수의 새로운 배포는 오류가 발생합니다. 단, 이미 배포된 함수는 계속 작동합니다. vercel@latest를 설치한 후 vercel project ls --update-required를 실행하면 영향을 받는 프로젝트를 즉시 확인할 수 있습니다. 권장 업그레이드 방법은 package.jsonengines 필드에 "node": "24.x"를 설정하는 것으로, 다음 배포 시 프로젝트 설정을 재정의합니다. 기간 내 마이그레이션이 어려운 팀은 프로젝트 루트에 Dockerfile.vercel을 추가해 컨테이너화할 수 있지만, 이후 Node 보안 패치는 직접 관리해야 합니다.

READ_FULL_LOGarrow_forward
Article · 프레임워크 업데이트READ TIME: 4m

Astro 7.1 릴리스

2026년 716일에 출시된 Astro 7.1은 정적 사이트 프레임워크에 네 가지 집중적인 개선 사항을 추가하였습니다. CSP는 script-src-elemscript-src와 분리하고 style-src-attrstyle-src와 분리하는 새로운 내장 디렉티브를 지원하여, 외부 CSS 규칙을 완화하지 않고도 안전하지 않은 인라인 스타일을 허용할 수 있습니다. paginate() 헬퍼는 생성된 next/prev URL이 실제 배포 레이아웃에 맞도록 format 함수 파라미터를 지원합니다. astro dev에 추가된 --ignore-lock 플래그는 Astro 7에서 도입된 에이전트 잠금 파일 검사를 우회하여 여러 개의 의도적인 개발 서버 인스턴스를 실행할 수 있게 합니다. 대규모 콘텐츠 컬렉션의 경우, glob()의 새로운 deferRender: true 옵션이 동기화 시 적극적인 HTML 캐싱을 건너뛰며, 실험적 collectionStorage: "chunked" 플래그는 .astro/data-store.json10MB 청크로 분할합니다.

READ_FULL_LOGarrow_forward
Article · 도구READ TIME: 5m

Codemod로 ESLint 마이그레이션 자동화하기

ESLint와 Codemod(OpenJS Foundation 파트너, 엔진 JSSG는 React·Node.js·Nuxt.js·pnpm 마이그레이션을 지원)가 파트너십을 맺고 v8v9v9v10 마이그레이션을 자동화하였으며, 모든 코드모드는 eslint/codemods 저장소에서 관리되고 GitHub Actions를 통해 Codemod Registry에 자동 게시됩니다. v8-to-v9의 경우, npx codemod @eslint/v8-to-v9-configpackage.json에서 eslintConfig를 추출하고 플랫 eslint.config.mjs를 생성하며, no-unused-vars·camelcase6개 이상의 규칙 옵션 변경을 처리합니다. 동반 코드모드인 @eslint/v8-to-v9-custom-rulescontext.getSource()sourceCode.getText()로 변환하고 함수 스타일 규칙을 metacreate가 있는 객체 형식으로 변환합니다. v9-to-v10 레시피(npx codemod @eslint/v9-to-v10)는 설정·커스텀 규칙·RuleTester·Linter/ESLint API를 처리하는 4개의 개별 코드모드를 포함합니다. 동적 require()--ext CLI 사용과 같은 복잡한 로직은 실행 후 수동 검토가 필요합니다.

READ_FULL_LOGarrow_forward
Article · 아키텍처READ TIME: 6m

Preact의 비동기 하이드레이션

Preact 기여자 Jovi De Croock은 Preact가 이미 재개 하이드레이션을 지원한다고 설명합니다. 서버의 renderToStringAsync와 클라이언트의 일시 정지-재개 방식을 통해 Suspense 경계가 독립적으로 하이드레이션됩니다. 그러나 기존 알고리즘은 일시 중단된 서브트리당 단 하나의 DOM 노드만 추적하여, 컴포넌트가 null을 반환하거나 여러 루트를 가진 Fragment를 반환할 때 불일치가 발생하였습니다. Preact 11의 일부로 출시될 Hydration 2.0renderToStringAsync가 내보내는 명시적인 시작/종료 마커로 이 가정을 교체하여, Preact가 재개 전에 일시 중단된 경계의 전체 DOM 범위를 파악할 수 있게 합니다. 아직 미해결 문제로 useId() 안정성이 남아 있습니다. 비동기 Suspense 형제 간의 id 드리프트를 수정하는 PR #5108은 클라이언트 전용 브랜치가 트리 위치를 이동시켜 동일한 id 충돌 버그를 재도입함으로써 #5135에서 되돌려졌습니다. 서버가 일시 중단 자식을 만나는 즉시 셸과 폴백을 플러시하는 스트리밍 SSR도 Preact 11에서 개발 중입니다.

READ_FULL_LOGarrow_forward
Article · 아키텍처READ TIME: 15m

TanStack Table V9 반응성의 내부 구조

저자 Riccardo PerraTanStack Table V9Proxy를 통해 get* 메서드를 computed()로 래핑하던 Angular 어댑터 기반의 프록시 방식에서, 노티파이어 브리지와 클래스 기반 Store/Derived API를 거쳐, 페이지네이션·행 선택·열 크기 조정·필터 등의 기능별 아톰이 @tanstack/store 0.9의 시그널 기반 createStore/createAtom API로 구축된 반응성 그래프에 존재하는 현재 아키텍처로 진화한 과정을 추적합니다. PR #6181optionsoptionsStore로 이동시켜 enableRowSelection 같은 라이브 입력이 상태 읽기와 동일한 의존성 그래프에 참여하게 하였으며, PR #6234는 단일 상태 스냅샷을 기능별 아톰으로 분리하고, PR #6237TableReactivityBindings 인터페이스(createWritableAtom, createReadonlyAtom, batch, schedule, untrack)를 통해 아톰을 프레임워크 교환 가능하게 만들었습니다. Angular, Solid, Vue는 네이티브 시그널을 제공하며, React는 선택적 세분화 렌더링을 위해 Subscribe 컴포넌트와 useSelector를 갖춘 @tanstack/react-store를 사용합니다. V9은 새로운 Preact, Alpine, Ember 어댑터를 포함해 총 9개의 프레임워크 어댑터를 출시합니다.

READ_FULL_LOGarrow_forward
summarizeDigest_Summary

29주차는 주요 프레임워크 릴리스와 모든 Vercel 사용자가 캘린더에 표시해야 할 런타임 마감일로 가득했습니다. Nuxt 4.5Vite 8, Rspack 2, 새로운 Rsbuild 기반 파이프라인이라는 세 가지 빌드 레이어 업그레이드를 동시에 출시하고, 실험적 SSR 스트리밍, 안정적인 오류 코드 시스템, 새로운 컴포저블을 추가했으며, Nuxt 3의 서비스 종료일을 2026년 7월 31일로 공표하였습니다. Astro 7.1세분화된 CSP 디렉티브, paginate()format 함수, --ignore-lock 개발 서버 플래그, 그리고 대규모 콘텐츠 컬렉션을 위한 실험적 collectionStorage: "chunked" 옵션을 도입하였습니다.

내부적으로는 두 편의 심층 엔지니어링 글이 반응성 재설계를 자세히 설명하였습니다. TanStack Table V9은 전체 반응성 경계를 Table API 아래로 이동시켜, 9개의 프레임워크 어댑터 각각이 페이지네이션, 행 선택, 열 크기 조정과 같은 기능 상태 아톰을 네이티브 시그널 또는 @tanstack/store 프리미티브에 직접 연결할 수 있게 합니다. 한편 Preact 기여자 Jovi De Croock은 Preact 11Hydration 2.0이 취약한 단일 노드 재개 하이드레이션 가정을 명시적인 DOM 범위 마커로 교체하여, 노드가 없거나 여러 노드를 생성하는 경우에도 Suspense 경계를 안정적으로 만든다고 상세히 설명하였습니다.

툴링 분야에서는 ESLint와 Codemod가 공식 파트너십을 발표하고, @eslint/v8-to-v9-config, @eslint/v8-to-v9-custom-rules, 그리고 네 부분으로 구성된 @eslint/v9-to-v10 레시피를 Codemod 레지스트리에서 제공하며 GitHub Actions를 통해 자동으로 게시하고 있습니다. Jack Herrington은 AG-UI 오픈 프로토콜이 Vercel Native(Zig + XML) 데스크톱 앱과 TanStack AI 서버 사이에서 별도의 접착 코드 없이 SSE로 통신하는 방법을 시연하였습니다.

이번 주의 가장 중요한 마감: Vercel은 2026년 10월 1일에 프로젝트 설정에서 Node.js 20비활성화할 예정이며, Node 20 기반의 새 배포는 오류가 발생합니다. 권장 업그레이드 대상은 Node 24입니다. 기간 내에 마이그레이션할 수 없는 팀은 Dockerfile.vercel을 통해 컨테이너화할 수 있지만, 보안 패치는 직접 관리해야 합니다.

Key Takeaways
  • Nuxt 4.5는 하나의 릴리스에 Vite 8, Rspack 2, Rsbuild를 통합하고 Nuxt 3 EOL을 2026년 731일로 설정하였습니다. 배포 전에 `npx nuxt upgrade --dedupe`를 실행하고 커스텀 Vite 플러그인을 검토하십시오.
  • TanStack Table V9과 Preact Hydration 2.0은 서로 다른 각도에서 동일한 아키텍처 문제를 해결하였습니다. 불필요한 전체 리렌더링과 하이드레이션 불일치를 방지하는 세분화된 경계 인식 반응성이 핵심입니다.
  • 2026년 101일은 Vercel에서 Node.js 20의 강제 종료일입니다. 지금 바로 package.json에 `engines: { "node": "24.x" }`를 설정하거나, Dockerfile.vercel을 통한 컨테이너 전환 계획을 수립하십시오.