JSer.info #761 - Node.js 20.20.0/22.22.0/24.13.0/25.3.0 보안 업데이트가 공개되었다.
8건의 취약성 수정되었다. 주요한 수정으로, Buffer.alloc이나 TypedArray가 초기화되어 있지 않은 메모리를 포함할 가능성이 있을 수 있는 Race Condition 수정(CVE-2025-55131), 심볼릭 링크를 사용해 Permission Model 바이패스 수정(CVE-2025-55130), 부정한 HTTP/2 HEADERS 프레임에서 서버가 크래시하는 문제 수정(CVE-2025-59465)이 포함된다.
또한, async_hooks 유효할 때에 스택 오버플로우 에러가 캐치되지 않는 문제도 수정됐다.
async_hooks는 Next.js이나 Datadog 등에서 APM 도구로 널리 이용되고 있다.
이 문제의 자세한 사항은, 다음 글에 해설.
Chrome 144가 출시되었다.
CSS의 ::search-text에서 페이지 내 검색 스타일링 지원 @scroll-state: scrolled 지원, View Transitions의 waitUntil() 추가 등의 CSS 관련 기능이 되었다. 또한, <geolocation> 요소 추가, Temporal API 지원, clipboardchange 이벤트 추가 등 Web API 관련 업데이트도 포함된다.
Firefox 147가 출시되었다.
Apple Silicon 디바이스에서 WebGPU가 기본적으로 유효화되었다. 또한, Navigation API, CSS anchor positioning, CSS Module Scripts 지원이 추가되었다. CompressionStream/DecompressionStream가 Brotli 지원, Service Worker에서 type: module 지원된다.
알림
2026년 1월 16일로 JSer.info은 15주년을 맞이했습니다.
다음 글에는, JSer.info 데이터를 사용한 과거 15년간 JavaScript 동향을 돌아본다.
To support JSer.info
- 😘 Recommend JSer.info to your friends!
- ❤️ Support @azu on GitHub Sponsors/JSer.info Sponsors
- 🐦 Follow @jser_info on X(Twitter)
헤드라인
ESLint v10.0.0-rc.0 released - ESLint - Pluggable JavaScript Linter
eslint.org/blog/2026/01/eslint-v10.0.0-rc.0-released/
ESLint v10.0.0 RC.0 출시.
RuleTester 개선, max-params 규칙에 countThis 옵션 추가
Release 3.0.0-rc1 · qunitjs/qunit
github.com/qunitjs/qunit/releases/tag/3.0.0-rc1
QUnit 3.0.0-rc1 출시.
Node.js 16 이하 지원과 PhantomJS 지원 삭제.
네이티브 ESM 대응 추가, 기본적으로 3초 테스트 타임 아웃 유효, assert.expect()에서 assert.step()를 제거하는 변경.
HTML Reporter 디자인 업데이트와 성능 개선, 각종 경고 에러 변경
Alpha release of moon v2 now available! | moonrepo
moonrepo.dev/blog/moon-v2-alpha
moon v2 α 출시.
YAML 이외 설정 파일 지원, 툴체인을 Wasm 플러그인에서 실행하도록 변경
Release @pandacss/[email protected] · chakra-ui/panda
github.com/chakra-ui/panda/releases/tag/%40pandacss%2Fdev%401.8.0
Panda CSS 1.8.0 출시.
panda init-mcp로 MCP서버 설정 가능
Bun v1.3.6 | Bun Blog
Bun v1.3.6 출시.
tar 파일을 다루는 Bun.Archive API, 주석 포함된 JSON를 다루는 Bun.JSONC API 추가.
Bun.build()에서 esbuild 호환의 metafile 옵션 추가.
WebSocket가 HTTP/HTTPS 프록시 지원, S3 Requester Pays 지원.
각종 성능 개선, Node.js 호환성 개선.
Node.js — Tuesday, January 13, 2026 Security Releases
nodejs.org/en/blog/vulnerability/december-2025-security-releases
Node.js 20.20.0/22.22.0/24.13.0/25.3.0 보안 출시.
8건 취약점이 수정됨.
Buffer.alloc나 TypedArray가 초기화되어 있지 않은 메모리를 포함하는 가능성을 갖은 Race Condition 수정(CVE-2025-55131).
심볼릭링크를 사용한 Permission Model 바이패스 수정(CVE-2025-55130).
부정한 HTTP/2 HEADERS 프레임에서 서버가 클래시 문제를 수정(CVE-2025-59465).
또한, async_hooks 유효할 때에 스택오버플로우를 캐치되지 않은 문제, TLS 클라이언트 증명서 처리의 메모리 누수 수정.
Chrome 144 | Release notes | Chrome for Developers
developer.chrome.com/release-notes/144
Chrome 144 출시.
CSS의 ::search-text에서 페이지 내 검색 스타일링 지원, @scroll-state: scrolled 지원, View Transitions의 waitUntil() 추가.
<geolocation> 요소 추가, Temporal API 지원, clipboardchange 이벤트 추가.
WebGPU의 Uniform buffer 표준 레이아웃에서 16바이트 정렬 요구사항 삭제, subgroup_id 기능 추가.
Privacy Sandbox에서 구현된 기능 비권장
Copilot SDK in technical preview - GitHub Changelog
github.blog/changelog/2026-01-14-copilot-sdk-in-technical-preview/
GitHub Copilot SDK가 테크니컬 프리뷰 공개.
Node.js/TypeScript, Python, Go, .NET의 4가지 언어로 이용 가능.
GitHub Copilot CLI에서 프로그램에서 접근가능한 SDK로, 멀티턴 대화나 커스텀 도구 정의, 클라이언트/세션의 라이프사이클 관리.
Firefox 147.0, See All New Features, Updates and Fixes
www.firefox.com/en-US/firefox/147.0/releasenotes/
Firefox 147 출시.
Apple Silicon 디바이스 WebGPU 유효.
Accept-Language 헤더의 q 값을 다른 브라우저에 맞춰 조절.
Navigation API, CSS anchor positioning 지원, CSS Module Scripts 지원.
CompressionStream/DecompressionStream가 Brotli 지원, Servie Worker에서 type: module 지원
Prettier 3.8: Support for Angular v21.1 · Prettier
prettier.io/blog/2026/01/14/3.8.0
Prettier 3.8 출시.
Angular v21.1 새로운 구문 @switch 블록 내에서 연속 된 @case 스테이트먼트, 배열/객체/함수 호출하는 Spread 요소 지원.
Markdown 파일 내에 Angular 코드 블록(angular-ts, angular-html) 포맷 대응
Electron 40.0.0 | Electron
www.electronjs.org/blog/electron-40-0
Electron 40.0.0 출시.
Chromium 144/Node.js 24.11/V8 14.4으로 업그레이드.
렌더러 프로세스에서 클립보드 API의 직접 접근을 비권장으로に, macOS의 dSYM 파일이 zip에서 tar.xz 형식으로 변경.
app.isHardwareAccelerationEnabled() 메서드 추가, 오프 스크린 렌더링에서 HDR 컬러페이스 대응.
Astro is joining Cloudflare
blog.cloudflare.com/astro-joins-cloudflare/
Astro Technology Company가 Cloudflare에 인수.
Astro은 오픈소스에 MIT 라이센스 유지.
또한 Astro 6에는, Vite Environments 기반 개발 서버에서 로컬 개발할 때에 Cloudflare Workers 런타임(workerd)으로 실행가능하도록 할 예정.
읽을거리
Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users
nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks
Node.js의 async_hooks에 스택오버 플로우 문제에 대하여.
AsyncLocalStorage은 Next.js나 Datadog 등 많은 프레임워크나 도구에서 이용중이라, 영향 범위가 넓음.
어떤 구조에서 스택 영역 고갈 문제가 발생하는지에 대해 해설됨
Streaming JSON in just 200 lines of JavaScript
krasimirtsonev.com/blog/article/streaming-json-in-just-200-lines-of-javascript
JSON를 스트리밍하는 방법에 대한 글.
서버측에서 비동기 데이터(Promise)를 플레이스홀더로 변환하고, NDJSON 형식과 Transfer-Encoding: chunked 사용한 데이터를 단계적으로 보냄.
클라이언트 측에서는 Fetch API으로 스트림을 읽고, 플레이스홀더를 실제 데이터로 갈아 끼우는 구현에 대하여.
Introducing: React Best Practices - Vercel
vercel.com/blog/introducing-react-best-practices
Vercel가 10년 이상 React・Next.js 최적화 지식을 정리한 react-best-practices 레포지토리 공개.
AI 에이전트나 LLM 대상으로 최적화된 규칙 모음집으로, 40개 이상 규칙이 8 카테고리로 분류.
워터폴 배제, 번들 크기 절감, 리렌더링 최적화 패턴을, CRITICAL에서 LOW까지 우선 순위를 붙여 정리함.
웹사이트, 서비스, 문서
VibiumDev/vibium: Browser automation for AI agents and humans
Selenium BiDi 기반에 브라우저 조작하는 MCP 서버
coder/ghostty-web: Ghostty for the web with xterm.js API compatibility
github.com/coder/ghostty-web?tab=readme-ov-file
브라우저 상에 동작하는 터미널 에뮬레이터 라이브러리.
libghostty를 Wasm에 컴파일을 이용, xterm.js 호환 API 제공.
xterm.js과 비교해서 복잡한 문제 체계의 정확한 Grapheme 처리, XTPUSHSGR/XTPOPSGR 지원.
소프트웨어, 도구, 라이브러리
MotiaDev/motia: Multi-Language Backend Framework that unifies APIs, background jobs, queues, workflows, streams, and AI agents with a single core primitive with built-in observability and state management.
Step 단위에서 처리를 작성하기 위한 백엔드 프레임워크.
Step은 여러 JavaScript나 Python 등에서 여러 언어로 작성 가능
vercel-labs/agent-browser: Browser automation CLI for AI agents
github.com/vercel-labs/agent-browser
AI 에이전트 대상 헤드리스 브라우저 자동화 CLI.
Rust의 CLI와 Node.js 데몬(Playwright 이용)으로 구성, 클라이언트・데몬 구성으로 동작함.
접근성 트리에서 AI 대상 최적화된 스냅샷을 얻는 기능이나, ARIA 로컬이나 라벨에서 요소 검출, WebSocket에서 브라우저 뷰포트의 스트리밍을 제공.
