JS frameworks, React/Vue/Svelte, and runtime updates Compiled for immediate developer deployment.
calendar_todaysummarizeWeek 5-2026
article
Node.js 단일 실행 파일 애플리케이션 빌드 개선하기
TAG: 심층 분석
Node.js 기여자 Joyee Cheung이 Single Executable Application(SEA) 빌드 프로세스를 Node.js 코어로 직접 이식하여 유지보수가 중단된 외부 도구 nodejs/postject 의존성을 제거한 과정을 상세히 설명합니다. v25.5.0에 포함된 새로운 --build-sea 플래그는 기존의 세 단계 워크플로우(바이너리 복사, --experimental-sea-config로 블롭 생성, postject로 주입)를 단일 명령으로 통합합니다. 내부적으로는 주입 로직을 postject에서 새로운 src/node_sea_bin.cc로 이식하고, 바이너리 크기를 약 5 MB만 증가시키는 LIEF 라이브러리를 정적 의존성으로 통합했습니다. 이 글에서는 v19.7.0 이후 SEA 개발의 역사, LIEF의 breaking API 변경 사항 이식의 어려움, 그리고 CMake 없이 LIEF를 빌드하기 위한 gyp 빌드 시스템 통합 방법을 다룹니다.
Node.js 25.5.0은 Joyee Cheung이 기여한(PR #61167) 새로운 --build-sea 플래그를 탑재하여 Single Executable Application 빌드를 단일 Node.js 코어 명령으로 통합하고, 기존 다단계 postject 워크플로우를 대체합니다. 또한 새로운 주입 로직을 지원하는 LIEF 라이브러리가 번들 의존성으로 추가되었습니다. 그 밖에 fs.watch의 ignore 옵션 추가(Matteo Collina), SQLite 방어 모드 기본 활성화 및 새로운 prepare 옵션, test_runner의 실패 예상 테스트 케이스 지원, 루트 인증서의 NSS 3.119 업데이트가 포함됩니다. npm은 11.8.0, ICU는 78.2, SQLite는 3.51.2, ada는 v3.4.0으로 각각 업그레이드되었습니다.
Bun v1.3.7은 광범위한 성능 향상과 새로운 API를 제공합니다. 배열을 사용한 Buffer.from()은 최대 50% 빨라졌고, Buffer.swap16()은 1.8배, Buffer.swap64()는 CPU 인트린직을 활용해 3.6배 빠르게 개선되었습니다. JavaScriptCore 엔진 업그레이드로 async/await, array.flat(), string.padStart/padEnd 성능이 향상되었으며 ARM64에서 ccmp 명령어 체인이 적용됩니다. 새로운 빌트인 API로는 wrap-ansi npm 패키지보다 33~88배 빠른Bun.wrapAnsi(), Bun.JSON5.parse/stringify, 스트리밍 JSONL 파싱을 위한 Bun.JSONL.parse/parseChunk, 그리고 Markdown 형식의 프로파일링 리포트를 생성하는 --cpu-prof-md / --heap-prof-md 플래그가 추가되었습니다. 또한 node:http2, fetch, bun:ffi, bun install, Bun.serve(), Windows 대용량 파일(>4 GB) 처리 등 60개 이상의 버그가 수정되었습니다.
ESLint v10.0.0-rc.2 출시 - ESLint - 플러그형 JavaScript 린터
TAG: 릴리스
ESLint v10.0.0-rc.2는 최종 릴리스 전 커뮤니티 피드백을 수집하기 위해 공개된 두 번째 릴리스 후보(RC)입니다. 이 RC는 핵심 strict 규칙의 전역 모드 리포트 범위에서 발생한 회귀 버그를 수정하고, 이전 v10 프리릴리스에서 null로 내보내지던 LegacyESLint와 FlatESLint 내보내기를 /use-at-your-own-risk 진입점에서 완전히 제거했습니다. 업데이트된 esquery 의존성도 포함되었습니다. npm i eslint@next 또는 eslint@10.0.0-rc.2를 직접 지정하여 설치할 수 있으며, 주요 변경 사항을 안내하는 마이그레이션 가이드도 제공됩니다.
Fotis Adamakis는 useCallback과 useMemo가 React 코드베이스에서, 특히 AI 도구에 의해 실질적인 성능 이점 없이 과도하게 사용되고 있다고 주장합니다. 이 글은 리렌더링이 기본적으로 비용이 적고, 두 훅 모두 컴포넌트의 리렌더링을 방지하지 않으며 단지 값이나 함수 참조를 메모이제이션할 뿐이라고 설명합니다. useMemo는 계산 비용이 높거나 React.memo가 리렌더링을 건너뛸 수 있도록 참조 안정성이 필요한 경우에만 실질적인 효과가 있습니다. useCallback은 실제로 비용이 높은 메모이제이션된 자식 컴포넌트에 콜백을 전달하거나, 함수가 useEffect의 의존성일 때만 정당화됩니다. 빈 의존성 배열은 오래된 클로저 버그의 흔한 원인으로 지적됩니다.
2026년 2월 Svelte 업데이트에서는 Svelte 5와 SvelteKit의 새로운 기능들을 소개합니다. Svelte 5.47.0은 최신 브라우저에서 CSS와 풍부한 HTML 콘텐츠로 <select> 요소를 커스터마이징하는 기능을 추가합니다. 5.48.0 버전은 svelte/compiler에서 경량 CSS AST 파서인 parseCss를 내보냅니다. SvelteKit 2.50.0은 실험적 원격 폼 함수에서 buttonProps를 제거하고 새로운 as('submit', 'register') API로 대체하는 breaking change를 도입합니다. adapter-node5.5.0은 keepAliveTimeout과 headersTimeout의 환경 변수 설정을 추가하고, adapter-vercel6.3.1은 관측 가능성을 위해 원격 함수 호출을 /_app/remote 경로로 라우팅합니다.
React 핵심 팀 Ricky Hanlon에게 배우는 use()와 비동기 React · Learn With Jason
React 코어 팀 멤버 Ricky Hanlon이 Jason Lengstorf와 함께 라이브 페어 프로그래밍 세션에서 비동기 React API를 활용한 투두 앱을 만들어 봅니다. 기존의 useEffect + useState + "dirty flag" 방식의 데이터 페칭 패턴에서 시작하여, 클라이언트 사이드 await에 해당하는 use() 훅, 선언적 로딩 상태를 위한 Suspense 경계, 뮤테이션 중 UI가 블로킹되지 않도록 하는 useTransition, 각 목록 항목에 즉각적인 낙관적 업데이트를 제공하는 useOptimistic을 순차적으로 도입합니다. Hanlon은 await 이후 startTransition으로 상태 업데이트를 감싸면 의도치 않은 Suspense 경계 깜빡임을 방지할 수 있다고 설명하며, 이러한 패턴을 데이터 페칭 및 컴포넌트 라이브러리에 통합하는 데 초점을 맞춘 GitHub 워킹 그룹 reactwg/async-react를 소개합니다.
Node.js 기여자 Joyee Cheung이 Single Executable Application(SEA) 빌드 프로세스를 Node.js 코어로 직접 이식하여 유지보수가 중단된 외부 도구 nodejs/postject 의존성을 제거한 과정을 상세히 설명합니다. v25.5.0에 포함된 새로운 --build-sea 플래그는 기존의 세 단계 워크플로우(바이너리 복사, --experimental-sea-config로 블롭 생성, postject로 주입)를 단일 명령으로 통합합니다. 내부적으로는 주입 로직을 postject에서 새로운 src/node_sea_bin.cc로 이식하고, 바이너리 크기를 약 5 MB만 증가시키는 LIEF 라이브러리를 정적 의존성으로 통합했습니다. 이 글에서는 v19.7.0 이후 SEA 개발의 역사, LIEF의 breaking API 변경 사항 이식의 어려움, 그리고 CMake 없이 LIEF를 빌드하기 위한 gyp 빌드 시스템 통합 방법을 다룹니다.
React 핵심 팀 Ricky Hanlon에게 배우는 use()와 비동기 React · Learn With Jason
React 코어 팀 멤버 Ricky Hanlon이 Jason Lengstorf와 함께 라이브 페어 프로그래밍 세션에서 비동기 React API를 활용한 투두 앱을 만들어 봅니다. 기존의 useEffect + useState + "dirty flag" 방식의 데이터 페칭 패턴에서 시작하여, 클라이언트 사이드 await에 해당하는 use() 훅, 선언적 로딩 상태를 위한 Suspense 경계, 뮤테이션 중 UI가 블로킹되지 않도록 하는 useTransition, 각 목록 항목에 즉각적인 낙관적 업데이트를 제공하는 useOptimistic을 순차적으로 도입합니다. Hanlon은 await 이후 startTransition으로 상태 업데이트를 감싸면 의도치 않은 Suspense 경계 깜빡임을 방지할 수 있다고 설명하며, 이러한 패턴을 데이터 페칭 및 컴포넌트 라이브러리에 통합하는 데 초점을 맞춘 GitHub 워킹 그룹 reactwg/async-react를 소개합니다.
Node.js 25.5.0은 Joyee Cheung이 기여한(PR #61167) 새로운 --build-sea 플래그를 탑재하여 Single Executable Application 빌드를 단일 Node.js 코어 명령으로 통합하고, 기존 다단계 postject 워크플로우를 대체합니다. 또한 새로운 주입 로직을 지원하는 LIEF 라이브러리가 번들 의존성으로 추가되었습니다. 그 밖에 fs.watch의 ignore 옵션 추가(Matteo Collina), SQLite 방어 모드 기본 활성화 및 새로운 prepare 옵션, test_runner의 실패 예상 테스트 케이스 지원, 루트 인증서의 NSS 3.119 업데이트가 포함됩니다. npm은 11.8.0, ICU는 78.2, SQLite는 3.51.2, ada는 v3.4.0으로 각각 업그레이드되었습니다.
Bun v1.3.7은 광범위한 성능 향상과 새로운 API를 제공합니다. 배열을 사용한 Buffer.from()은 최대 50% 빨라졌고, Buffer.swap16()은 1.8배, Buffer.swap64()는 CPU 인트린직을 활용해 3.6배 빠르게 개선되었습니다. JavaScriptCore 엔진 업그레이드로 async/await, array.flat(), string.padStart/padEnd 성능이 향상되었으며 ARM64에서 ccmp 명령어 체인이 적용됩니다. 새로운 빌트인 API로는 wrap-ansi npm 패키지보다 33~88배 빠른Bun.wrapAnsi(), Bun.JSON5.parse/stringify, 스트리밍 JSONL 파싱을 위한 Bun.JSONL.parse/parseChunk, 그리고 Markdown 형식의 프로파일링 리포트를 생성하는 --cpu-prof-md / --heap-prof-md 플래그가 추가되었습니다. 또한 node:http2, fetch, bun:ffi, bun install, Bun.serve(), Windows 대용량 파일(>4 GB) 처리 등 60개 이상의 버그가 수정되었습니다.
ESLint v10.0.0-rc.2 출시 - ESLint - 플러그형 JavaScript 린터
ESLint v10.0.0-rc.2는 최종 릴리스 전 커뮤니티 피드백을 수집하기 위해 공개된 두 번째 릴리스 후보(RC)입니다. 이 RC는 핵심 strict 규칙의 전역 모드 리포트 범위에서 발생한 회귀 버그를 수정하고, 이전 v10 프리릴리스에서 null로 내보내지던 LegacyESLint와 FlatESLint 내보내기를 /use-at-your-own-risk 진입점에서 완전히 제거했습니다. 업데이트된 esquery 의존성도 포함되었습니다. npm i eslint@next 또는 eslint@10.0.0-rc.2를 직접 지정하여 설치할 수 있으며, 주요 변경 사항을 안내하는 마이그레이션 가이드도 제공됩니다.
Fotis Adamakis는 useCallback과 useMemo가 React 코드베이스에서, 특히 AI 도구에 의해 실질적인 성능 이점 없이 과도하게 사용되고 있다고 주장합니다. 이 글은 리렌더링이 기본적으로 비용이 적고, 두 훅 모두 컴포넌트의 리렌더링을 방지하지 않으며 단지 값이나 함수 참조를 메모이제이션할 뿐이라고 설명합니다. useMemo는 계산 비용이 높거나 React.memo가 리렌더링을 건너뛸 수 있도록 참조 안정성이 필요한 경우에만 실질적인 효과가 있습니다. useCallback은 실제로 비용이 높은 메모이제이션된 자식 컴포넌트에 콜백을 전달하거나, 함수가 useEffect의 의존성일 때만 정당화됩니다. 빈 의존성 배열은 오래된 클로저 버그의 흔한 원인으로 지적됩니다.
2026년 2월 Svelte 업데이트에서는 Svelte 5와 SvelteKit의 새로운 기능들을 소개합니다. Svelte 5.47.0은 최신 브라우저에서 CSS와 풍부한 HTML 콘텐츠로 <select> 요소를 커스터마이징하는 기능을 추가합니다. 5.48.0 버전은 svelte/compiler에서 경량 CSS AST 파서인 parseCss를 내보냅니다. SvelteKit 2.50.0은 실험적 원격 폼 함수에서 buttonProps를 제거하고 새로운 as('submit', 'register') API로 대체하는 breaking change를 도입합니다. adapter-node5.5.0은 keepAliveTimeout과 headersTimeout의 환경 변수 설정을 추가하고, adapter-vercel6.3.1은 관측 가능성을 위해 원격 함수 호출을 /_app/remote 경로로 라우팅합니다.
5주차 JavaScript 런타임 영역은 Node.js v25.5.0 출시와 함께 주목받았습니다. 핵심은 --build-sea 플래그로, Single Executable Application 빌드를 Node.js 코어에 직접 통합하여 유지보수가 중단된 postject 도구에 대한 불안정한 의존성을 제거했습니다. 기여자 Joyee Cheung의 심층 분석 글은 변경 사항 뒤에 담긴 기술적 배경을 상세히 다뤄 이번 주의 추천 읽을거리로 선정되었습니다.
Bun v1.3.7도 함께 출시되어 Buffer.swap64()의 3.6배 속도 향상과 33~88배 빠른 ANSI 래핑 등 폭넓은 성능 개선을 제공하며, JSON5 및 스트리밍 JSONL API도 기본 지원합니다. ESLint v10.0.0-rc.2는 레거시 exports 제거를 완료하며 주요 오버홀을 안정화 단계로 이끌었습니다. React 측에서는 코어 팀 멤버가 비동기 React 패턴을 라이브로 시연했으며, AI 도구가 useCallback과 useMemo를 과도하게 사용하는 현실에 문제를 제기하는 의견도 주목받았습니다.
전반적으로 이번 주는 JavaScript 에코시스템이 기술 부채를 적극적으로 정리하는 모습을 보여줬습니다. 다단계 워크플로를 단일 명령으로 통합하고, 레거시 API를 제거하며, 실제로 가치 있는 성능 최적화가 무엇인지 재고하는 흐름이 두드러졌습니다.
Key Takeaways
Node.js 25.5.0에 탑재된 --build-sea 플래그가 세 단계의 Single Executable Application 워크플로를 단일 명령으로 통합했습니다.
Bun v1.3.7은 최대 3.6배의 Buffer 성능 향상과 기본 JSON5/JSONL API를 제공하며 Node.js와의 처리량 격차를 더욱 벌렸습니다.
ESLint v10 RC2는 LegacyESLint exports 제거를 완료했습니다. 정식 릴리스 전에 지금 바로 마이그레이션 가이드를 실행해야 할 시점입니다.