<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>JSer.info</title>
    <description>JavaScriptの最新情報を紹介する週刊ブログ</description>
    <link>https://jser.info/ko/</link>
    <atom:link href="https://jser.info/ko/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Wed, 29 Apr 2026 10:06:31 +0900</pubDate>
    <lastBuildDate>Wed, 29 Apr 2026 10:06:31 +0900</lastBuildDate>
    <generator>Jekyll v3.9.0</generator>
    
      <item>
        <title>2026-04-15: pnpm 11 RC 0, webpack 5.106, Servo v0.1.0</title>
        <description>&lt;p&gt;JSer.info #769 - pnpm v11.0.0 RC 0가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/releases/tag/v11.0.0-rc.0&quot;&gt;Release pnpm 11 RC 0 · pnpm/pnpm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pure ESM 패키지로 이행, Node.js 18부터 21까지 지원 종료했다.&lt;br&gt;
&lt;code&gt;.npmrc&lt;/code&gt;은 인증/레지스트리 설정만 한정했으며, 그 외 설정은 &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt;으로 이행, &lt;code&gt;pnpm server&lt;/code&gt; 명령어 삭제 같은 많은 파괴적 변경이 포함된다.&lt;br&gt;
또한, &lt;code&gt;pnpm ci&lt;/code&gt; 명령어 추가, &lt;code&gt;pnpm sbom&lt;/code&gt;으로 SBOM 생성 가능하다.&lt;br&gt;
&lt;code&gt;minimumReleaseAge&lt;/code&gt; 기본적으로 1일 설정, &lt;code&gt;blockExoticSubdeps&lt;/code&gt; 기본값을 &lt;code&gt;true&lt;/code&gt;로 변경, 공급망 보안 강화도 있다.&lt;br&gt;
그 외로는, 스토어 인덱스에 SQLite 사용하도록 변경, &lt;code&gt;undici&lt;/code&gt; 사용에 의한 HTTP 리퀘스트 개선도 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;webpack 5.106가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://webpack.js.org/blog/2026-04-08-webpack-5-106/&quot;&gt;Webpack 5.106 | webpack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plugin Validation Hook(&lt;code&gt;compiler.hooks.validate&lt;/code&gt;) 추가, CSS Modules 런타임 스타일 주입(&lt;code&gt;exportType: &amp;quot;style&amp;quot;&lt;/code&gt;) 지원도 포함된다.&lt;br&gt;
장차 css-loader/style-loader/mini-css-extract-plugin 폐지가 예정되어 있다.&lt;br&gt;
그 외로도, CommonJS의 Tree Shaking 개선, &lt;code&gt;create-webpack-app&lt;/code&gt; 도구 추가, 실험적 기능으로 ES Stage 3의 Source Phase Imports에 의한 WebAssembly 지원, oxc-parser 지원이 추가된다.&lt;br&gt;
또한, webpack-cli 7.0.0에는 Node.js 20.9.0 이상이 필요하며, 네이티브 TypeScript 지원도 추가된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Rust로 작성된 임베디드에 사용 가능한 Web 렌더링 엔진 Servo의 &lt;code&gt;servo&lt;/code&gt;가 crates.io에 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://servo.org/blog/2026/04/13/servo-0.1.0-release/&quot;&gt;Servo is now available on crates.io&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;애플리케이션에 Web 렌더링 기능을 내장하기 위해 Embedding API를 제공한다.&lt;br&gt;
또한, LTS 버전도 도입하여, 반 년마다 메이저 업그레이드와 보안 업데이트를 제공한다.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v1-5-0-pagefind-pagefind&quot;&gt;Release v1.5.0 · Pagefind/pagefind&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/Pagefind/pagefind/releases/tag/v1.5.0&quot; title=&quot;Release v1.5.0 · Pagefind/pagefind&quot;&gt;github.com/Pagefind/pagefind/releases/tag/v1.5.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;search&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Pagefind v1.5.0 출시.&lt;br&gt;
Web Components 기반 새로운 UI 시스템 추가, 메타데이터 필드의 기본 인덱스화에 의한 검색 정밀도 향상, 발음 구별 기호 대응을 추가.&lt;br&gt;
CJK(중국어/일본어/한국어) 쿼리 자동 세그멘테이션, Web Worker에서 검색 실행, 인덱스 청크 크기 절감 같은 성능 개선.&lt;br&gt;
Windows ARM64 지원 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;webpack-5-106-webpack&quot;&gt;Webpack 5.106 | webpack&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webpack.js.org/blog/2026-04-08-webpack-5-106/&quot; title=&quot;Webpack 5.106 | webpack&quot;&gt;webpack.js.org/blog/2026-04-08-webpack-5-106/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;webpack&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;webpack 5.106 출시.&lt;br&gt;
Plugin Validation Hook(&lt;code&gt;compiler.hooks.validate&lt;/code&gt;) 추가.&lt;br&gt;
CSS Modules 런타임 스타일 주입(&lt;code&gt;exportType: &amp;quot;style&amp;quot;&lt;/code&gt;) 지원.&lt;br&gt;
장차 css-loader/style-loader/mini-css-extract-plugin 폐지 예정.&lt;br&gt;
CommonJS의 Tree Shaking 개선, &lt;code&gt;create-webpack-app&lt;/code&gt; 도구 추가.&lt;br&gt;
실험적 기능으로, ES Stage 3의 Source Phase Imports에 따른 실험적인 WebAssembly 지원, oxc-parser 지원.&lt;br&gt;
webpack-cli 7.0.0에는 Node.js 20.9.0+가 필요하며, 네이티브 TypeScript 지원이 추가됨.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-pnpm-11-rc-0-pnpm-pnpm&quot;&gt;Release pnpm 11 RC 0 · pnpm/pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/releases/tag/v11.0.0-rc.0&quot; title=&quot;Release pnpm 11 RC 0 · pnpm/pnpm&quot;&gt;github.com/pnpm/pnpm/releases/tag/v11.0.0-rc.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;pnpm v11.0.0 rc.0 출시.&lt;br&gt;
Pure ESM 패키지 이행, Node.js 18-21 지원 종료.&lt;br&gt;
&lt;code&gt;.npmrc&lt;/code&gt;는 인증/레지스트리 설정만 한정, 그 외 설정은 &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt;으로 이행, &lt;code&gt;pnpm server&lt;/code&gt; 명령어 삭제 같은 많은 파괴적 변경 있음.&lt;br&gt;
&lt;code&gt;pnpm ci&lt;/code&gt; 명령어 추가, &lt;code&gt;pnpm sbom&lt;/code&gt;으로 SBOM 생성.&lt;br&gt;
&lt;code&gt;minimumReleaseAge&lt;/code&gt; 기본적으로 1일 설정, &lt;code&gt;blockExoticSubdeps&lt;/code&gt; 기본값을 &lt;code&gt;true&lt;/code&gt;으로 변경 같은 공급망 보안 강화.&lt;br&gt;
스토어 인덱스에 SQLite를 사용하도록 변경, &lt;code&gt;undici&lt;/code&gt; 선택에 따른 HTTP 리퀘스트 개선.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bun-v1-3-12-bun-blog&quot;&gt;Bun v1.3.12 | Bun Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.3.12&quot; title=&quot;Bun v1.3.12 | Bun Blog&quot;&gt;bun.com/blog/bun-v1.3.12&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Bun&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Bun v1.3.12 출시.&lt;br&gt;
&lt;code&gt;Bun.WebView&lt;/code&gt; 추가, Markdown 파일을 터미널에서 직접 실행 가능한 &lt;code&gt;bun ./file.md&lt;/code&gt; 지원.&lt;br&gt;
인프로세스로 동작하는 콜백 기반 cron 스케쥴러 &lt;code&gt;Bun.cron()&lt;/code&gt; 추가.&lt;br&gt;
JavaScriptCore 업그레이드로 인해, ES Proposal Stage 3의 Explicit Resource Management(&lt;code&gt;using&lt;/code&gt;/&lt;code&gt;await using&lt;/code&gt;) 지원.&lt;br&gt;
cgroup의 CPU 제한을 고려하도록 변경&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;servo-is-now-available-on-crates-io-servo-aims-to-empower-developers-with-a-lightweight-high-performance-alternative-for-embedding-web-technologies-in-applications&quot;&gt;Servo is now available on crates.io - Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://servo.org/blog/2026/04/13/servo-0.1.0-release/&quot; title=&quot;Servo is now available on crates.io - Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.&quot;&gt;servo.org/blog/2026/04/13/servo-0.1.0-release/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;servo&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Servo v0.1.0 출시.&lt;br&gt;
Rust으로 작성된 임베디드 가능한 Web 렌더링 엔진 Servo의 &lt;code&gt;servo&lt;/code&gt;가 crates.io에 공개됨.&lt;br&gt;
애플리케이션에 Web 렌더링 기능을 내장하기 위해 Embedding API 제공.&lt;br&gt;
LTS 버전도 도입되어, 반 년마다 메이저 업그레이드와 보안 업그레이드 제공.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;summary-of-cve-2026-23869-vercel&quot;&gt;Summary of CVE-2026-23869 - Vercel&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://vercel.com/changelog/summary-of-cve-2026-23869&quot; title=&quot;Summary of CVE-2026-23869 - Vercel&quot;&gt;vercel.com/changelog/summary-of-cve-2026-23869&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Next.js&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;vercel&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;React Server Components(RSC)의 DoS 취약성 수정으로 Next.js 15.5.15/16.2.3과 React 19.2.5가 출시.&lt;br&gt;
App Router의 Server Function 엔드포인트에 대해, 세공된 HTTP 리퀘스트를 보냄으로 과도한 CPU 비용을 일으키는 취약성.&lt;br&gt;
Next.js 13.x〜16.x가 영향을 받음.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/facebook/react/releases/tag/v19.2.5&quot; title=&quot;Release 19.2.5 (April 8th, 2026) · facebook/react&quot;&gt;Release 19.2.5 (April 8th, 2026) · facebook/react&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;the-uphill-climb-of-making-diff-lines-performant-the-github-blog&quot;&gt;The uphill climb of making diff lines performant - The GitHub Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/engineering/architecture-optimization/the-uphill-climb-of-making-diff-lines-performant/&quot; title=&quot;The uphill climb of making diff lines performant - The GitHub Blog&quot;&gt;github.blog/engineering/architecture-optimization/the-uphill-climb-of-making-diff-lines-performant/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;GitHub&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;performance&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;GitHub의 Files changed 탭의 React 기반 구현 diff행 성능 최적화.&lt;br&gt;
1행에 10〜15개 DOM 요소와 8〜13개 React 컴포넌트가 필요한 구조로 최적화.&lt;br&gt;
컴포넌트 수를 2개로 삭제, 이벤트 핸들러를 data 속성을 활용해 단일 핸들러에 집약하도록 변경.&lt;br&gt;
TanStack Virtual에 의한 가상화 도입, 무거운 CSS 셀렉터 삭제, 드래그/리사이즈 처리 재구현 등으로 성능 개선.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;react-server-components-your-way-tanstack-blog&quot;&gt;React Server Components Your Way | TanStack Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://tanstack.com/blog/react-server-components&quot; title=&quot;React Server Components Your Way | TanStack Blog&quot;&gt;tanstack.com/blog/react-server-components&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;RSC&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TanStack&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TanStack으로 React Server Components(RSC) 어프로치하는 방법에 대하여.&lt;br&gt;
RSC를 데이터 스트림으로 다루고, 단방향 데이터 흐름으로 클라이언트 측에 서버 렌더링 된 UI 얻기나 캐시 제어 가능한 설계.&lt;br&gt;
서버가 슬롯을 준비해뒀다가 클라이언트가 채우는 Composite Components 구조, &lt;code&gt;createServerFn&lt;/code&gt;에 의한 명시적 서버 함수 정의 기능을 제공.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;the-intl-api-the-best-browser-api-youre-not-using-polypane&quot;&gt;The Intl API: The best browser API you&amp;#039;re not using | Polypane&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://polypane.app/blog/the-intl-api-the-best-browser-api-youre-not-using/&quot; title=&quot;The Intl API: The best browser API you&amp;amp;#039;re not using | Polypane&quot;&gt;polypane.app/blog/the-intl-api-the-best-browser-api-youre-not-using/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;i18n&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Intl API에 대한 해설 글.&lt;br&gt;
&lt;code&gt;Intl.DateTimeFormat&lt;/code&gt;/&lt;code&gt;Intl.RelativeTimeFormat&lt;/code&gt;/&lt;code&gt;Intl.NumberFormat&lt;/code&gt; 날짜나 수치 포맷 API를 소개.&lt;br&gt;
&lt;code&gt;Intl.ListFormat&lt;/code&gt;/&lt;code&gt;Intl.PluralRules&lt;/code&gt;/&lt;code&gt;Intl.Segmenter&lt;/code&gt;/&lt;code&gt;Intl.Collator&lt;/code&gt; 사용 방법&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;under-the-hood-of-mdns-new-frontend&quot;&gt;Under the hood of MDN&amp;#039;s new frontend&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/&quot; title=&quot;Under the hood of MDN&amp;amp;#039;s new frontend&quot;&gt;developer.mozilla.org/en-US/blog/mdn-front-end-deep-dive/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;mdn&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebComponents&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;architecture&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;MDN 프론트엔드 아키텍처 업데이트 글.&lt;br&gt;
옛 프론트엔드(Yari)는 Create React App 기반, eject 후에 webpack 설정 복잡 같은 기술부채가 있었음.&lt;br&gt;
Sass와 최신 CSS 혼재, &lt;code&gt;dangerouslySetInnerHTML&lt;/code&gt;에 의한 정적 컨텐츠 담기 문제도 있었음.&lt;br&gt;
새 아키텍처에서는 Lit 기반 Web Components 선택, 독자 Server Components 구조에서 SPA 문제를 해결.&lt;br&gt;
빌트인을 webpack에서 Rspack으로 이행, Declarative Shadow DOM나 Baseline 프로젝트를 활용한 브라우저 호환성 관리도 언급.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;yuku-toolchain-yuku-high-performance-javascript-typescript-compiler-and-toolchain-in-pure-zig&quot;&gt;yuku-toolchain/yuku: High-performance JavaScript/TypeScript compiler and toolchain in pure Zig 🦎&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/yuku-toolchain/yuku&quot; title=&quot;yuku-toolchain/yuku: High-performance JavaScript/TypeScript compiler and toolchain in pure Zig 🦎&quot;&gt;github.com/yuku-toolchain/yuku&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Zig&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;compiler&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Zig로 작성된 JavaScript/TypeScript 컴파일 및 툴체인.&lt;br&gt;
Test262에서 테스트되었고, Pure Zig 같은 곳에서 크로스 컴파일 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;diffs-from-pierre&quot;&gt;Diffs, from Pierre&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://diffs.com/&quot; title=&quot;Diffs, from Pierre&quot;&gt;diffs.com/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;diff&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;diff 렌더링 코드 게시 라이브러리.&lt;br&gt;
CSS Grid와 Shadow DOM를 활용해 DOM 노트 수를 삭제하며 렌더링 고속화나 Virtualization에 대응.&lt;br&gt;
Stack 형(통합게시)과 Split 형(좌우 병렬 게시) 2가지 레이아웃, Shiki 기반 구문 하이라이트/주석/머지 충돌 해결 UI 기능 갖음.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Wed, 15 Apr 2026 20:20:00 +0900</pubDate>
        <link>https://jser.info/ko/2026/04/15/pnpm-11-rc-0-webpack-5.106-servo-v0.1.0/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/04/15/pnpm-11-rc-0-webpack-5.106-servo-v0.1.0/</guid>
        
        <category>React</category>
        
        <category>Rust</category>
        
        <category>search</category>
        
        <category>Next.js</category>
        
        <category>security</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-04-06: TypeScript 6.0, ES2026 RC, axios 공급망 공격</title>
        <description>&lt;p&gt;JSer.info #768 - TypeScript 6.0가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/&quot;&gt;Announcing TypeScript 6.0 - TypeScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;현재 JavaScript 코드 기반 마지막 출시, Go로 재작성된 TypeScript 7.0 이행 준비를 위한 출시이다. &lt;code&gt;strict&lt;/code&gt;가 기본적으로 &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt; 기본값이 &lt;code&gt;es2025&lt;/code&gt;, &lt;code&gt;module&lt;/code&gt; 기본값이 &lt;code&gt;esnext&lt;/code&gt;으로 변경됨. &lt;code&gt;target: es5&lt;/code&gt;이나 &lt;code&gt;--moduleResolution node&lt;/code&gt;(node10), &lt;code&gt;--outFile&lt;/code&gt; 비권장이 되어 에러로 변경됨. 새로운 기능으로, &lt;code&gt;es2025&lt;/code&gt; 타겟 추가, Temporal API 자료형 정의, Map/WeakMap의 &lt;code&gt;getOrInsert()&lt;/code&gt;/&lt;code&gt;getOrInsertComputed()&lt;/code&gt; 메서드 추가, TypeScript 7.0 자료형 순서 합치는 &lt;code&gt;--stableTypeOrdering&lt;/code&gt; 플래그 추가 포함.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;ECMAScript 2026의 Release Candidate가 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tc39/ecma262/releases/tag/es2026-candidate-2026-03-31&quot;&gt;Release ES2026 Candidate March 31st 2026 · tc39/ecma262&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TC39에 의해 2026년 3월에 승인, 2026년 6월 Ecma General Assembly에서 승인을 거쳐 정식 출시할 예정. ES2026에는, &lt;code&gt;Array.fromAsync&lt;/code&gt;, JSON.parse source text access, Iterator Sequencing, &lt;code&gt;Uint8Array&lt;/code&gt;의 Base64 변환, &lt;code&gt;Math.sumPrecise&lt;/code&gt;, &lt;code&gt;Error.isError&lt;/code&gt;, Upsert(&lt;code&gt;Map.prototype.getOrInsert&lt;/code&gt;) 포함될 예정이다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;axios의 npm 패키지 공급망 공격이 발생했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan&quot;&gt;axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://socket.dev/blog/attackers-hunting-high-impact-nodejs-maintainers&quot;&gt;Attackers Are Hunting High-Impact Node.js Maintainers in a C...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://socket.dev/blog/hidden-blast-radius-of-the-axios-compromise&quot;&gt;The Hidden Blast Radius of the Axios Compromise - Socket&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;소셜 엔지니어링으로 관리자 계정을 탈취, 악의있는 &lt;code&gt;axios@1.14.1&lt;/code&gt;와 &lt;code&gt;axios@0.30.4&lt;/code&gt;가 공개됨. 이 버전에는 &lt;code&gt;plain-crypto-js&lt;/code&gt; 멀웨어가 의존관계로 추가되어, postinstall 훅을 통해 macOS/Windows/Linux 대상 Remote Access Trojan(RAT)을 설치하는 구조다.&lt;/p&gt;

&lt;p&gt;영향을 받았는지 확인하는 방법은 다음 페이지에 정리되어 있다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan#am-i-affected&quot;&gt;Am I affected? - StepSecurity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-typescript-6-0-typescript&quot;&gt;Announcing TypeScript 6.0 - TypeScript&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/&quot; title=&quot;Announcing TypeScript 6.0 - TypeScript&quot;&gt;devblogs.microsoft.com/typescript/announcing-typescript-6-0/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript 6.0 출시.&lt;br&gt;
현재 JavaScript 코드 기반 마지막 출시, Go로 재작성된 TypeScript 7.0으로 이행 준비하는 출시이다.&lt;br&gt;
&lt;code&gt;strict&lt;/code&gt;가 기본 &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt; 기본값이 &lt;code&gt;es2025&lt;/code&gt;, &lt;code&gt;module&lt;/code&gt; 기본값이 &lt;code&gt;esnext&lt;/code&gt;으로 변경.&lt;br&gt;
&lt;code&gt;target: es5&lt;/code&gt;, &lt;code&gt;--moduleResolution node&lt;/code&gt;(node10), &lt;code&gt;--outFile&lt;/code&gt;, &lt;code&gt;--esModuleInterop false&lt;/code&gt; 비권장이 되어 에러로 변경.&lt;br&gt;
&lt;code&gt;es2025&lt;/code&gt; 타겟 추가, Temporal API 자료형 정의 추가, Map/WeakMap의 &lt;code&gt;getOrInsert()&lt;/code&gt;/&lt;code&gt;getOrInsertComputed()&lt;/code&gt; 메서드 추가.&lt;br&gt;
Node.js의 Subpath Imports의 &lt;code&gt;#/&lt;/code&gt; 지원, &lt;code&gt;--moduleResolution bundler&lt;/code&gt;와 &lt;code&gt;--module commonjs&lt;/code&gt; 구조 조합 지원.&lt;br&gt;
TypeScript 7.0 자료형 순서 합치는 &lt;code&gt;--stableTypeOrdering&lt;/code&gt; 플래그 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;webkit-features-for-safari-26-4-webkit&quot;&gt;WebKit Features for Safari 26.4 | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/17862/webkit-features-for-safari-26-4/&quot; title=&quot;WebKit Features for Safari 26.4 | WebKit&quot;&gt;webkit.org/blog/17862/webkit-features-for-safari-26-4/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;safari&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebTransport&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAuthentication&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Safari 26.4 출시.&lt;br&gt;
CSS Grid Lanes에 의한 masonry/워터폴 스타일 레이아웃 지원, 이름 뿐이었던 &lt;code&gt;@container&lt;/code&gt; 쿼리 지원.&lt;br&gt;
&lt;code&gt;font-size: math&lt;/code&gt;와 &lt;code&gt;math-depth&lt;/code&gt; 프로퍼티 지원.&lt;br&gt;
CSS Zoom 수정, Scroll-driven Animations 성능 개선.&lt;br&gt;
WebTransport 지원, Keyboard Lock API 지원, ReadableByteStream 지원.&lt;br&gt;
Scoped Custom Element Registries 개선, &lt;code&gt;Iterator.concat()&lt;/code&gt; 지원.&lt;br&gt;
&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;의 &lt;code&gt;sizes&lt;/code&gt; 속성에서 math 함수 (&lt;code&gt;min()&lt;/code&gt;/&lt;code&gt;max()&lt;/code&gt;/&lt;code&gt;clamp()&lt;/code&gt;) 지원, SVG의 &lt;code&gt;lighter&lt;/code&gt; 합성연산자 지원.&lt;br&gt;
WebAuthn의 PRF 확장 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v20-0-0-raineorshine-npm-check-updates&quot;&gt;Release v20.0.0 · raineorshine/npm-check-updates&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/raineorshine/npm-check-updates/releases/tag/v20.0.0&quot; title=&quot;Release v20.0.0 · raineorshine/npm-check-updates&quot;&gt;github.com/raineorshine/npm-check-updates/releases/tag/v20.0.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm-check-updates v20.0.0 출시.&lt;br&gt;
npm/yarn/pnpm의 설정인 minimum release age 설정을 자동적으로 읽어, cooldown 옵션으로 적용할 수 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-es2026-candidate-march-31st-2026-tc39-ecma262&quot;&gt;Release ES2026 Candidate March 31st 2026 · tc39/ecma262&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/tc39/ecma262/releases/tag/es2026-candidate-2026-03-31&quot; title=&quot;Release ES2026 Candidate March 31st 2026 · tc39/ecma262&quot;&gt;github.com/tc39/ecma262/releases/tag/es2026-candidate-2026-03-31&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;ECMAScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;spec&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;ECMAScript 2026のRelease Candidate가 공개됨.&lt;br&gt;
TC39에 2026년 3월 승인되어, 2026년 6월 Ecma GA에서 승인을 거쳐 정식 출시될 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v15-0-0-sindresorhus-got&quot;&gt;Release v15.0.0 · sindresorhus/got&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/sindresorhus/got/releases/tag/v15.0.0&quot; title=&quot;Release v15.0.0 · sindresorhus/got&quot;&gt;github.com/sindresorhus/got/releases/tag/v15.0.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;HTTP&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Got v15.0.0 출시.&lt;br&gt;
Node.js 22 미만 지원 삭제, &lt;br&gt;
&lt;code&gt;promise.cancel()&lt;/code&gt; 삭제하고 AbortController의 &lt;code&gt;signal&lt;/code&gt; 옵션으로 이행, &lt;code&gt;isStream&lt;/code&gt; 옵션 삭제.&lt;br&gt;
&lt;code&gt;responseType: &amp;#39;buffer&amp;#39;&lt;/code&gt;가 &lt;code&gt;Buffer&lt;/code&gt; 대신에 &lt;code&gt;Uint8Array&lt;/code&gt; 반환하도록 변경.&lt;br&gt;
네이티브 FormData API 이용하도록 변경, &lt;code&gt;strictContentLength&lt;/code&gt; 기본적으로 &lt;code&gt;true&lt;/code&gt;으로 변경.&lt;br&gt;
RFC 9110에 표준으로 300/304 리스폰스 자동 리다이렉트 폐지&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-4-18-0-lodash-lodash&quot;&gt;Release 4.18.0 · lodash/lodash&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/lodash/lodash/releases/tag/4.18.0&quot; title=&quot;Release 4.18.0 · lodash/lodash&quot;&gt;github.com/lodash/lodash/releases/tag/4.18.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;lodash&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;lodash 4.18.0 출시.&lt;br&gt;
&lt;code&gt;_.unset&lt;/code&gt;과 &lt;code&gt;_.omit&lt;/code&gt;의 Prototype Pollution 취약성 수정, &lt;code&gt;_.template&lt;/code&gt; 코드 인젝션 수정.&lt;br&gt;
&lt;code&gt;lodash.unset&lt;/code&gt;나 &lt;code&gt;lodash.template&lt;/code&gt; 개별 패키지가 낡아서 수정하고 재공개.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-25-9-0-current&quot;&gt;Node.js — Node.js 25.9.0 (Current)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v25.9.0&quot; title=&quot;Node.js — Node.js 25.9.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v25.9.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js v25.9.0 출시.&lt;br&gt;
테스너 런너 목 모듈 API에 &lt;code&gt;defaultExport&lt;/code&gt;와 &lt;code&gt;namedExports&lt;/code&gt; 옵션을 &lt;code&gt;exports&lt;/code&gt; 옵션에 통합.&lt;br&gt;
&lt;code&gt;--max-heap-size&lt;/code&gt; 플래그, Web Crypto으로 TurboSHAKE와 KangarooTwelve 알고리즘 지원.&lt;br&gt;
SEA(Single Executable Applications)에 ESM 엔트리포인트 코드 캐시 지원, 실험적 &lt;code&gt;stream/iter&lt;/code&gt; 모듈 추가.&lt;br&gt;
&lt;code&gt;AsyncLocalStorage&lt;/code&gt;에 &lt;code&gt;using&lt;/code&gt; 스코프 추가, REPL에서 커스텀 에러 번들링 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v5-0-0-lerna-lite-lerna-lite&quot;&gt;Release v5.0.0 · lerna-lite/lerna-lite&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/lerna-lite/lerna-lite/releases/tag/v5.0.0&quot; title=&quot;Release v5.0.0 · lerna-lite/lerna-lite&quot;&gt;github.com/lerna-lite/lerna-lite/releases/tag/v5.0.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;monorepo&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;lerna-lite v5.0.0 출시.&lt;br&gt;
Node.js 20 지원 종료, Conventional Changelog 레거시 설정 파일 읽기 삭제, &lt;code&gt;--remove-package-fields&lt;/code&gt; 옵션 삭제.&lt;br&gt;
내부 의존을 자체 구현으로 크기 절감&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;storybook-mcp-for-react&quot;&gt;Storybook MCP for React&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://storybook.js.org/blog/storybook-mcp-for-react/&quot; title=&quot;Storybook MCP for React&quot;&gt;storybook.js.org/blog/storybook-mcp-for-react/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;storybook&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;MCP&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Storybook MCP 서버에 대하여.&lt;br&gt;
AI 에이언트에 의존 UI 컴포넌트 메타데이터(스토리, API, 문서) 제공하는 MCP 서버.&lt;br&gt;
복수 Storybook를 조합함으로 사용하는 Composition에도 대응.&lt;br&gt;
MCP Apps에 대응해서, 챗의 리스폰스에 직접 Story를 포함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-security-bug-bounty-program-paused-due-to-loss-of-funding&quot;&gt;Node.js — Security Bug Bounty Program Paused Due to Loss of Funding&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/announcements/discontinuing-security-bug-bounties&quot; title=&quot;Node.js — Security Bug Bounty Program Paused Due to Loss of Funding&quot;&gt;nodejs.org/en/blog/announcements/discontinuing-security-bug-bounties&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js 시큐리티 버그 바운티 프로그램 일시정지에 대하여.&lt;br&gt;
2016년부터 HackerOne의 Internet Bug Bounty(IBB) 프로그램을 운용하고 있었지만, IBB 프로그램이 종료 되어 자금 고갈로 인해 일시정지됨.&lt;br&gt;
자금 80%을 발견, 20%을 수정에 부여했지만, AI에 의한 발견이 확대됨에 밸런스가 변경됨.&lt;br&gt;
취약성 보고자체는 HackerOne 통해서 지속해서 받지만, 보고자에 금전적 제공은 없어짐. 전용 자금 확보될 경우 프로그램 재개가 검토될 예정&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;signals-the-push-pull-based-algorithm-willy-brauner&quot;&gt;Signals, the push-pull based algorithm — Willy Brauner&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://willybrauner.com/journal/signal-the-push-pull-based-algorithm&quot; title=&quot;Signals, the push-pull based algorithm — Willy Brauner&quot;&gt;willybrauner.com/journal/signal-the-push-pull-based-algorithm&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Signal에 의한 push-pull 기반 리엑티브 알고리즘 해설 글.&lt;br&gt;
Signal 기본적인 구조를 보고, 값의 변경 시에 구독으로 알림하는 Push형과, 계신값을 실제로 접근할 때까지 지연평가하는 Pull형 구조에 대해 설명한다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;core-javascript-and-typescript-features-become-free-in-intellij-idea-the-intellij-idea-blog&quot;&gt;Core JavaScript and TypeScript Features Become Free in IntelliJ IDEA | The IntelliJ IDEA Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.jetbrains.com/idea/2026/03/js-ts-free-support/&quot; title=&quot;Core JavaScript and TypeScript Features Become Free in IntelliJ IDEA | The IntelliJ IDEA Blog&quot;&gt;blog.jetbrains.com/idea/2026/03/js-ts-free-support/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JetBrains&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;IDE&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;IntelliJ IDEA v2026.1로, JavaScript/TypeScript/HTML/CSS 코어 기능이 무료로 이용 가능.&lt;br&gt;
지금까지는 Ultimate 버전에서는 제공하고 있던 Web 개발 대상 기능이, Community Edition에서도 이용 가능해짐.&lt;br&gt;
JS/TS 코드 보완이나 리팩토링, ESLint/Prettier 통합, Vite로 프로젝트 구성, npm 스크립트 실행, 의존관계 취약성 검출도 함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan-stepsecurity&quot;&gt;axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan&quot; title=&quot;axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity&quot;&gt;www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;axios의 npm 패키지에 공급망 공격 관련해서.&lt;br&gt;
소셜 엔지니어링으로 관리자 계정 탈취당함, 악의있는 &lt;code&gt;axios@1.14.1&lt;/code&gt;와 &lt;code&gt;axios@0.30.4&lt;/code&gt;가 공개됨.&lt;br&gt;
&lt;code&gt;plain-crypto-js&lt;/code&gt; 멀웨어가 의존관계에 추가됨.&lt;br&gt;
postinstall 훅을 통해 macOS/Windows/Linux 대상 Remote Access Trojan(RAT)을 설치하는 구조.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://socket.dev/blog/attackers-hunting-high-impact-nodejs-maintainers&quot; title=&quot;Attackers Are Hunting High-Impact Node.js Maintainers in a C...&quot;&gt;Attackers Are Hunting High-Impact Node.js Maintainers in a C...&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://socket.dev/blog/hidden-blast-radius-of-the-axios-compromise&quot; title=&quot;The Hidden Blast Radius of the Axios Compromise - Socket&quot;&gt;The Hidden Blast Radius of the Axios Compromise - Socket&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;웹사이트, 서비스, 문서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;introducing-emdash-the-spiritual-successor-to-wordpress-that-solves-plugin-security&quot;&gt;Introducing EmDash — the spiritual successor to WordPress that solves plugin security&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/emdash-wordpress/&quot; title=&quot;Introducing EmDash — the spiritual successor to WordPress that solves plugin security&quot;&gt;blog.cloudflare.com/emdash-wordpress/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;CMS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;astro&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;OpenSource&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;wordpress&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare의 서버리스 CMS.&lt;br&gt;
TypeScript로 작성, Astro 6.0을 기반으로 한 오픈소스 (MIT 라이센스) CMS.&lt;br&gt;
플러그인을 독립해 샌드박스 환경 (Dynamic Workers)으로 실행, 플러그인 기원의 보안 문제 해결하는 아키텍처 채용.&lt;br&gt;
MCP이나 CLI에 의한 AI에이전트 연계, x402 프로토콜에 의한 결제 통합 기능도 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vercel-labs-emulate-local-api-emulation-for-ci-and-no-network-sandboxes&quot;&gt;vercel-labs/emulate: Local API emulation for CI and no-network sandboxes&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/vercel-labs/emulate&quot; title=&quot;vercel-labs/emulate: Local API emulation for CI and no-network sandboxes&quot;&gt;github.com/vercel-labs/emulate&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;vercel&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;API&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;testing&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;CI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;server&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vercel/GitHub/Google/Slack/AWS(S3/SQS)의 API를 로컬에서 에뮬레이트하는 도구.&lt;br&gt;
외부 API의 목 서버에서 이용 가능.&lt;br&gt;
각 서비스는 스테이풀한 데이터를 저장하고, OAuth 2.0 플로우나 Webhook에도 대응하고 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;arrowjs-the-first-ui-framework-for-the-agentic-era&quot;&gt;ArrowJS — The first UI framework for the agentic era&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://arrow-js.com/&quot; title=&quot;ArrowJS — The first UI framework for the agentic era&quot;&gt;arrow-js.com/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;빌드 단계없이 동작하는 경량 UI 프레임워크. &lt;code&gt;reactive&lt;/code&gt;, &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;component&lt;/code&gt; 3개 함수로 구성.&lt;br&gt;
AI 대상 WebAssembly 샌드박스 안에서 컴포넌트 로직을 분리해 실행하는 기능 갖고 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;도서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;react&quot;&gt;React 본격 입문 | 기술평론사&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://gihyo.jp/book/2026/978-4-297-15523-0&quot; title=&quot;React 본격 입문 | 기술평론사&quot;&gt;gihyo.jp/book/2026/978-4-297-15523-0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;book&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;2026년 4월 15일 발매.&lt;br&gt;
React 19 기반 입문서.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Mon, 06 Apr 2026 10:32:51 +0900</pubDate>
        <link>https://jser.info/ko/2026/04/06/typescript-6.0-es2026-rc-axios/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/04/06/typescript-6.0-es2026-rc-axios/</guid>
        
        <category>TypeScript</category>
        
        <category>nodejs</category>
        
        <category>security</category>
        
        <category>Tools</category>
        
        <category>React</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-03-22: Vite 8.0, Temporal Stage 4, Next.js 16.2</title>
        <description>&lt;p&gt;JSer.info #767 - Vite 8.0가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://main.vite.dev/blog/announcing-vite8&quot;&gt;Vite 8.0 is out! | Vite (main branch)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vitest.dev/blog/vitest-4-1.html&quot;&gt;Vitest 4.1 is out! | Vitest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;esbuild + Rollup 이중 핸들러 구성이 Rust 기반으로 통합 핸들러 Rolldown으로 바뀌었다. lightningcss가 peerDependency에서 직접 의조 관계로 변경, 빌트인 Devtools, TypeScript의 경로 얼라이어스 해결 (&lt;code&gt;resolve.tsconfigPaths&lt;/code&gt;) 지원이 추가되었다. WebAssembly의 SSR 지원, 브라우저 콘솔 로그를 dev 서버 터미널에 전송하는 &lt;code&gt;server.forwardConsole&lt;/code&gt; 추가도 포함된다. 같은 타이밍에 Vitest 4.1도 출시, Vite 8 지원, Test Tags 기능 추가, &lt;code&gt;aroundEach&lt;/code&gt;/&lt;code&gt;aroundAll&lt;/code&gt; 훅 추가도 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;TC39 2026년 3월 미팅 결과로, Temporal이 Stage 4가 되어 ES2026에 포함되도록 결정되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://ecmascript-daily.github.io/ecmascript/2026/03/16/ecmascript-proposal-update&quot;&gt;ECMAScript proposal updates @ 2026-03 | ECMAScript Daily&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Import Text가 Stage 3으로, Error Stack Accessor가 Stage 2.7으로, Curtailing the Power of Thenables가 Stage 2가 되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Next.js 16.2가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-2&quot;&gt;Next.js 16.2 | Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-2-ai&quot;&gt;Next.js 16.2: AI Improvements | Next.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;next dev&lt;/code&gt; 속도 개선, Server Components 페이로드 디시리얼라이즈 개선에 의한 렌더링 고속화가 있다.&lt;code&gt;next/link&lt;/code&gt;에 &lt;code&gt;transitionTypes&lt;/code&gt; 추가, 브라우저 콘솔을 터미널로 전송한 기능이 기본적으로 유효화, Hydration 에러 디버그 게시 개선, Adapters API가 Stable으로 변경됨. 또한, &lt;code&gt;create-next-app&lt;/code&gt;가 기본적으로 &lt;code&gt;AGENTS.md&lt;/code&gt;을 생성됨.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vite-8-0-is-out-vite-main-branch&quot;&gt;Vite 8.0 is out! | Vite (main branch)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://main.vite.dev/blog/announcing-vite8&quot; title=&quot;Vite 8.0 is out! | Vite (main branch)&quot;&gt;main.vite.dev/blog/announcing-vite8&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;bundler&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vite 8.0 출시.&lt;br&gt;
esbuild + Rollup 이중핸들러 구성을 Rust 기반으로 통합한 핸들러 Rolldown로 변경.&lt;br&gt;
lightningcss가 peerDependency에서 직접 의존 관계 변경.&lt;br&gt;
빌트인 Devtools, TypeScript 경로 얼라이어스 해결 (&lt;code&gt;resolve.tsconfigPaths&lt;/code&gt;) 지원.&lt;br&gt;
WebAssembly의 SSR 지원, 브라우저 콘솔 로그를 dev 서버 터미널로 전송하는 &lt;code&gt;server.forwardConsole&lt;/code&gt; 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vitest-4-1-is-out-vitest&quot;&gt;Vitest 4.1 is out! | Vitest&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://vitest.dev/blog/vitest-4-1.html&quot; title=&quot;Vitest 4.1 is out! | Vitest&quot;&gt;vitest.dev/blog/vitest-4-1.html&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;test&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vitest 4.1 출시.&lt;br&gt;
Vite 8 지원, 테스트케이스에 태그를 붙어 필터링할 수 있는 Test Tags 기능 추가.&lt;br&gt;
&lt;code&gt;test.extend&lt;/code&gt;에서 자료형 추론 개선, &lt;code&gt;aroundEach&lt;/code&gt;/&lt;code&gt;aroundAll&lt;/code&gt; 훅 추가.&lt;br&gt;
&lt;code&gt;vi.defineHelper()&lt;/code&gt;으로 스택트레이스에서 헬퍼 함수 내부를 제외할 수 있음.&lt;br&gt;
&lt;code&gt;--detect-async-leaks&lt;/code&gt; 플래그에 비동기 리소스 leek 검출 지원.&lt;br&gt;
&lt;code&gt;mockThrow()&lt;/code&gt;/&lt;code&gt;mockThrowOnce()&lt;/code&gt; 추가, Chai 형식 mock assertion 지원.&lt;br&gt;
GitHub Actions 레포터가 job summary를 자동 생성 가능, AI 에이전트 대상 Agent 레포터 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-vite-alpha-voidzero&quot;&gt;Announcing Vite+ Alpha | VoidZero&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-vite-plus-alpha&quot; title=&quot;Announcing Vite+ Alpha | VoidZero&quot;&gt;voidzero.dev/posts/announcing-vite-plus-alpha&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;CLI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vite+ Alpha 출시.&lt;br&gt;
Vite, Vitest, Rolldown, Oxlint, Oxfmt 등을 통합한 CLI 도구.&lt;br&gt;
&lt;code&gt;vp dev&lt;/code&gt;/&lt;code&gt;vp build&lt;/code&gt;/&lt;code&gt;vp test&lt;/code&gt;/&lt;code&gt;vp check&lt;/code&gt; 명령어로, 개발 서버, 빌드, 테스트, Lint, 포맷을 하나의 도구로 실행 가능.&lt;br&gt;
&lt;code&gt;vp env&lt;/code&gt;에서의 Node.js 버전 관리, &lt;code&gt;vp run&lt;/code&gt;에서의 monorepo 태스크 실행과 캐시 기능 제공.&lt;br&gt;
당초는 상용으로 검토되었지만, MIT 라이센스로 오픈소스 공개됨.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/voidzero-dev/vite-plus/tree/main&quot; title=&quot;voidzero-dev/vite-plus: Vite+ is the unified toolchain and entry point for web development. It manages your runtime, package manager, and frontend toolchain in one place.&quot;&gt;voidzero-dev/vite-plus: Vite+ is the unified toolchain and entry point for web development. It manages your runtime, package manager, and frontend toolchain in one place.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;nuxt-4-4-nuxt-blog&quot;&gt;Nuxt 4.4 · Nuxt Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nuxt.com/blog/v4-4&quot; title=&quot;Nuxt 4.4 · Nuxt Blog&quot;&gt;nuxt.com/blog/v4-4&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Vue&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Nuxt v4.4 출시.&lt;br&gt;
Vue Router v5으로 업그레이드, &lt;code&gt;createUseFetch&lt;/code&gt;/&lt;code&gt;createUseAsyncData&lt;/code&gt; 추가.&lt;br&gt;
레이아웃에 자료형 붙인 Props를 넘길수 있음, &lt;code&gt;useAnnouncer&lt;/code&gt; composable과 &lt;code&gt;&amp;lt;NuxtAnnouncer&amp;gt;&lt;/code&gt; 컴포너트에 의한 접근성 개선.&lt;br&gt;
라우트 생성에 trie 데이터 구조 기반 &lt;code&gt;unrouting&lt;/code&gt; 라이브러리 채용해서 퍼포먼스 개선.&lt;br&gt;
&lt;code&gt;useCookie&lt;/code&gt;의 &lt;code&gt;refresh&lt;/code&gt; 옵션 추가, &lt;code&gt;nuxt build --profile&lt;/code&gt;에서의 빌드 프로파일링 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;ecmascript-proposal-updates-2026-03-ecmascript-daily&quot;&gt;ECMAScript proposal updates @ 2026-03 | ECMAScript Daily&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://ecmascript-daily.github.io/ecmascript/2026/03/16/ecmascript-proposal-update&quot; title=&quot;ECMAScript proposal updates @ 2026-03 | ECMAScript Daily&quot;&gt;ecmascript-daily.github.io/ecmascript/2026/03/16/ecmascript-proposal-update&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;ECMAScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;proposal&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TC39&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TC39 113th meeting에서 ECMAScript Proposal 스테이지 변경 모음.&lt;br&gt;
Temporal가 Stage 4가 되어 ES2026에 포함됨.&lt;br&gt;
Import Text가 Stage 3, Error Stack Accessor가 Stage 2.7.&lt;br&gt;
Curtailing the Power of Thenables가 Stage 2.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;nova-1-0-nova&quot;&gt;Nova 1.0 · Nova&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://trynova.dev/blog/nova-1.0&quot; title=&quot;Nova 1.0 · Nova&quot;&gt;trynova.dev/blog/nova-1.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Nova 1.0 출시.&lt;br&gt;
Rust로 작성된 경량 임베디드 대상 데이터 지향 아키텍처 JavaScript 엔진.&lt;br&gt;
ECMAScript 사양 완전한 지원은 아직 과제가 있음, RegExp의 Unicode 지원이나 Promise 서브클라스화에는 제한이 있다.&lt;br&gt;
시멘틱 버저닝을 채용해서 업데이트를 할 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;electron-41-0-electron&quot;&gt;Electron 41.0 | Electron&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.electronjs.org/blog/electron-41-0&quot; title=&quot;Electron 41.0 | Electron&quot;&gt;www.electronjs.org/blog/electron-41-0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Electron&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Electron 41.0 출시.&lt;br&gt;
Chromium 146, Node.js v24.14.0, V8 14.6으로 업그레이드.&lt;br&gt;
PDF 렌더링이 out-of-process iframe 사용해 동일 WebContents 내에 렌더링으로 변경.&lt;br&gt;
Cookie의 &lt;code&gt;changed&lt;/code&gt; 이벤트에 &lt;code&gt;inserted&lt;/code&gt; 변경 이유 추가.&lt;br&gt;
ASAR 정합성 체크에서 다이제스트 지원, Wayland에서 프레임레스의 드롭 쉐도우와 리사이즈 경계 개선.&lt;br&gt;
MSIX auto updater 호환성을 추가, macOS 대상 &lt;code&gt;--disable-geolocation&lt;/code&gt; 플래그 추가.&lt;br&gt;
WebSocket 인증을 &lt;code&gt;login&lt;/code&gt; 이벤트로 처리 가능, &lt;code&gt;webPreferences.focusOnNavigation&lt;/code&gt; 옵션 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bun-v1-3-11-bun-blog&quot;&gt;Bun v1.3.11 | Bun Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.3.11&quot; title=&quot;Bun v1.3.11 | Bun Blog&quot;&gt;bun.com/blog/bun-v1.3.11&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Bun&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Bun v1.3.11 출시.&lt;br&gt;
OS의 스케쥴러를 사용해 cron 잡 등록하는 &lt;code&gt;Bun.cron&lt;/code&gt; API 추가, ANSI 에스케이프 코드를 고려한 문자열 슬라이스 &lt;code&gt;Bun.sliceAnsi&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;bun test&lt;/code&gt;에 &lt;code&gt;--path-ignore-patterns&lt;/code&gt; 플래그 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-pnpm-11-beta-0-pnpm-pnpm&quot;&gt;Release pnpm 11 Beta 0 · pnpm/pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/releases/tag/v11.0.0-beta.0&quot; title=&quot;Release pnpm 11 Beta 0 · pnpm/pnpm&quot;&gt;github.com/pnpm/pnpm/releases/tag/v11.0.0-beta.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;pnpm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;pnpm v11.0.0-beta.0 출시.&lt;br&gt;
Pure ESM로 패키지 마이그레이션, Node.js 18-21 지원 종료.&lt;br&gt;
&lt;code&gt;package.json&lt;/code&gt;의 &lt;code&gt;pnpm&lt;/code&gt; 필드 설정을 &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt;으로 마이그레이션, &lt;code&gt;pnpm server&lt;/code&gt; 명령어 삭제, &lt;code&gt;pnpm link&lt;/code&gt; 명령어 변경 등 많은 파괴적 변경이 있음.&lt;br&gt;
패키지 메타데이터 저장에 SQLite 사용하도록 변경, 스토어 버전 업데이트.&lt;br&gt;
&lt;code&gt;pnpm clean&lt;/code&gt; 명령어로 &lt;code&gt;node_modules&lt;/code&gt; 삭제, &lt;code&gt;pnpm audit --fix=update&lt;/code&gt;로 lockfile 업데이트에 의한 취약정 수정 대응.&lt;br&gt;
&lt;code&gt;config.yaml&lt;/code&gt; 지원, Pnpmfile로 ESM 포맷(&lt;code&gt;.pnpmfile.mjs&lt;/code&gt;) 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;next-js-16-2-next-js&quot;&gt;Next.js 16.2 | Next.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-2&quot; title=&quot;Next.js 16.2 | Next.js&quot;&gt;nextjs.org/blog/next-16-2&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Next.js&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Next.js 16.2 출시.&lt;br&gt;
&lt;code&gt;next dev&lt;/code&gt; 속도 개선, Server Components 페이로드 디시리얼라이즈 개선에 의한 렌더링 고속화.&lt;br&gt;
&lt;code&gt;next/link&lt;/code&gt;으로 &lt;code&gt;transitionTypes&lt;/code&gt; 추가, Server Function 실행 로그를 터미널 게시하는 기능 추가, 브라우저 로그를 터미널에 게시하는 기능을 기본적 유효.&lt;br&gt;
Hydration 에러 디버그 게시 개선, &lt;code&gt;next start&lt;/code&gt;에서 &lt;code&gt;--inspect&lt;/code&gt; 플래그 지원.&lt;br&gt;
Adapters API가 Stable로 변경.&lt;br&gt;
&lt;code&gt;create-next-app&lt;/code&gt; 기본적으로 &lt;code&gt;AGENTS.md&lt;/code&gt; 생성하도록 변경, &lt;code&gt;node_modules/next/dist/docs/&lt;/code&gt;에 문서를 번들링하도록 변경&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-2-ai&quot; title=&quot;Next.js 16.2: AI Improvements | Next.js&quot;&gt;Next.js 16.2: AI Improvements | Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-2-turbopack&quot; title=&quot;Turbopack: What&amp;amp;amp;#039;s New in Next.js 16.2 | Next.js&quot;&gt;Turbopack: What&amp;#039;s New in Next.js 16.2 | Next.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;tc39-advances-temporal-to-stage-4-alongside-several-ecmascri&quot;&gt;TC39 Advances Temporal to Stage 4 Alongside Several ECMAScri...&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://socket.dev/blog/tc39-advances-temporal-to-stage-4?utm_medium=feed&quot; title=&quot;TC39 Advances Temporal to Stage 4 Alongside Several ECMAScri...&quot;&gt;socket.dev/blog/tc39-advances-temporal-to-stage-4?utm_medium&amp;#x3D;feed&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TC39&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ECMAScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;proposal&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TC39 2026년 3월 미팅 결과.&lt;br&gt;
Temporal가 Stage 4가 되어 ES2026에 포함됨.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;external-import-maps-today-lea-verou&quot;&gt;External import maps, today! • Lea Verou&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://lea.verou.me/blog/2026/external-import-maps-today/&quot; title=&quot;External import maps, today! • Lea Verou&quot;&gt;lea.verou.me/blog/2026/external-import-maps-today/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;External Import Maps를 빌드도구 없이 이용하는 방법에 대하여.&lt;br&gt;
&lt;code&gt;&amp;lt;script type=&amp;quot;importmap&amp;quot;&amp;gt;&lt;/code&gt;를 DOM에서 동적으로 주입해서, 외부 파일 Import Map를 관리. &lt;code&gt;document.currentScript.after()&lt;/code&gt; 사용해&lt;code&gt;&amp;lt;script type=&amp;quot;importmap&amp;quot;&amp;gt;&lt;/code&gt; 요소를 주입.&lt;br&gt;
Chrome 89+/Safari 16.4+/Firefox 108+으로 동작.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jspm.org/jspm-4.0-release&quot; title=&quot;JSPM - JSPM 4.0 Release&quot;&gt;JSPM - JSPM 4.0 Release&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;edge-js-running-node-apps-inside-a-webassembly-sandbox-blog-wasmer&quot;&gt;Edge.js: Running Node apps inside a WebAssembly Sandbox · Blog · Wasmer&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox&quot; title=&quot;Edge.js: Running Node apps inside a WebAssembly Sandbox · Blog · Wasmer&quot;&gt;wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;WebAssembly의 Sandbox에서 Node.js 호환 어플리케이션 실행 가능한 Runtime.&lt;br&gt;
Node.js v24 호환으로, Next.js나 Astro 프레임워크 동작시킬 수 있음.&lt;br&gt;
OS 시스템 콜과 네이티브 코드만을 WASIX 경유로 샌드박스화하고, JavaScript 엔진 자체는 네이티브 실행하는 아키텍처임.&lt;br&gt;
V8, JavaScriptCore, QuickJS 복수의 JS 엔진에 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;웹사이트, 서비스, 문서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;unjs-impound-builder-agnostic-plugin-to-allow-restricting-import-patterns-in-certain-parts-of-your-code-base&quot;&gt;unjs/impound: Builder-agnostic plugin to allow restricting import patterns in certain parts of your code-base.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/unjs/impound?tab=readme-ov-file&quot; title=&quot;unjs/impound: Builder-agnostic plugin to allow restricting import patterns in certain parts of your code-base.&quot;&gt;github.com/unjs/impound?tab&amp;#x3D;readme-ov-file&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;module&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;bundler&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;plugin&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;특정 디렉토리에서 import를 금지하는 패턴을 정의하는 unplugin 플러그인.&lt;br&gt;
정규표현, 문자열, 함수에 의한 패턴 매칭에서 import 제한 규칙 정의함.&lt;br&gt;
&lt;code&gt;trace&lt;/code&gt; 옵션을 유효하면, 규칙에서 금지된 결과를 볼 수 있음&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;browserpod-sandboxed-dev-environments-in-any-browser&quot;&gt;BrowserPod — Sandboxed Dev Environments in any Browser&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://browserpod.io/&quot; title=&quot;BrowserPod — Sandboxed Dev Environments in any Browser&quot;&gt;browserpod.io/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;webservice&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;브라우저 내에서 Node.js 코드를 샌드박스 실행 가능한 플랫폼.&lt;br&gt;
WebAssembly 기반 런타임 엣지 사용, WebWorker로 멀티프로세스 실행, 가상 파일 시스템, 제어된 네트워크 접근 기능 갖고 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;sam247-openredaction-open-source-pii-detection-and-redaction-for-javascript-typescript-achieve-enterprise-compliance-and-unparalleled-lightning-fast-performance-all-100-local&quot;&gt;sam247/openredaction: Open Source PII detection and redaction for JavaScript/Typescript. Achieve enterprise compliance and unparalleled, lightning fast performance, all 100% local.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/sam247/openredaction&quot; title=&quot;sam247/openredaction: Open Source PII detection and redaction for JavaScript/Typescript. Achieve enterprise compliance and unparalleled, lightning fast performance, all 100% local.&quot;&gt;github.com/sam247/openredaction&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;privacy&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;RegExp&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;JavaScript/TypeScript 대상 PII(개인식별정보) 검출과 마스킹하는 라이브러리.&lt;br&gt;
정규표현을 사용해, 메일 주소, 전화번호, 카드 번호, 정부 발행 ID50여개국 이상 PII 패턴 지원.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Sun, 22 Mar 2026 22:12:53 +0900</pubDate>
        <link>https://jser.info/ko/2026/03/22/vite-8.0-temporal-stage-4-next.js-16.2/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/03/22/vite-8.0-temporal-stage-4-next.js-16.2/</guid>
        
        <category>Rust</category>
        
        <category>vite</category>
        
        <category>bundler</category>
        
        <category>ECMAScript</category>
        
        <category>Next.js</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-03-12: TypeScript 6.0 RC, Solid v2.0.0 Beta, Node.js 출시 스케쥴 변경</title>
        <description>&lt;p&gt;JSer.info #766 - TypeScript 6.0 RC가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-rc/&quot;&gt;Announcing TypeScript 6.0 RC - TypeScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TypeScript 7(Go 기반)으로 이행을 준비한 출시로, 많은 기본 설정 변경과 비권장이 포함되었다.&lt;br&gt;
&lt;code&gt;strict&lt;/code&gt;가 기본적으로 &lt;code&gt;true&lt;/code&gt;가 되고, &lt;code&gt;module&lt;/code&gt;이 기본적으로 &lt;code&gt;esnext&lt;/code&gt;이 된다, &lt;code&gt;target&lt;/code&gt;은 기본 &lt;code&gt;es2025&lt;/code&gt;으로 변경, 기존 프로젝트에 영향이 큰 변경이 있다.&lt;br&gt;
또한, &lt;code&gt;target: es5&lt;/code&gt;/&lt;code&gt;--moduleResolution node10&lt;/code&gt;/&lt;code&gt;--module amd|umd|system&lt;/code&gt;/&lt;code&gt;--outFile&lt;/code&gt; 비권장화 된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Solid v2.0.0 Beta가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/solidjs/solid/releases/tag/v2.0.0-beta.0&quot;&gt;Release v2.0.0 Beta - The &lt;Suspense&gt; is Over · solidjs/solid&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;비동기처리가 일급클래스가 되어, computations가 Promise이나 async iterables를 반환한다.&lt;br&gt;
&lt;code&gt;&amp;lt;Loading&amp;gt;&lt;/code&gt; 컴포넌트나 &lt;code&gt;isPending&lt;/code&gt; 에 의한 Pending 상태 추적, &lt;code&gt;action()&lt;/code&gt;과 &lt;code&gt;createOptimistic&lt;/code&gt;에 의한 Optimistic Update 구조가 추가됨.&lt;br&gt;
&lt;code&gt;&amp;lt;Index&amp;gt;&lt;/code&gt;를 &lt;code&gt;&amp;lt;For keyed={false}&amp;gt;&lt;/code&gt;으로 변경, &lt;code&gt;createEffect&lt;/code&gt;의 compute/apply 페이즈 분리, &lt;code&gt;use:&lt;/code&gt; 디렉티브 삭제 같은 파괴적 변경이 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Node.js 출시 모델이 2026년 10월부터 변경됨을 발표했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule&quot;&gt;Node.js — Evolving the Node.js Release Schedule&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;현재 연 2회 메이저 출시에서 연 1회로 변경, 모든 메이저 출시가 LTS가 된다.&lt;br&gt;
새로운 출시 사이클은, Alpha Phase(10월〜3월)에 Breaking Changes 허용하고, Current Phase(4월〜10월)로 안정화, 그 이후 30개월 LTS 페이즈가 된다.&lt;br&gt;
홀수/짝수 버전 구별이 사라졌고, Node.js 26(2026년 4월)이 현행 모델 마지막 출시이다.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v6-3-0-actions-setup-node&quot;&gt;Release v6.3.0 · actions/setup-node&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/actions/setup-node/releases/tag/v6.3.0&quot; title=&quot;Release v6.3.0 · actions/setup-node&quot;&gt;github.com/actions/setup-node/releases/tag/v6.3.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;GitHub&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;setup-node v6.3.0 출시.&lt;br&gt;
&lt;code&gt;devEngines&lt;/code&gt; 필드 지원&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v2-0-0-beta-the-suspense-is-over-solidjs-solid&quot;&gt;Release v2.0.0 Beta - The &amp;lt;Suspense&amp;gt; is Over · solidjs/solid&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/solidjs/solid/releases/tag/v2.0.0-beta.0&quot; title=&quot;Release v2.0.0 Beta - The &amp;amp;lt;Suspense&amp;amp;gt; is Over · solidjs/solid&quot;&gt;github.com/solidjs/solid/releases/tag/v2.0.0-beta.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Solid&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Solid v2.0.0 Beta 출시.&lt;br&gt;
비동기는 일급클래스로, computations가 Promise나 async iterables를 반환한다.&lt;br&gt;
&lt;code&gt;&amp;lt;Loading&amp;gt;&lt;/code&gt; 컴포넌트나 &lt;code&gt;isPending&lt;/code&gt;에 의한 Pending 상태 추적, &lt;code&gt;action()&lt;/code&gt;과 &lt;code&gt;createOptimistic&lt;/code&gt;에 의한 Optimistic Update 구조 추가.&lt;br&gt;
&lt;code&gt;&amp;lt;Index&amp;gt;&lt;/code&gt;를 &lt;code&gt;&amp;lt;For keyed={false}&amp;gt;&lt;/code&gt; 으로 변경, &lt;code&gt;createEffect&lt;/code&gt;의 compute/apply 페이즈 분리, &lt;code&gt;use:&lt;/code&gt; 디렉티브 삭제.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-typescript-6-0-rc-typescript&quot;&gt;Announcing TypeScript 6.0 RC - TypeScript&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-rc/&quot; title=&quot;Announcing TypeScript 6.0 RC - TypeScript&quot;&gt;devblogs.microsoft.com/typescript/announcing-typescript-6-0-rc/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript 6.0 RC 출시.&lt;br&gt;
TypeScript 7(Go 언어)로 이행하기 위한 사전 준비 출시로, 많은 기본 설정 변경 및 비권장화가 포함됨.&lt;br&gt;
Beta에서 변경은 &lt;code&gt;import ... assert {...}&lt;/code&gt; 폐지 연장됨.&lt;br&gt;
&lt;code&gt;strict&lt;/code&gt; 기본 &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;module&lt;/code&gt; 기본 &lt;code&gt;esnext&lt;/code&gt;, &lt;code&gt;target&lt;/code&gt; 기본 &lt;code&gt;es2025&lt;/code&gt;, &lt;code&gt;types&lt;/code&gt; 기본 &lt;code&gt;[]&lt;/code&gt;으로 변경.&lt;br&gt;
&lt;code&gt;target: es5&lt;/code&gt;/&lt;code&gt;--moduleResolution node10&lt;/code&gt;/&lt;code&gt;--module amd|umd|system&lt;/code&gt;/&lt;code&gt;--outFile&lt;/code&gt; 비권장화.&lt;br&gt;
ES2025의 &lt;code&gt;RegExp.escape&lt;/code&gt;이나 Temporal 자료형 정의 추가, &lt;code&gt;lib.dom&lt;/code&gt;에 &lt;code&gt;dom.iterable&lt;/code&gt;와 &lt;code&gt;dom.asynciterable&lt;/code&gt; 통합.&lt;br&gt;
&lt;code&gt;this&lt;/code&gt; 사용하지 않는 함수의 context sensitivity 개선, &lt;code&gt;#/&lt;/code&gt;로 시작하는 subpath imports 지원 추가.&lt;br&gt;
&lt;code&gt;--moduleResolution bundler&lt;/code&gt;와 &lt;code&gt;--module commonjs&lt;/code&gt; 조합할 수 있도록.&lt;br&gt;
TypeScript 7으로 이행 보조하는 &lt;code&gt;--stableTypeOrdering&lt;/code&gt; 플래그 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;astro-6-0-astro&quot;&gt;Astro 6.0 | Astro&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://astro.build/blog/astro-6/&quot; title=&quot;Astro 6.0 | Astro&quot;&gt;astro.build/blog/astro-6/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;astro&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Vite&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Astro 6.0 출시.&lt;br&gt;
Vite의 Environment API 사용한 개발 서버 업데이트에 의해, 개발할 때에도 Cloudflare Workers나 Bun/Deno 런타임 실행 가능.&lt;br&gt;
폰트 관리를 자동화하는 Fonts API 추가, 리퀘스트할 때 CMS이나 API 데이터 얻는 Live Content Collections 추가.&lt;br&gt;
CSP 지원이 안정판으로.&lt;br&gt;
Node.js 22 이상 필수로 변경, Vite 7/Shiki 4/Zod 4으로 업그레이드.&lt;br&gt;
Experimental으로, Go에서 Rust 기반으로 재작성한 컴파일러, Queued Rendering, Route Caching API 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-evolving-the-node-js-release-schedule&quot;&gt;Node.js — Evolving the Node.js Release Schedule&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule&quot; title=&quot;Node.js — Evolving the Node.js Release Schedule&quot;&gt;nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js 출시 모델을 2026년 10월부터 변경.&lt;br&gt;
현재 연 2회 메이저 출시에서 연 1회로 변경, 모든 출시가 LTS가 됨.&lt;br&gt;
새로운 출시 사이클에는, Alpha Phase(10월 〜 3월)에 Breaking Changes 허용, Current Phase(4년 〜 10월)에 안정화, 그 이후 30개월 LTS 페이즈가 됨.&lt;br&gt;
홀수/짝수 버전 구별이 사라지고, 버전 번호가 연도에 대응(Node.js 27은 2027년).&lt;br&gt;
Node.js 26(2026년 4월)이 현행 모델 최후 출시며, Node.js 27(2027년 4월)부터 새로운 스케쥴 적용.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;chrome-146-release-notes-chrome-for-developers&quot;&gt;Chrome 146  |  Release notes  |  Chrome for Developers&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/release-notes/146&quot; title=&quot;Chrome 146  |  Release notes  |  Chrome for Developers&quot;&gt;developer.chrome.com/release-notes/146&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Chrome&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Chrome 146 출시.&lt;br&gt;
CSS 스크롤 애니메이션, &lt;code&gt;trigger-scope&lt;/code&gt; 프로퍼티 지원.&lt;br&gt;
&lt;code&gt;meta name=&amp;quot;text-scale&amp;quot;&lt;/code&gt;에 의한 OS/브라우저 텍스트 스케일링 설정 반영, Scoped Custom Element Registry 지원.&lt;br&gt;
&lt;code&gt;Iterator.concat()&lt;/code&gt; 지원, Sanitizer API 추가, WebAudio의 Playback Statistics API 추가.&lt;br&gt;
WebGPU의 Compatibility mode 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;get-features-faster-with-chromes-two-week-release-cycle-blog-chrome-for-developers&quot;&gt;Get features faster with Chrome&amp;#039;s two-week release cycle  |  Blog  |  Chrome for Developers&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/blog/chrome-two-week-release?hl=en&quot; title=&quot;Get features faster with Chrome&amp;amp;#039;s two-week release cycle  |  Blog  |  Chrome for Developers&quot;&gt;developer.chrome.com/blog/chrome-two-week-release?hl&amp;#x3D;en&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Chrome&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Chrome 출시 사이클을 2026년 9월 (Chrome 153)부터, 4주 사이클에서 2주 사이클로 변경.&lt;br&gt;
데스크탑, Android, iOS가 대상, Dev 채널과 Canary 채널은 변경 없음.&lt;br&gt;
Extended Stable 채널은 8주 사이클 유지.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;redwoodsdk-1-0-getting-out-of-the-weeds-blog-redwoodsdk&quot;&gt;RedwoodSDK 1.0: Getting Out of the Weeds | Blog | RedwoodSDK&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://rwsdk.com/blog/redwood-v1-getting-out-of-the-weeds&quot; title=&quot;RedwoodSDK 1.0: Getting Out of the Weeds | Blog | RedwoodSDK&quot;&gt;rwsdk.com/blog/redwood-v1-getting-out-of-the-weeds&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare Workers 대상 React 프레임워크 RedwoodSDK 1.0 출시.&lt;br&gt;
구 RedwoodJS에서 방침을 변경, 코드 생성이나 암묵적인 규약 의존하지 않은 설계.&lt;br&gt;
Web표준 API(fetch, Request, Response)를 그대로 이용, 설정보다 합성(Composability)를 중시하는 아키텍처 채용.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/redwoodjs/sdk/releases/tag/v1.0.0&quot; title=&quot;Release v1.0.0 · redwoodjs/sdk&quot;&gt;Release v1.0.0 · redwoodjs/sdk&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;temporal-the-9-year-journey-to-fix-time-in-javascript-bloomberg-js-blog&quot;&gt;Temporal: The 9-Year Journey to Fix Time in JavaScript | Bloomberg JS Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bloomberg.github.io/js-blog/post/temporal/&quot; title=&quot;Temporal: The 9-Year Journey to Fix Time in JavaScript | Bloomberg JS Blog&quot;&gt;bloomberg.github.io/js-blog/post/temporal/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TC39&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ECMAScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;ECMAScript Proposal의 Temporal가 Stage 4가 되어 ES2026에 포함되는 것이 결정되는 경위에 대한 글.&lt;br&gt;
JavaScript의 &lt;code&gt;Date&lt;/code&gt; 오브젝트가 안고 있는 뮤터블한 설계, 타임존 대응 부족, 애매한 경로 문제를 각 해결하기 위해 Temporal가 어떤 설계했는가 설명하고 있다.&lt;br&gt;
Temporal는 이뮤터블한 설계, 타임존 설정, 달력 네이티브 지원, 나노초 정밀 특정이 갖고 있음.&lt;br&gt;
&lt;code&gt;ZonedDateTime&lt;/code&gt;/&lt;code&gt;Instant&lt;/code&gt;/&lt;code&gt;PlainDate&lt;/code&gt;/&lt;code&gt;PlainTime&lt;/code&gt; 같은 자료형.&lt;code&gt;temporal_rs&lt;/code&gt;이나 Bloomberg/Google/Microsoft/Igalia 등 복수 조직에 의한 협력도 소개되어 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;웹사이트, 서비스, 문서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-npmx-a-fast-modern-browser-for-the-npm-registry&quot;&gt;Announcing npmx: a fast, modern browser for the npm registry&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://npmx.dev/blog/alpha-release&quot; title=&quot;Announcing npmx: a fast, modern browser for the npm registry&quot;&gt;npmx.dev/blog/alpha-release&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;webservice&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;search&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm 패키지 검색 사이트 npmx α 출시&lt;br&gt;
패키지 다운로드 통계, 낡은 의존 관계 경고, ESM/CJS 모듈 형식 검출, 설치 크기 분석 기능을 갖고 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;flatt-security-setup-takumi-guard-npm-github-action-to-configure-npm-with-takumi-guard-registry-auth-via-oidc&quot;&gt;flatt-security/setup-takumi-guard-npm: GitHub Action to configure npm with Takumi Guard registry auth via OIDC&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/flatt-security/setup-takumi-guard-npm&quot; title=&quot;flatt-security/setup-takumi-guard-npm: GitHub Action to configure npm with Takumi Guard registry auth via OIDC&quot;&gt;github.com/flatt-security/setup-takumi-guard-npm&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Actions&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm 패키지 설치를 시큐리티 프록시 경유해서, 악의있는 패키지를 블록하는 GitHub Action.&lt;br&gt;
npm/pnpm/yarn 대응, 레지스트리를 &lt;code&gt;https://npm.flatt.tech/&lt;/code&gt;으로 설정함으로 설치할 때 패키지를 체크.&lt;br&gt;
GitHub OIDC 사용해 인증 대응하고, Bot ID를 설정해서 감시로그나 대시보드 가시성을 이용.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;aidenybai-react-grab-select-context-for-coding-agents-directly-from-your-website&quot;&gt;aidenybai/react-grab: Select context for coding agents directly from your website&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/aidenybai/react-grab/tree/main&quot; title=&quot;aidenybai/react-grab: Select context for coding agents directly from your website&quot;&gt;github.com/aidenybai/react-grab/tree/main&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Web사이트 상에 UI 요소를 Inspect해서 React 컴포넌트 명이나 파일 경로, HTML 소스코드 등 컨텍스트 정보를 복사할 수 있는 도구.&lt;br&gt;
복사한 정보를 Cursor나 Claude Code 같은 AI 코딩 에이전트에게 전달해서 이용.&lt;br&gt;
Next.js/Vite/webpack 대응, 플러그인에 의한 커스터마이즈나 Primitives API 의한 독자 UI 구축에도 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;dupontcyborg-numpy-ts-full-numpy-in-typescript-javascript-94-coverage&quot;&gt;dupontcyborg/numpy-ts: Full NumPy, in TypeScript/JavaScript (94% coverage)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/dupontcyborg/numpy-ts&quot; title=&quot;dupontcyborg/numpy-ts: Full NumPy, in TypeScript/JavaScript (94% coverage)&quot;&gt;github.com/dupontcyborg/numpy-ts&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;math&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Python의 NumPy를 TypeScript/JavaScript로 재구축한 라이브러리.&lt;br&gt;
NumPy의 507 함수 중 476 함수를 커버하는 .dtype 지정, 브로드캐스팅, 선형대수계산, NumPy 스타일의 슬라이스 기법 지원.&lt;br&gt;
Tree-shakeable한 모듈 구성으로, Node.js와 브라우저 양쪽에서 동작.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pbakaus-impeccable-the-design-language-that-makes-your-ai-harness-better-at-design&quot;&gt;pbakaus/impeccable: The design language that makes your AI harness better at design.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pbakaus/impeccable&quot; title=&quot;pbakaus/impeccable: The design language that makes your AI harness better at design.&quot;&gt;github.com/pbakaus/impeccable&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Design&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;AI 코딩 에이전트 대상 프론트엔드 디자인 명령어 셋.&lt;br&gt;
타이포그라피, 색채, 공간설계, 모션, 인터렉션, 반응형 디자인, UX 라이팅 스킬 정의.&lt;br&gt;
AI가 생성하는 UI/UX 디자인에 의한 안티 패턴의 가이던스도 포함.&lt;br&gt;
Claude Code, Cursor, Gemini CLI 같은 AI 도구에 대응.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Thu, 12 Mar 2026 20:45:51 +0900</pubDate>
        <link>https://jser.info/ko/2026/03/12/typescript-6.0-rc-solid-v2.0.0-beta-node.js/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/03/12/typescript-6.0-rc-solid-v2.0.0-beta-node.js/</guid>
        
        <category>npm</category>
        
        <category>nodejs</category>
        
        <category>TypeScript</category>
        
        <category>React</category>
        
        <category>Tools</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-02-26: Electrobun v1, Deno 2.7, Oxfmt Beta</title>
        <description>&lt;p&gt;JSer.info #765 - Electrobun v1가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blackboard.sh/blog/electrobun-v1/&quot;&gt;Electrobun v1 - Blackboard Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TypeScript으로 크로스플랫폼 데스크탑 애플리케이션을 만들 수 있는 프레임워크, 런타임은 Bun, Zig나 C/C++로 구현되었다.&lt;br&gt;
윈도우 관리나 메뉴, 글로벌 단축키 같은 네이티브 기능 지원, 차분 배치에 의한 자동 업데이트 기능과 프로세스 분리된 webview 구조를 가지고 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Deno v2.7가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://deno.com/blog/v2.7&quot;&gt;Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Temporal API가 stable으로 변경, Windows ARM(aarch64) 지원이 추가되었다. &lt;code&gt;package.json&lt;/code&gt;의 &lt;code&gt;overrides&lt;/code&gt; 필드 지원, &lt;code&gt;CompressionStream&lt;/code&gt;/&lt;code&gt;DecompressionStream&lt;/code&gt;에서 Brotli 지원, Web Crypto API에서 SHA3 알고리즘 지원이 포함.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Oxc의 JavaScript Formatter Oxfmt β가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://oxc.rs/blog/2026-02-24-oxfmt-beta&quot;&gt;Oxfmt Beta | The JavaScript Oxidation Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prettier의 JavaScript/TypeScript 호환 테스트를 100% 패스. Tailwind CSS 클래스 정렬, import 정렬, &lt;code&gt;package.json&lt;/code&gt; 필드 정렬이 포함된 지원이다.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;electrobun-v1-blackboard-blog&quot;&gt;Electrobun v1 - Blackboard Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blackboard.sh/blog/electrobun-v1/&quot; title=&quot;Electrobun v1 - Blackboard Blog&quot;&gt;blackboard.sh/blog/electrobun-v1/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Bun&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Zig&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Electron&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript로 크로스플랫폼 데스크탑 애플리케이션을 만들 수 있는 프레임워크.&lt;br&gt;
런타임 Bun, Zig와 C/C++로 구현.&lt;br&gt;
윈도우 관리/메뉴/글로벌 단축키/클립보드/다이얼로그 같은 네이티브 기능 지원.&lt;br&gt;
차분 배치로 자동 업데이트 기능, 프로레스 분리된 webview를 &lt;code&gt;&amp;lt;electrobun-webview&amp;gt;&lt;/code&gt; 요소로 다루는 구조를 갖고 있다.&lt;br&gt;
macOS/Windows/Ubuntu 대응.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/blackboardsh/electrobun&quot; title=&quot;blackboardsh/electrobun: Build ultra fast, tiny, and cross-platform desktop apps with Typescript.&quot;&gt;blackboardsh/electrobun: Build ultra fast, tiny, and cross-platform desktop apps with Typescript.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blackboard.sh/electrobun/docs/&quot; title=&quot;Electrobun Documentation - Build ultra fast, tiny, cross-platform desktop apps&quot;&gt;Electrobun Documentation - Build ultra fast, tiny, cross-platform desktop apps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v4-12-0-honojs-hono&quot;&gt;Release v4.12.0 · honojs/hono&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/honojs/hono/releases/tag/v4.12.0&quot; title=&quot;Release v4.12.0 · honojs/hono&quot;&gt;github.com/honojs/hono/releases/tag/v4.12.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Hono&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Hono v4.12.0 출시.&lt;br&gt;
Hono Client에 &lt;code&gt;$path()&lt;/code&gt; 메서드 추가, SSG 대상 redirect plugin 추가, Basic Auth의 &lt;code&gt;onAuthSuccess&lt;/code&gt; 콜백 추가.&lt;br&gt;
&lt;code&gt;getConnInfo&lt;/code&gt;가 AWS Lambda/Cloudflare Pages/Netlify 대응.&lt;br&gt;
TrieRouter 성능 개선, &lt;code&gt;c.json()&lt;/code&gt;의 Fast Path 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;oxfmt-beta-the-javascript-oxidation-compiler&quot;&gt;Oxfmt Beta | The JavaScript Oxidation Compiler&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://oxc.rs/blog/2026-02-24-oxfmt-beta&quot; title=&quot;Oxfmt Beta | The JavaScript Oxidation Compiler&quot;&gt;oxc.rs/blog/2026-02-24-oxfmt-beta&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Oxc의 JavaScript Formatter Oxfmtβ 출시.&lt;br&gt;
Prettier의 JavaScript/TypeScript 호환 테스트 100% 패스.&lt;br&gt;
Tailwind CSS 클래스 정렬, import 정렬, &lt;code&gt;package.json&lt;/code&gt; 필드 정렬 지원&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://oxc.rs/docs/guide/usage/formatter&quot; title=&quot;Oxfmt | The JavaScript Oxidation Compiler&quot;&gt;Oxfmt | The JavaScript Oxidation Compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-25-7-0-current&quot;&gt;Node.js — Node.js 25.7.0 (Current)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v25.7.0&quot; title=&quot;Node.js — Node.js 25.7.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v25.7.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node v25.7.0 출시.&lt;br&gt;
&lt;code&gt;node:sqlite&lt;/code&gt; 모듈이 Release Candidate(RC)으로 승격.&lt;br&gt;
Single Executable Applications(SEA)로 ESM 엔트리포인트 지원, &lt;br&gt;
HTTP/2でHTTP/1으로 폴백 설정 &lt;code&gt;http1Options&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;Duplex.toWeb()&lt;/code&gt;의 type 옵션을 &lt;code&gt;readableType&lt;/code&gt;으로 재명명, &lt;code&gt;node:test&lt;/code&gt;으로 SIGINT할 때 중단된 테스트 게시.&lt;br&gt;
&lt;code&gt;fs.stat&lt;/code&gt;으로 &lt;code&gt;throwIfNoEntry&lt;/code&gt; 옵션 추가, &lt;code&gt;zlib&lt;/code&gt;으로 Brotli 압축 딕셔너리 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-24-14-0-lts&quot;&gt;Node.js — Node.js 24.14.0 (LTS)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v24.14.0&quot; title=&quot;Node.js — Node.js 24.14.0 (LTS)&quot;&gt;nodejs.org/en/blog/release/v24.14.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node v24.14.0 출시.&lt;br&gt;
&lt;code&gt;async_hooks&lt;/code&gt;의 &lt;code&gt;createHook()&lt;/code&gt;에 &lt;code&gt;trackPromises&lt;/code&gt; 옵션 추가, &lt;code&gt;fs.watch()&lt;/code&gt;에 &lt;code&gt;ignore&lt;/code&gt; 옵션 추가.&lt;br&gt;
&lt;code&gt;http.setGlobalProxyFromEnv()&lt;/code&gt; 추가, Subpath Imports로 &lt;code&gt;#/&lt;/code&gt;부터 시작하는 경로 지원.&lt;br&gt;
SQLite의 defensive mode를 기본적 유효화, Embedder API으로 ESM 초기 지원 추가.&lt;br&gt;
&lt;code&gt;stream/consumers&lt;/code&gt;에 &lt;code&gt;bytes()&lt;/code&gt; 메서드 추가, &lt;code&gt;node:test&lt;/code&gt;의 &lt;code&gt;run()&lt;/code&gt;으로 &lt;code&gt;env&lt;/code&gt; 옵션 추가과 &lt;code&gt;it.expectFailure&lt;/code&gt; 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;deno-2-7-temporal-api-windows-arm-and-npm-overrides-deno&quot;&gt;Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://deno.com/blog/v2.7&quot; title=&quot;Deno 2.7: Temporal API, Windows ARM, and npm overrides | Deno&quot;&gt;deno.com/blog/v2.7&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;deno&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Deno v2.7 출시.&lt;br&gt;
Temporal API이 stable으로 변경, Windows ARM(aarch64) 지원.&lt;br&gt;
&lt;code&gt;package.json&lt;/code&gt;의 &lt;code&gt;overrides&lt;/code&gt; 필드 지원, &lt;code&gt;deno install --compile&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;CompressionStream&lt;/code&gt;/&lt;code&gt;DecompressionStream&lt;/code&gt;가 Brotli 지원, Web Crypto API에서 SHA3 알고리즘 지원.&lt;br&gt;
&lt;code&gt;deno task&lt;/code&gt;에서 globstar(&lt;code&gt;**&lt;/code&gt;)와 &lt;code&gt;pipefail&lt;/code&gt; 지원, &lt;code&gt;deno compile --self-extracting&lt;/code&gt; 옵션 추가.&lt;br&gt;
Web Worker의 DevTools 디버그 대응, OpenTelemetry에서 Deno Cron 자동 계측 대응.&lt;br&gt;
Node.js 호환성 개선으로 &lt;code&gt;node:worker_threads&lt;/code&gt;/&lt;code&gt;node:child_process&lt;/code&gt;/&lt;code&gt;node:zlib&lt;/code&gt;(Zstd) 수정, V8 14.5으로 업데이트.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;npm-bulk-trusted-publishing-config-and-script-security-now-generally-available-github-changelog&quot;&gt;npm bulk trusted publishing config and script security now generally available - GitHub Changelog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/changelog/2026-02-18-npm-bulk-trusted-publishing-config-and-script-security-now-generally-available/&quot; title=&quot;npm bulk trusted publishing config and script security now generally available - GitHub Changelog&quot;&gt;github.blog/changelog/2026-02-18-npm-bulk-trusted-publishing-config-and-script-security-now-generally-available/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm CLI v11.10.0 출시.&lt;br&gt;
&lt;code&gt;min-release-age&lt;/code&gt;에서 패키지 공개에서 일정 시간 경과 지난 것만 설치하도록.&lt;br&gt;
&lt;code&gt;npm trust&lt;/code&gt; 명령어로 복수의 패키지 OIDC Trusted Publishing 설정을 일괄적으로 처리 가능.&lt;br&gt;
&lt;code&gt;--allow-git&lt;/code&gt; 플래그 추가로, git 의존 관계 설치할 때 보안 제어가 가능.&lt;code&gt;.npmrc&lt;/code&gt;에서 git 실행 패스를 덮어써서 &lt;code&gt;--ignore-scripts&lt;/code&gt; 사용할 때 코드 실행이 가능하도록한 문제 처리.&lt;br&gt;
&lt;code&gt;--allow-git=none&lt;/code&gt; 이용이 권장, npm CLI v12에서는 기본이 될 예정.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/npm/cli/releases/tag/v11.11.0&quot; title=&quot;Release v11.11.0 · npm/cli&quot;&gt;Release v11.11.0 · npm/cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;the-react-foundation-a-new-home-for-react-hosted-by-the-linux-foundation-react&quot;&gt;The React Foundation: A New Home for React Hosted by the Linux Foundation – React&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://react.dev/blog/2026/02/24/the-react-foundation&quot; title=&quot;The React Foundation: A New Home for React Hosted by the Linux Foundation – React&quot;&gt;react.dev/blog/2026/02/24/the-react-foundation&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;OpenSource&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;community&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;organization&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;React Foundation가 Linux Foundation 산하에 정식으로 설립됨.&lt;br&gt;
React, React Native, JSX 프레젝트가 Meta에서 React Foundation으로 이관.&lt;br&gt;
플래티넘 멤버로 Amazon, Callstack, Expo, Huawei, Meta, Microsoft, Software Mansion, Vercel 참가.&lt;br&gt;
기술적인 거버넌스는 Foundation에서 독립되어 유지, 공헌자나 관리자가 기술적인 방향성 결정&lt;br&gt;
지금부터 몇 개월간 레포지토리나 인프라 이관이 진행될 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-styled-components-6-3-7-styled-components-styled-components&quot;&gt;Release &lt;a href=&quot;mailto:styled-components@6.3.7&quot;&gt;styled-components@6.3.7&lt;/a&gt; · styled-components/styled-components&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/styled-components/styled-components/releases/tag/styled-components%406.3.7&quot; title=&quot;Release styled-components@6.3.7 · styled-components/styled-components&quot;&gt;github.com/styled-components/styled-components/releases/tag/styled-components%406.3.7&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;styled-components v6.3.7 출시.&lt;br&gt;
&lt;code&gt;createGlobalStyle&lt;/code&gt;가 React StrictMode나 RSC(React Server Components)으로 정상적으로 동작하지 않는 문제 수정.&lt;br&gt;
package.json에서 &lt;code&gt;exports&lt;/code&gt; 필드를 추가 ESM 대응 개선&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;clinejection-compromising-clines-production-releases-just-by-prompting-an-issue-triager-adnan-khan-security-research&quot;&gt;Clinejection — Compromising Cline&amp;#039;s Production Releases just by Prompting an Issue Triager | Adnan Khan - Security Research&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://adnanthekhan.com/posts/clinejection/&quot; title=&quot;Clinejection — Compromising Cline&amp;amp;#039;s Production Releases just by Prompting an Issue Triager | Adnan Khan - Security Research&quot;&gt;adnanthekhan.com/posts/clinejection/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;VSCode&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cline의 GitHub Actions 워크플로우 공격에 대한 글.&lt;br&gt;
AI 사용해 Issue Triage에 Prompt Injection을 기점으로, GitHub Actions 캐시 포이즈닝을 조합한 공격 수법에 대해 정리.&lt;br&gt;
공격이 성공한 경우, VSCode Marketplace/OpenVSX/npm 공개 토큰을 유출된 문제가 있음, 실제로 Cline CLI의 npm 패키지가 침해됨.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;goodbye-innerhtml-hello-sethtml-stronger-xss-protection-in-firefox-148-mozilla-hacks-the-web-developer-blog&quot;&gt;Goodbye innerHTML, Hello setHTML: Stronger XSS Protection in Firefox 148 - Mozilla Hacks - the Web developer blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://hacks.mozilla.org/2026/02/goodbye-innerhtml-hello-sethtml-stronger-xss-protection-in-firefox-148/&quot; title=&quot;Goodbye innerHTML, Hello setHTML: Stronger XSS Protection in Firefox 148 - Mozilla Hacks - the Web developer blog&quot;&gt;hacks.mozilla.org/2026/02/goodbye-innerhtml-hello-sethtml-stronger-xss-protection-in-firefox-148/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Firefox&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;XSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;DOM&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Firefox 148에서 구현된 Sanitizer API 관련해서.&lt;br&gt;
&lt;code&gt;innerHTML&lt;/code&gt;는 HTML를 필터링하지 않고 삽입함, &lt;code&gt;setHTML()&lt;/code&gt;는 자동적으로 Sanitizer해서 XSS 원인이 될 위험한 요소나 속성을 제거함.&lt;br&gt;
Sanitizer API 기본적 설정이나 커스텀 설정, Trusted Types와 조합에 대해서 다뤄짐.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;how-we-rebuilt-next-js-with-ai-in-one-week&quot;&gt;How we rebuilt Next.js with AI in one week&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/vinext/&quot; title=&quot;How we rebuilt Next.js with AI in one week&quot;&gt;blog.cloudflare.com/vinext/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Next.js&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare에 의한 Next.js 호환 프레임워크 vinext에 대하여.&lt;br&gt;
Next.js 라우팅, React Server Components, Server Actions 기능을 Vite 기반으로 재구현.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/cloudflare/vinext&quot; title=&quot;cloudflare/vinext: Vite plugin that reimplements the Next.js API surface — deploy anywhere&quot;&gt;cloudflare/vinext: Vite plugin that reimplements the Next.js API surface — deploy anywhere&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;웹사이트, 서비스, 문서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;millionco-react-doctor-let-coding-agents-diagnose-and-fix-your-react-code&quot;&gt;millionco/react-doctor: Let coding agents diagnose and fix your React code&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/millionco/react-doctor&quot; title=&quot;millionco/react-doctor: Let coding agents diagnose and fix your React code&quot;&gt;github.com/millionco/react-doctor&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ESLint&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;performance&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;accessibility&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;React 코드 기반 정적 해석으로, 헬스 스코어(0〜100) 검출하는 도구.&lt;br&gt;
60 이상 규칙에서 state/effects, 성능, 아키텍처, 번들사이즈, 보안, 접근성등을 체크.&lt;br&gt;
미사용 파일이나 export 검출, Next.js/Vite/Remix 같은 프레임워크 자동 검출에 대응.&lt;br&gt;
CLI나 GitHub Actions, Node.js API로 이용 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vercel-labs-portless-replace-port-numbers-with-stable-named-localhost-urls-for-humans-and-agents&quot;&gt;vercel-labs/portless: Replace port numbers with stable, named .localhost URLs. For humans and agents.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/vercel-labs/portless&quot; title=&quot;vercel-labs/portless: Replace port numbers with stable, named .localhost URLs. For humans and agents.&quot;&gt;github.com/vercel-labs/portless&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;debug&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;포트번호 대신 &lt;code&gt;myapp.localhost&lt;/code&gt; 같은 명명형 &lt;code&gt;.localhost&lt;/code&gt; URL를 사용하는 개발용 프록시 도구.&lt;br&gt;
&lt;code&gt;portless proxy start&lt;/code&gt;로 데몬 기동, &lt;code&gt;portless myapp next dev&lt;/code&gt; 같은 위험 서버를 기동.&lt;br&gt;
&lt;code&gt;http://myapp.localhost:1355&lt;/code&gt;같이 URL로 접근 가능.&lt;br&gt;
HTTP/2나 HTTPS 증명서 자동생성 대응, Next.js/Express/Nuxt/Vite/Astro 프레임워크에서 이용 가능.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Thu, 26 Feb 2026 23:48:54 +0900</pubDate>
        <link>https://jser.info/ko/2026/02/26/electrobun-v1-deno-2.7-oxfmt-beta/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/02/26/electrobun-v1-deno-2.7-oxfmt-beta/</guid>
        
        <category>security</category>
        
        <category>Tools</category>
        
        <category>nodejs</category>
        
        <category>React</category>
        
        <category>AI</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-02-16: TypeScript 6.0 Beta, State of React 2025 결과, Interop 2026</title>
        <description>&lt;p&gt;JSer.info #764 - TypeScript 6.0 Beta가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/&quot;&gt;Announcing TypeScript 6.0 Beta - TypeScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TypeScript 7(Go언어 기반)으로 마이그레이션에 집중한 출시로, 많은 기본 설정 변경 및 비권장화가 포함되어있다. &lt;code&gt;strict&lt;/code&gt;가 기본적으로 &lt;code&gt;true&lt;/code&gt;로, &lt;code&gt;module&lt;/code&gt; 기본이 &lt;code&gt;esnext&lt;/code&gt;으로, &lt;code&gt;target&lt;/code&gt; 기본이 &lt;code&gt;es2025&lt;/code&gt;으로 등으로 변경되었다. 또한, &lt;code&gt;target: es5&lt;/code&gt;이나 &lt;code&gt;--moduleResolution node10&lt;/code&gt; 등이 비권장이 되어, ES2025의 &lt;code&gt;RegExp.escape&lt;/code&gt;이나 Temporal의 자료형 정의 추가, TypeScript 7으로 마이그레이션을 보조하는 &lt;code&gt;--stableTypeOrdering&lt;/code&gt; 플래그 추가도 포함되어있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;State of React 2025 앙케이트 결과가 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://2025.stateofreact.com/en-US&quot;&gt;State of React 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;React 기능, 프레임워크, 상태 관리, 데이터 페칭, 메타 프레임워크, 도구, AI 활용에 대한 앙케이트 결과가 정리되어 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;브라우저 상호운용성 향상을 목표로하는 프로젝트 Interop 2026가 개시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://zenn.dev/yamanoku/articles/interop-2026-launched&quot;&gt;Interop 2026가 시작되었다!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://hacks.mozilla.org/2026/02/launching-interop-2026/&quot;&gt;Launching Interop 2026 - Mozilla Hacks - the Web developer blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webkit.org/blog/17818/announcing-interop-2026/&quot;&gt;Announcing Interop 2026 | WebKit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.igalia.com/news/interop-2026.html&quot;&gt;Interop 2026 Focus Areas Announced | Igalia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.dev/blog/interop-2026&quot;&gt;Interop 2026: Continuing to improve the web for developers | web.dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.windows.com/msedgedev/2026/02/12/microsoft-edge-and-interop-2026/&quot;&gt;Microsoft Edge and Interop 2026 - Microsoft Edge Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apple, Google, Microsoft, Mozilla 등의 브라우저 벤더가 참가, CSS Anchor Positioning, Container Style Queries, Navigation API, View Transitions 등이 포커스 에리어로 선택되었다. 그 외로는 Scroll-driven Animations, IndexedDB, WebRTC, WebTransport 등 합계 20분야가 대상이다.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-typescript-6-0-beta-typescript&quot;&gt;Announcing TypeScript 6.0 Beta - TypeScript&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/&quot; title=&quot;Announcing TypeScript 6.0 Beta - TypeScript&quot;&gt;devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript 6.0 Beta 출시.&lt;br&gt;
TypeScript 7(Go언어 기반)으로 마이그레이션에 집중한 출시로, 많은 기본 설정 변경이나 비권장화 포함.&lt;br&gt;
&lt;code&gt;strict&lt;/code&gt;가 기본적으로 &lt;code&gt;true&lt;/code&gt;으로 변경, &lt;code&gt;module&lt;/code&gt; 기본이 &lt;code&gt;esnext&lt;/code&gt;으로 변경, &lt;code&gt;target&lt;/code&gt; 기본적으로 &lt;code&gt;es2025&lt;/code&gt;으로 변경, &lt;code&gt;types&lt;/code&gt; 기본이 &lt;code&gt;[]&lt;/code&gt;으로 변경.&lt;br&gt;
&lt;code&gt;target: es5&lt;/code&gt;/&lt;code&gt;--moduleResolution node10&lt;/code&gt;/&lt;code&gt;--module amd|umd|system&lt;/code&gt;/&lt;code&gt;--outFile&lt;/code&gt; 등을 비권장화.&lt;br&gt;
ES2025의 &lt;code&gt;RegExp.escape&lt;/code&gt;이나 Temporal 자료형 정의를 추가, &lt;code&gt;lib.dom&lt;/code&gt;으로 &lt;code&gt;dom.iterable&lt;/code&gt;와 &lt;code&gt;dom.asynciterable&lt;/code&gt; 통합.&lt;br&gt;
TypeScript 7으로 마이그레이션 보조하는 &lt;code&gt;--stableTypeOrdering&lt;/code&gt; 플래그 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;webkit-features-for-safari-26-3-webkit&quot;&gt;WebKit features for Safari 26.3 | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/17798/webkit-features-for-safari-26-3/&quot; title=&quot;WebKit features for Safari 26.3 | WebKit&quot;&gt;webkit.org/blog/17798/webkit-features-for-safari-26-3/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;safari&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Safari 26.3 출시.&lt;br&gt;
zstd 지원, Navigation API의 &lt;code&gt;NavigateEvent&lt;/code&gt;으로 &lt;code&gt;AbortSignal&lt;/code&gt; 공개, 네비게이션 중단할 때에 처리를 캔슬가능.&lt;br&gt;
CSS의 &lt;code&gt;position-try&lt;/code&gt;이나 &lt;code&gt;text-decoration&lt;/code&gt;, 멀티 컬럼 레이아웃 관련한 버그 수정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;biome-v2-4-embedded-snippets-html-accessibility-and-better-framework-support-biome&quot;&gt;Biome v2.4—Embedded Snippets, HTML Accessibility, and Better Framework Support | Biome&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://biomejs.dev/blog/biome-v2-4/&quot; title=&quot;Biome v2.4—Embedded Snippets, HTML Accessibility, and Better Framework Support | Biome&quot;&gt;biomejs.dev/blog/biome-v2-4/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;biome&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Biome v2.4 출시.&lt;br&gt;
JavaScript내에 포함된 CSS이나 GraphQL 스니펫의 Formatter와 Lint를 지원.&lt;br&gt;
HTML 접근성 대상 15개 Lint 규칙 추가.&lt;br&gt;
Vue/Svelte/Astro 지원 개선, CSS 파서에서 Vue SFC의 &lt;code&gt;:slotted&lt;/code&gt;이나 &lt;code&gt;:deep&lt;/code&gt; 대응.&lt;br&gt;
SARIF 레포트 추가, &lt;code&gt;--skip&lt;/code&gt;/&lt;code&gt;--only&lt;/code&gt; 플래그 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;blog-writing-good-unit-tests&quot;&gt;Blog &amp;gt; Writing Good Unit Tests&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://eliocapella.com/blog/writing-good-unit-tests/&quot; title=&quot;Blog &amp;amp;gt; Writing Good Unit Tests&quot;&gt;eliocapella.com/blog/writing-good-unit-tests/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;test&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;유닛테스트 작성 방법에 대한 글.&lt;br&gt;
함수가 아닌 동작을 테스트하는 것, 시스템 경계만 Mock화하는 것, 인메모리 데이터 베이스 활용, HTTP Mock에 대해서&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;state-of-react-2025&quot;&gt;State of React 2025&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://2025.stateofreact.com/en-US&quot; title=&quot;State of React 2025&quot;&gt;2025.stateofreact.com/en-US&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Survey&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;State of React 2025 앙케이트 결과가 공개되었다.&lt;br&gt;
React 기능, 프레임워크, 상태관리, 데이터페칭, 메타 프레임워크, 도구, AI 활용 등에 대한 앙케이트 결과 정리.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;the-css-selection-2026-edition-project-wallace&quot;&gt;The CSS Selection - 2026 Edition - Project Wallace&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.projectwallace.com/the-css-selection/2026&quot; title=&quot;The CSS Selection - 2026 Edition - Project Wallace&quot;&gt;www.projectwallace.com/the-css-selection/2026&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;10만 이상 웹사이트 대상으로 한 실제 CSS 이용 상황 조사 레포트.&lt;br&gt;
Web Almanac의 CSS 대체로, CSS 파일 크기, 프로퍼티 이용률, 모던 CSS 기능 선택률 등 정리.&lt;br&gt;
&lt;code&gt;:where()&lt;/code&gt; 91%, &lt;code&gt;:has()&lt;/code&gt; 41%, &lt;code&gt;@container&lt;/code&gt; 10%, &lt;code&gt;@layer&lt;/code&gt; 2.7% 선택률임.&lt;br&gt;
벤더 prefix나 IE6 시대 브라우저 hack이 아직 남아있는 점에 대해 다뤄짐.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;interop-2026&quot;&gt;Interop 2026가 시작되었다!&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://zenn.dev/yamanoku/articles/interop-2026-launched&quot; title=&quot;Interop 2026가 시작되었다!&quot;&gt;zenn.dev/yamanoku/articles/interop-2026-launched&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebPlatformAPI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;브라우저 상호운용성 향상을 목표로한 프로젝트 Interop 2026에 대하여.&lt;br&gt;
Apple, Google, Microsoft, Mozilla 같은 브라우저 벤더가 참가.&lt;br&gt;
CSS Anchor Positioning, Container Style Queries, Navigation API, View Transitions가 포커스 에리어로 선정됨.&lt;br&gt;
그 외로는 Scroll-driven Animations, IndexedDB, WebRTC, WebTransport 등 합계 20 분야가 대상이 됨.&lt;br&gt;
조사 대상으로 접근성 테스트, JPEG XL, 모바일 테스트, WebVTT의 4분야가 포함.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://hacks.mozilla.org/2026/02/launching-interop-2026/&quot; title=&quot;Launching Interop 2026 - Mozilla Hacks - the Web developer blog&quot;&gt;Launching Interop 2026 - Mozilla Hacks - the Web developer blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://webkit.org/blog/17818/announcing-interop-2026/&quot; title=&quot;Announcing Interop 2026 | WebKit&quot;&gt;Announcing Interop 2026 | WebKit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.igalia.com/news/interop-2026.html&quot; title=&quot;Interop 2026 Focus Areas Announced | Igalia&quot;&gt;Interop 2026 Focus Areas Announced | Igalia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://web.dev/blog/interop-2026&quot; title=&quot;Interop 2026: Continuing to improve the web for developers | web.dev&quot;&gt;Interop 2026: Continuing to improve the web for developers | web.dev&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogs.windows.com/msedgedev/2026/02/12/microsoft-edge-and-interop-2026/&quot; title=&quot;Microsoft Edge and Interop 2026 - Microsoft Edge Blog&quot;&gt;Microsoft Edge and Interop 2026 - Microsoft Edge Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;web-contenteditable&quot;&gt;Web 폰트를 사용한 contenteditable 에서 탈출&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://techblog.lycorp.co.jp/ja/20260216c&quot; title=&quot;Web 폰트 사용해 contenteditable 에서 탈출&quot;&gt;techblog.lycorp.co.jp/ja/20260216c&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;fonts&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;임의 크기의 변형 가능한 공백 문자를 갖고 있는 웹폰트와 텍스트 오버레이를 사용해 텍스트 에리어에 이모티콘 등을 보이는 방법에 대해&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;roadmap-2026-2026-02-04-webpack&quot;&gt;Roadmap 2026 (2026-02-04) | webpack&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webpack.js.org/blog/2026-04-02-roadmap-2026/&quot; title=&quot;Roadmap 2026 (2026-02-04) | webpack&quot;&gt;webpack.js.org/blog/2026-04-02-roadmap-2026/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;webpack&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;webpack 2026년 로드맵.&lt;br&gt;
CSS Modules 네이티브 지원, TypeScript 로더없이 빌드, HTML 엔트리 포인트 플래그인 없이 이용을 webpack 본체에 내장 예정.&lt;br&gt;
Node.js/Deno/Bun 크로스 런타임 대응, Barrel File 지연 최적화, Minimizer 플러그인 통합도 계획.&lt;br&gt;
webpack 6 출시 변경에 대해 소개.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;웹사이트, 서비스, 문서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;npmx-package-browser-for-the-npm-registry&quot;&gt;npmx - Package Browser for the npm Registry&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://npmx.dev/&quot; title=&quot;npmx - Package Browser for the npm Registry&quot;&gt;npmx.dev/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;search&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;webservice&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm 레지스트리 인크리멘탈 검색 서비스.&lt;br&gt;
Algolia에 의한 패키지 검색, 패키지 비교 기능, npm/pnpm/yarn/bun/deno/vlt 등의 패키지 매니저에 대응한 설치 명령어 표시 기능이 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;hamzaydia-verifyfetch-resumable-verified-downloads-for-large-browser-files-fail-at-3-8gb-resume-from-3-8gb&quot;&gt;hamzaydia/verifyfetch: Resumable, verified downloads for large browser files. Fail at 3.8GB, resume from 3.8GB.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/hamzaydia/verifyfetch&quot; title=&quot;hamzaydia/verifyfetch: Resumable, verified downloads for large browser files. Fail at 3.8GB, resume from 3.8GB.&quot;&gt;github.com/hamzaydia/verifyfetch&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Fetch&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;브라우저에서 대용량 파일 다운로드에 대해, resume 대응과 정합성 검증하는 라이브러리.&lt;br&gt;
WebAssembly에 의한 스트리밍 해쉬 계산, HTTP Range 리퀘스트에 의한 resume 다운로드, IndexedDB으로 Chunk 저장 지원.&lt;br&gt;
사전에 파일을 일정 chunk으로 나눠진 해시 생성해두고, 매 Chunk 검증.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bikeshaving-shovel-run-service-workers-anywhere&quot;&gt;bikeshaving/shovel: Run Service Workers anywhere&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bikeshaving/shovel&quot; title=&quot;bikeshaving/shovel: Run Service Workers anywhere&quot;&gt;github.com/bikeshaving/shovel&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;ServiceWorker&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Bun&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Service Worker API나 Web 표준 API 인터페이스를 기반으로 한 서버 애플리케이션을 작성하는 메타 프레임워크.&lt;br&gt;
Node.js/Bun/Cloudflare Workers에서 동작.&lt;br&gt;
Service Worker의 &lt;code&gt;install&lt;/code&gt;/&lt;code&gt;activate&lt;/code&gt;/&lt;code&gt;fetch&lt;/code&gt; 이벤트를 기반으로 한 서버 라이프 사이클을 갖음.&lt;br&gt;
Fetch API, Cache API, FileSystem API, CookieStore API, URLPattern의 Web 표준API를 기반으로 함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;ubugeeei-vize-unofficial-high-performance-vue-js-toolchain-in-rust&quot;&gt;ubugeeei/vize: Unofficial High-Performance Vue.js Toolchain in Rust&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/ubugeeei/vize&quot; title=&quot;ubugeeei/vize: Unofficial High-Performance Vue.js Toolchain in Rust&quot;&gt;github.com/ubugeeei/vize&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Vue&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;compiler&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Rust으로 작성된 Vue.js 도구 체인.&lt;br&gt;
Vue SFC 컴파일러, Linter, Formatter, 자료형 체커, LSP를 포함.&lt;br&gt;
CLI/Browser(WebAssembly)/Vite Plugin으로 이용 가능&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Mon, 16 Feb 2026 19:52:55 +0900</pubDate>
        <link>https://jser.info/ko/2026/02/16/typescript-6.0-beta-state-of-react-2025-interop-2026/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/02/16/typescript-6.0-beta-state-of-react-2025-interop-2026/</guid>
        
        <category>browser</category>
        
        <category>CSS</category>
        
        <category>TypeScript</category>
        
        <category>safari</category>
        
        <category>Fetch</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-02-04: Yarn 6 Preview, WebAssembly 10년, State of JavaScript 2025 결과 공개</title>
        <description>&lt;p&gt;JSer.info #763 - Yarn 6 프리뷰가 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://yarn6.netlify.app/blog/2026-01-28-yarn-6-preview/&quot;&gt;Yarn 6 Preview | Yarn&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yarn 6는 Rust로 재작성되어, 성능 개선이 있다.&lt;br&gt;
Corepack 대신에 Yarn 버전 관리를 하는 &lt;code&gt;yarn switch&lt;/code&gt; 명령어 추가, package.json 변경할 때 자동으로 설치하는 Lazy Installs가 기본 유효화된다.&lt;br&gt;
마이그레이션 스텝으로, JS 구현 Yarn 5가 수 개월 안에 출시 예정이며, Rust 구현한 Yarn 6는 2026년 Q3 이후에 출시 예정이다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;WebAssembly 탄생 10년을 돌아 보는 글이 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bytecodealliance.org/articles/ten-years-of-webassembly-a-retrospective&quot;&gt;Bytecode Alliance — 10 Years of Wasm: A Retrospective&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2013년 asm.js으로 시작해, Mozilla의 Luke Wagner와 Google의 Ben Titzer 협력으로 WebAssembly가 탄생한 경위를 소개한다. 2015년에 주요 브라우저가 동시에 대응을 발표, 2017년에는 모든 브라우저 대응이 완료되었다. 그 이후, WASI나 Component Model의 개발로 인해서 브라우저 외에서 이용할 수 있도록 넓어졌다, WASI을 POSIX 카피로 하지 않은 점 등에 대해 다뤄진다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;State of JavaScript 2025 앙케이트 결과가 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://2025.stateofjs.com/en-US&quot;&gt;State of JavaScript 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;JavaScript 언어기능, 프레임워크, 라이브러리, 도구, 테스트, AI 활용 등에 대해 앙케이트 결과 정리되어있다.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v8-0-0-fullhuman-purgecss&quot;&gt;Release v8.0.0 · FullHuman/purgecss&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/FullHuman/purgecss/releases/tag/v8.0.0&quot; title=&quot;Release v8.0.0 · FullHuman/purgecss&quot;&gt;github.com/FullHuman/purgecss/releases/tag/v8.0.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;PurgeCSS v8.0.0 출시.&lt;br&gt;
PostCSS 플러그인 임포트 방법이 default import으로 변경.&lt;br&gt;
CLI에 &lt;code&gt;--preserve-paths&lt;/code&gt; 옵션 추가, CSS 변수에 참조된 애니메이션 유지 개선&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bun-v1-3-7-bun-blog&quot;&gt;Bun v1.3.7 | Bun Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.3.7&quot; title=&quot;Bun v1.3.7 | Bun Blog&quot;&gt;bun.com/blog/bun-v1.3.7&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Bun&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Bun v1.3.7 출시.&lt;br&gt;
JSON5 파서 &lt;code&gt;Bun.JSON5&lt;/code&gt;, JSON Lines 다루는 &lt;code&gt;Bun.JSONL&lt;/code&gt;, ANSI 텍스트 랩을 하는 &lt;code&gt;Bun.wrapAnsi()&lt;/code&gt; 추가.&lt;br&gt;
Markdown 형식에서 Heap이나 CPU 프로파일을 출력하는 &lt;code&gt;--heap-prof-md&lt;/code&gt;/&lt;code&gt;--cpu-prof-md&lt;/code&gt; 플래그 추가.&lt;br&gt;
&lt;code&gt;Buffer.from(array)&lt;/code&gt;/async-await/&lt;code&gt;array.flat()&lt;/code&gt; 성능 개선, HTTP/2 호환성 수정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v4-11-7-honojs-hono&quot;&gt;Release v4.11.7 · honojs/hono&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/honojs/hono/releases/tag/v4.11.7&quot; title=&quot;Release v4.11.7 · honojs/hono&quot;&gt;github.com/honojs/hono/releases/tag/v4.11.7&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Hono&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Hono v4.11.7 출시.&lt;br&gt;
다음 보안 문제를 수정하는 출시&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP 제한 Middleware의 IPv4 주소 검증 바이패스&lt;/li&gt;
&lt;li&gt;Cache Middleware에서 private나 no-store한 response가 캐시되는 문제&lt;/li&gt;
&lt;li&gt;Serve Static 미들웨어 (Cloudflare Workers adapter)에서의 내부 에셋 접근 문제&lt;/li&gt;
&lt;li&gt;hono/jsx의 ErrorBoundary에서의 XSS&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v0-0-58-microsoft-playwright-mcp&quot;&gt;Release v0.0.58 · microsoft/playwright-mcp&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/playwright-mcp/releases/tag/v0.0.58&quot; title=&quot;Release v0.0.58 · microsoft/playwright-mcp&quot;&gt;github.com/microsoft/playwright-mcp/releases/tag/v0.0.58&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;playwright&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;MCP&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;playwright-mcp v0.0.58 출시.&lt;br&gt;
&lt;code&gt;playwright-cli&lt;/code&gt; 명령어가 추가되어, 명령어로 Playwright를 조작 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-25-5-0-current&quot;&gt;Node.js — Node.js 25.5.0 (Current)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v25.5.0&quot; title=&quot;Node.js — Node.js 25.5.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v25.5.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node v25.5.0 출시.&lt;br&gt;
Single Executable Applications(SEA) 작성을 간략화하는 &lt;code&gt;--build-sea&lt;/code&gt; 플래그 추가.&lt;br&gt;
&lt;code&gt;fs.watch()&lt;/code&gt;에 &lt;code&gt;ignore&lt;/code&gt; 옵션을 추가, SQLite의 defensive mode를 기본적으로 유효화.&lt;br&gt;
&lt;code&gt;node:test&lt;/code&gt;에 &lt;code&gt;expectedFailure&lt;/code&gt; 옵션을 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;yarn-6-preview-yarn&quot;&gt;Yarn 6 Preview | Yarn&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://yarn6.netlify.app/blog/2026-01-28-yarn-6-preview/&quot; title=&quot;Yarn 6 Preview | Yarn&quot;&gt;yarn6.netlify.app/blog/2026-01-28-yarn-6-preview/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;yarn&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Yarn 6 프리뷰 공개.&lt;br&gt;
Yarn 6은 Rust으로 재작성되어, 성능 개선됨.&lt;br&gt;
Corepack 대신에 Yarn 버전 관리하는 &lt;code&gt;yarn switch&lt;/code&gt; 추가, package.json의 변경할 때 자동으로 설치하는 Lazy Installs가 기본.&lt;br&gt;
JS 구조인 Yarn 5은 마이그레이션 스텝으로 수 개월 내에 출시 예정, Rust 구현 Yarn 6은 2026년 Q3 이후 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;lodash-rolls-out-major-security-overhaul-openjs-foundation&quot;&gt;Lodash Rolls Out Major Security Overhaul | OpenJS Foundation&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://openjsf.org/blog/lodash-security-overhaul&quot; title=&quot;Lodash Rolls Out Major Security Overhaul | OpenJS Foundation&quot;&gt;openjsf.org/blog/lodash-security-overhaul&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;lodash&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Lodash 4.17.23 출시.&lt;br&gt;
&lt;code&gt;_.unset&lt;/code&gt;와 &lt;code&gt;_.omit&lt;/code&gt; 함수 Prototype Pollution 취약성 수정.&lt;br&gt;
프로젝트의 거버넌스 시큐리티 체제를 쇄신, Technical Steering Committee 설립.&lt;br&gt;
CodeQL로 정적 해석, Renovate로 의존 관계 자동 갱신, OpenSSF Scorecard 감시 도입.&lt;br&gt;
CI 재구축, Bun 지원, Playwright 사용한 브라우저 테스트 재도입도 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v1-58-0-microsoft-playwright&quot;&gt;Release v1.58.0 · microsoft/playwright&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.58.0&quot; title=&quot;Release v1.58.0 · microsoft/playwright&quot;&gt;github.com/microsoft/playwright/releases/tag/v1.58.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;playwright&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;testing&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;playwright v1.58.0 출시.&lt;br&gt;
&lt;code&gt;_react&lt;/code&gt;/&lt;code&gt;_vue&lt;/code&gt; 셀렉터, &lt;code&gt;:light&lt;/code&gt; 셀렉터 엔진, &lt;code&gt;devtools&lt;/code&gt; 옵션 삭제.&lt;br&gt;
macOS 13에서 WebKit 지원 종료.&lt;br&gt;
HTML 레포트 Speedboard 탭에 Timeline 추가, UI Mode와 Trace Viewer에 시스템 테마 옵션을 추가 및 검색 기능 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bun-v1-3-8-bun-blog&quot;&gt;Bun v1.3.8 | Bun Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.3.8&quot; title=&quot;Bun v1.3.8 | Bun Blog&quot;&gt;bun.com/blog/bun-v1.3.8&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Bun&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Bun v1.3.8 출시.&lt;br&gt;
Zig 작성된 내장 CommonMark 준거한 Markdown 파서 &lt;code&gt;Bun.markdown&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;bun build --metafile-md&lt;/code&gt;으로 LLM 프렌들리한 모듈 그래프의 메타데이터 출력 가능.&lt;br&gt;
Windows에서 &lt;code&gt;npm install -g bun&lt;/code&gt; 리그레션 수정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-version-28-0-0-jsdom-jsdom&quot;&gt;Release Version 28.0.0 · jsdom/jsdom&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/jsdom/jsdom/releases/tag/28.0.0&quot; title=&quot;Release Version 28.0.0 · jsdom/jsdom&quot;&gt;github.com/jsdom/jsdom/releases/tag/28.0.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;DOM&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;jsdom 28.0.0 출시.&lt;br&gt;
리소스 로딩 커스터마이즈 API 쇄신, &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;/&lt;code&gt;&amp;lt;frame&amp;gt;&lt;/code&gt; 요소에서 MIME type sniffing 지원.&lt;br&gt;
&lt;code&gt;XMLHttpRequest&lt;/code&gt;이나 &lt;code&gt;WebSocket&lt;/code&gt; 리퀘스트가 새로운 리소스 로등의 커스터마이즈해서 인터셉트 가능.&lt;br&gt;
리다이렉트할 때 &lt;code&gt;document referrer&lt;/code&gt; 수정, &lt;code&gt;XMLHttpRequest&lt;/code&gt; 버그 수정&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bytecode-alliance-10-years-of-wasm-a-retrospective&quot;&gt;Bytecode Alliance — 10 Years of Wasm: A Retrospective&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bytecodealliance.org/articles/ten-years-of-webassembly-a-retrospective&quot; title=&quot;Bytecode Alliance — 10 Years of Wasm: A Retrospective&quot;&gt;bytecodealliance.org/articles/ten-years-of-webassembly-a-retrospective&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;history&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;WebAssembly 탄생 10년 돌아보는 글.&lt;br&gt;
2013년 asm.js으로 시작해, Mozilla의 Luke Wagner와 Google의 Ben Titzer 협력에 의해 WebAssembly가 탄생한 경위 소개.&lt;br&gt;
2015년에 주요 브라우저가 동시에 대응 발표, 2017년에는 모든 브라우저 대응 완료.&lt;br&gt;
그 이후, WASI나 Component Model의 개발로 인해 브라우저 외로도 이용이 넓혀짐.&lt;br&gt;
WASI를 POSIX 카피하지 않은 점에 대해서도 다룸&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;custom-duckdb-wasm-builds-for-cloudflare-workers-tobilg-com&quot;&gt;Custom DuckDB Wasm builds for Cloudflare Workers - tobilg.com&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://tobilg.com/posts/custom-duckdb-wasm-builds-for-cloudflare-workers/&quot; title=&quot;Custom DuckDB Wasm builds for Cloudflare Workers - tobilg.com&quot;&gt;tobilg.com/posts/custom-duckdb-wasm-builds-for-cloudflare-workers/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;duckdb&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare Workers 상에서 DuckDB WebAssembly를 동작하기 위한 커스텀 빌드.&lt;br&gt;
DuckDB의 기존 Wasm 빌드는 브라우저 대상 설계며, Workers 비동기환경에서 동작하지 않기에, Emscripten의 Asyncify를 사용해 해결책을 소개함.&lt;br&gt;
@ducklings/workers 패키지를 사용해서, Parquet/JSON/httpfs 확장 기능을 포함하는 DuckDB Wasm를 엣지에서 실행 가능.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tobilg/ducklings&quot; title=&quot;tobilg/ducklings: A minimal DuckDB Wasm build for browsers and serverless environments like Cloudflare Workers&quot;&gt;tobilg/ducklings: A minimal DuckDB Wasm build for browsers and serverless environments like Cloudflare Workers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;state-of-javascript-2025&quot;&gt;State of JavaScript 2025&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://2025.stateofjs.com/en-US&quot; title=&quot;State of JavaScript 2025&quot;&gt;2025.stateofjs.com/en-US&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Survey&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;State of JavaScript 2025의 앙케이트 결과가 공개됨.&lt;br&gt;
JavaScript 언어 기능, 프레임워크, 라이브러리, 도구, 테스트, AI 활용 등에 대한 앙케이트 결과 정리.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;libpdf-js-core-a-modern-pdf-library-for-typescript-parse-modify-and-generate-pdfs-with-a-clean-intuitive-api&quot;&gt;LibPDF-js/core: A modern PDF library for TypeScript. Parse, modify, and generate PDFs with a clean, intuitive API.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/libpdf-js/core&quot; title=&quot;LibPDF-js/core: A modern PDF library for TypeScript. Parse, modify, and generate PDFs with a clean, intuitive API.&quot;&gt;github.com/libpdf-js/core&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;PDF&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Browser나 Node.js 등에서 동작하는 PDF 편집, 작성 라이브러리.&lt;br&gt;
PDF 해석, 수정, 생성 지원하며, RC4/AES 암호화, 디지털 서명, 폼 입력, 페이지 머지/분리, 텍스트 추출 등 대응.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Wed, 04 Feb 2026 22:19:34 +0900</pubDate>
        <link>https://jser.info/ko/2026/02/04/yarn-6-preview-webassembly-10-state-of-javascript-2025/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/02/04/yarn-6-preview-webassembly-10-state-of-javascript-2025/</guid>
        
        <category>Tools</category>
        
        <category>Bun</category>
        
        <category>security</category>
        
        <category>playwright</category>
        
        <category>WebAssembly</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-01-26: jQuery 4.0.0, Rolldown 1.0 RC, Stylelint 17</title>
        <description>&lt;p&gt;JSer.info #762 - jQuery 4.0.0가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.jquery.com/2026/01/17/jquery-4-0-0/&quot;&gt;jQuery 4.0.0 | Official jQuery Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;jQuery의 20주년을 기념하는 메이저 출시다. IE10 이하나 Edge Legacy, 오래된 iOS/Android Browser 지원 종료한다. &lt;code&gt;jQuery.isArray&lt;/code&gt;/&lt;code&gt;jQuery.trim&lt;/code&gt;/&lt;code&gt;jQuery.parseJSON&lt;/code&gt; 비권장 API 삭제, 소스코드를 AMD에서 ES모듈로 마이그레이션했다. 또한, Trusted Types와 CSP 지원을 개선하고, slim판 에서는 Deferreds와 Callbacks를 삭제해서 파일 크기를 경감했다. IE11 지원은 jQuery 5.0에서 종료 예정이다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Rolldown 1.0 RC가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-rc&quot;&gt;Announcing Rolldown 1.0 RC | VoidZero&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rolldown는 Rust로 작성한 JavaScript/TypeScript 번들러다. Rollup 플래그인과 호환성을 갖고, 기존 Rollup 기반 프로젝트에서 마이그레이션 하기 쉽도록 되어있다. Vite 8에는 기본 번들러를 Rolldown 이용될 예정이다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Stylelint 17.0.0가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/stylelint/stylelint/releases/tag/17.0.0&quot;&gt;Release 17.0.0 · stylelint/stylelint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/stylelint/stylelint/blob/main/docs/migration-guide/to-17.md&quot;&gt;stylelint/docs/migration-guide/to-17.md at main · stylelint/stylelint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zenn.dev/ryo_manba/articles/stylelint-v17-update&quot;&gt;Stylelint v17 주요한 변경점：ESM 마이그레이션과 CSS Nesting 대응&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Node.js 20.19.0 미만 지원 종료하고, CommonJS에서 Node.js API 지원 삭제한다. 기본적으로 &lt;code&gt;fix&lt;/code&gt; 모드가 &lt;code&gt;strict&lt;/code&gt;으로 변경되어, CSS Nesting 대응도 개선되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;jasmine-release_notes-6-0-0-md-at-main-jasmine-jasmine&quot;&gt;jasmine/release_notes/6.0.0.md at main · jasmine/jasmine&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/jasmine/jasmine/blob/main/release_notes/6.0.0.md&quot; title=&quot;jasmine/release\_notes/6.0.0.md at main · jasmine/jasmine&quot;&gt;github.com/jasmine/jasmine/blob/main/release_notes/6.0.0.md&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;testing&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;jasmine&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Jasmine 6.0.0 출시.&lt;br&gt;
Node.js 18 지원 종료, jasmine 네임스페이스에서 private API 삭제.&lt;br&gt;
HtmlReporterV2 추가. 프로그레시브바, 리얼타임 실패 표시, 성능 탭 등을 갖는 새로운 HTML 레포트.&lt;br&gt;
&lt;code&gt;jasmine.pp()&lt;/code&gt;으로 pretty printer API 공개, 실험적인 &lt;code&gt;safariYieldStrategy: &amp;quot;time&amp;quot;&lt;/code&gt; 옵션 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;experimental-build-mode-for-hono-and-express-projects-vercel&quot;&gt;Experimental build mode for Hono and Express projects - Vercel&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://vercel.com/changelog/experimental-build-mode-hono-express&quot; title=&quot;Experimental build mode for Hono and Express projects - Vercel&quot;&gt;vercel.com/changelog/experimental-build-mode-hono-express&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;vercel&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Hono&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;express&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vercel가 Hono와 Express 프로젝트 대상 실험적 빌드 모드 추가.&lt;br&gt;
&lt;code&gt;VERCEL_EXPERIMENTAL_BACKENDS=1&lt;/code&gt;를 환경 변수 설정에 유효화, 로그 루트 별 필터에 대응.&lt;br&gt;
또한, 상대 경로로 임포트할 때 파일 확장자가 불필요하게 됨, TypeScript 경로 alias에서 경로 alias 대응, ESM와 CommonJS 상호운용성 향상 같은 개선도 포함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;jquery-4-0-0-official-jquery-blog&quot;&gt;jQuery 4.0.0 | Official jQuery Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.jquery.com/2026/01/17/jquery-4-0-0/&quot; title=&quot;jQuery 4.0.0 | Official jQuery Blog&quot;&gt;blog.jquery.com/2026/01/17/jquery-4-0-0/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;jQuery&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;jQuery 4.0.0 출시.&lt;br&gt;
jQuery의 20주년 기념 출시.&lt;br&gt;
IE10 이하 지원 종료, Edge Legacy/ 오래된 iOS/Android Browser 지원 종료.&lt;br&gt;
&lt;code&gt;jQuery.isArray&lt;/code&gt;/&lt;code&gt;jQuery.trim&lt;/code&gt;/&lt;code&gt;jQuery.parseJSON&lt;/code&gt; 비권장 API 삭제.&lt;br&gt;
&lt;code&gt;jQuery.prototype&lt;/code&gt;에서 &lt;code&gt;push&lt;/code&gt;/&lt;code&gt;sort&lt;/code&gt;/&lt;code&gt;splice&lt;/code&gt; 메서드 삭제.&lt;br&gt;
focus 이벤트 순서를 W3C 사양에 맞춰 변경.&lt;br&gt;
소스코드를 AMD에서 ES 모듈로 마이그레이션.&lt;br&gt;
Trusted Types와 CSP 지원 개선.&lt;br&gt;
slim판에서는 Deferreds와 Callbacks 삭제, 파일 크기 경감.&lt;br&gt;
IE11 지원은 jQuery 5.0에서 종료 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-25-4-0-current&quot;&gt;Node.js — Node.js 25.4.0 (Current)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v25.4.0&quot; title=&quot;Node.js — Node.js 25.4.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v25.4.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node v25.4.0 출시.&lt;br&gt;
&lt;code&gt;require(esm)&lt;/code&gt;/모듈 컴파일 캐시/&lt;code&gt;v8.queryObjects()&lt;/code&gt;/&lt;code&gt;--heapsnapshot-near-heap-limit&lt;/code&gt;가 Stable으로 변경.&lt;br&gt;
&lt;code&gt;http.setGlobalProxyFromEnv()&lt;/code&gt;에서 글로벌 프록시 환경 변수에 설정하는 기능 추가.&lt;br&gt;
&lt;code&gt;util.convertProcessSignalToExitCode()&lt;/code&gt;, subpath imports로 &lt;code&gt;#/&lt;/code&gt;에서 시작하는 경로 이용 지원.&lt;br&gt;
npm 11.7.0/SQLite 3.51.1 의존 관계 없데이트&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;nuxt-4-3-nuxt-blog&quot;&gt;Nuxt 4.3 · Nuxt Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nuxt.com/blog/v4-3&quot; title=&quot;Nuxt 4.3 · Nuxt Blog&quot;&gt;nuxt.com/blog/v4-3&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Vue&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Nuxt v4.3 출시.&lt;br&gt;
Nuxt v3 지원 기간을 2026년 7월 31일까지로 연장.&lt;br&gt;
한 곳에서 레이아웃을 관리하는 &lt;code&gt;appLayout&lt;/code&gt; 프로퍼티 추가, ISR/SWR에서 Payload Extraction 지원.&lt;br&gt;
페이지나 Middleware에서 Route Group의 메타 정보를 이용 가능&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-rolldown-1-0-rc-voidzero&quot;&gt;Announcing Rolldown 1.0 RC | VoidZero&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-rolldown-rc&quot; title=&quot;Announcing Rolldown 1.0 RC | VoidZero&quot;&gt;voidzero.dev/posts/announcing-rolldown-rc&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;rollup&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;bundler&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Rolldown 1.0 RC 출시.&lt;br&gt;
Rust로 작성된 JavaScript/TypeScript 번들러. Rollup 플러그인와 호환성 갖음.&lt;br&gt;
Vite 8에서는 기본 번들러로 Rolldown 이용 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-17-0-0-stylelint-stylelint&quot;&gt;Release 17.0.0 · stylelint/stylelint&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/stylelint/stylelint/releases/tag/17.0.0&quot; title=&quot;Release 17.0.0 · stylelint/stylelint&quot;&gt;github.com/stylelint/stylelint/releases/tag/17.0.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;CSS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Stylelint 17.0.0 출시.&lt;br&gt;
Node.js 20.19.0 미만 지원 삭제, CommonJS에서 Node.js API 지원 삭제, 기본적으로 &lt;code&gt;fix&lt;/code&gt; 모드를 &lt;code&gt;strict&lt;/code&gt;으로 변경.&lt;br&gt;
CSS Nesting 대응 개선&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/stylelint/stylelint/blob/main/docs/migration-guide/to-17.md&quot; title=&quot;stylelint/docs/migration-guide/to-17.md at main · stylelint/stylelint&quot;&gt;stylelint/docs/migration-guide/to-17.md at main · stylelint/stylelint&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://zenn.dev/ryo_manba/articles/stylelint-v17-update&quot; title=&quot;Stylelint v17 주요한 변경점：ESM 이행과 CSS Nesting 대응&quot;&gt;Stylelint v17 주요한 변경점：ESM 이행과 CSS Nesting 대응&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;roadmap-2026-biome&quot;&gt;Roadmap 2026 | Biome&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://biomejs.dev/blog/roadmap-2026/&quot; title=&quot;Roadmap 2026 | Biome&quot;&gt;biomejs.dev/blog/roadmap-2026/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;biome&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Biome 2026년 로드맵.&lt;br&gt;
2026년은 HTML formatter의 Prettier 호환 안정성, SCSS 지원, JavaScript 내에 담겨진 CSS/GraphQL 개선 예정.&lt;br&gt;
cross-language의 lint 규칙, monorepo 대상 workspaces 설정, LSP 확장도 계획.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;donedeal0-superdiff-superdiff-provides-a-rich-and-readable-diff-for-both-arrays-and-objects-it-supports-stream-and-file-inputs-for-handling-large-datasets-efficiently-is-battle-tested-has-zero-dependencies-and-offer-a-top-tier-performance&quot;&gt;DoneDeal0/superdiff: Superdiff provides a rich and readable diff for both arrays and objects. It supports stream and file inputs for handling large datasets efficiently, is battle-tested, has zero dependencies, and offer a top-tier performance.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/DoneDeal0/superdiff&quot; title=&quot;DoneDeal0/superdiff: Superdiff provides a rich and readable diff for both arrays and objects. It supports stream and file inputs for handling large datasets efficiently, is battle-tested, has zero dependencies, and offer a top-tier performance.&quot;&gt;github.com/DoneDeal0/superdiff&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;배열과 객체 차분 검출하는 JavaScript 라이브러리.&lt;br&gt;
네스트된 객체 비교, 배열 요소 추가 삭제 이동 검출, 스트리밍 처리에 의한 대규모 데이터 비교도 대응.&lt;br&gt;
기본적으로 WebWorker/worker_threads 사용하고, 메인 스레드 외에 처리를 옮기는 구조&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;anomalyco-opentui-opentui-is-a-library-for-building-terminal-user-interfaces-tuis&quot;&gt;anomalyco/opentui: OpenTUI is a library for building terminal user interfaces (TUIs)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/anomalyco/opentui/tree/main&quot; title=&quot;anomalyco/opentui: OpenTUI is a library for building terminal user interfaces (TUIs)&quot;&gt;github.com/anomalyco/opentui/tree/main&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;terminal&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Zig&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;UI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;React이나 SolidJS 사용한 터미널 UI（TUI）를 구축하기 위한 TypeScript 라이브러리.&lt;br&gt;
UI이나 이벤트를 TypeScript 레이어 관리하고, &lt;code&gt;Bun.FFI&lt;/code&gt;에서 Zig를 사용한 렌더링한다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;dy-jz-minimal-js-subset-compiling-to-wasm&quot;&gt;dy/jz: Minimal JS subset compiling to WASM&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/dy/jz&quot; title=&quot;dy/jz: Minimal JS subset compiling to WASM&quot;&gt;github.com/dy/jz&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;JavaScript 서브셋 언어를 WebAssembly로 컴파일하는 컴파일러.&lt;br&gt;
ES2015+ 구문만 지원, 파싱한 서브셋 언어에서 WAT를 출력하고, WAT를 Wasm으로 컴파일한다&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/dy/subscript&quot; title=&quot;dy/subscript: Expression parser / evaluator.&quot;&gt;dy/subscript: Expression parser / evaluator.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/dy/watr&quot; title=&quot;dy/watr: wat to wasm compiler&quot;&gt;dy/watr: wat to wasm compiler&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;davidhdev-vue-bits-an-open-source-collection-of-animated-interactive-fully-customizable-vue-components-for-building-stunning-memorable-websites&quot;&gt;DavidHDev/vue-bits: An open source collection of animated, interactive &amp;amp; fully customizable Vue components for building stunning, memorable websites.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/DavidHDev/vue-bits&quot; title=&quot;DavidHDev/vue-bits: An open source collection of animated, interactive &amp;amp;amp; fully customizable Vue components for building stunning, memorable websites.&quot;&gt;github.com/DavidHDev/vue-bits&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Vue&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;UI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;animation&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vue 애플리케이션 대상 애니메이션, 인터렉티브한 UI 컴포넌트 라이브러리.&lt;br&gt;
React Bits를 Vue로 포딩한 라이브러리&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/DavidHDev/react-bits&quot; title=&quot;DavidHDev/react-bits: An open source collection of animated, interactive &amp;amp;amp;amp; fully customizable React components for building memorable websites.&quot;&gt;DavidHDev/react-bits: An open source collection of animated, interactive &amp;amp; fully customizable React components for building memorable websites.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;도서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;gibbok-typescript-book-the-concise-typescript-book-a-concise-guide-to-effective-development-in-typescript-free-and-open-source&quot;&gt;gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/gibbok/typescript-book&quot; title=&quot;gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.&quot;&gt;github.com/gibbok/typescript-book&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;book&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript 입문서.&lt;br&gt;
TypeScript 설치부터 사용 방법, 타입 시스템, Generics, Box Type에 대하여.&lt;br&gt;
TypeScript의 기능을 넓게 커버 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;server-side-webassembly-danilo-chiarlone&quot;&gt;Server-Side WebAssembly - Danilo Chiarlone&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.manning.com/books/server-side-webassembly&quot; title=&quot;Server-Side WebAssembly - Danilo Chiarlone&quot;&gt;www.manning.com/books/server-side-webassembly&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;book&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;server&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;서버사이드에서 WebAssembly에 대한 도서.&lt;br&gt;
저자는 &lt;code&gt;wasi:http&lt;/code&gt; Proposal를 작성한 사람&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vanilla-web-maximiliano-firtman&quot;&gt;Vanilla Web - Maximiliano Firtman&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.manning.com/books/vanilla-web?a_aid=firtman&amp;a_bid=14dcfdda&amp;chan=mm_website&quot; title=&quot;Vanilla Web - Maximiliano Firtman&quot;&gt;www.manning.com/books/vanilla-web?a_aid&amp;#x3D;firtman&amp;amp;a_bid&amp;#x3D;14dcfdda&amp;amp;chan&amp;#x3D;mm_website&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;book&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;web&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;프레임워크를 사용하지 않고 바닐라 상태에서 Web 표준 기술만으로 Web 애플리케이션 구축하는 방법에 대한 도서.&lt;br&gt;
재이용가능한 컴포넌트, 라우팅 시스템, PWA 같이 바닐라 JavaScript/HTML/CSS으로 할 수 있는 방법에 대한 도서&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://firt.dev/notes/vanilla-web-meap/&quot; title=&quot;Vanilla Web Book 🆕 － firt.dev&quot;&gt;Vanilla Web Book 🆕 － firt.dev&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
</description>
        <pubDate>Mon, 26 Jan 2026 18:51:49 +0900</pubDate>
        <link>https://jser.info/ko/2026/01/26/jquery-4.0.0-rolldown-1.0-rc-styelelint-17/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/01/26/jquery-4.0.0-rolldown-1.0-rc-styelelint-17/</guid>
        
        <category>TypeScript</category>
        
        <category>book</category>
        
        <category>UI</category>
        
        <category>WebAssembly</category>
        
        <category>Vue</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-01-17: Node.js 보안 업데이트, Chrome 144, Firefox 147, Electron 40</title>
        <description>&lt;p&gt;JSer.info #761 - Node.js 20.20.0/22.22.0/24.13.0/25.3.0 보안 업데이트가 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/december-2025-security-releases&quot;&gt;Node.js — Tuesday, January 13, 2026 Security Releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;8건의 취약성 수정되었다. 주요한 수정으로, &lt;code&gt;Buffer.alloc&lt;/code&gt;이나 &lt;code&gt;TypedArray&lt;/code&gt;가 초기화되어 있지 않은 메모리를 포함할 가능성이 있을 수 있는 Race Condition 수정（CVE-2025-55131）, 심볼릭 링크를 사용해 Permission Model 바이패스 수정（CVE-2025-55130）, 부정한 HTTP/2 HEADERS 프레임에서 서버가 크래시하는 문제 수정（CVE-2025-59465）이 포함된다.&lt;/p&gt;

&lt;p&gt;또한, &lt;code&gt;async_hooks&lt;/code&gt; 유효할 때에 스택 오버플로우 에러가 캐치되지 않는 문제도 수정됐다.&lt;br&gt;
&lt;code&gt;async_hooks&lt;/code&gt;는 Next.js이나 Datadog 등에서 APM 도구로 널리 이용되고 있다.&lt;br&gt;
이 문제의 자세한 사항은, 다음 글에 해설.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks&quot;&gt;Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;p&gt;Chrome 144가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/release-notes/144&quot;&gt;Chrome 144  |  Release notes  |  Chrome for Developers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CSS의 &lt;code&gt;::search-text&lt;/code&gt;에서 페이지 내 검색 스타일링 지원 &lt;code&gt;@scroll-state: scrolled&lt;/code&gt; 지원, View Transitions의 &lt;code&gt;waitUntil()&lt;/code&gt; 추가 등의 CSS 관련 기능이 되었다. 또한, &lt;code&gt;&amp;lt;geolocation&amp;gt;&lt;/code&gt; 요소 추가, Temporal API 지원, &lt;code&gt;clipboardchange&lt;/code&gt; 이벤트 추가 등 Web API 관련 업데이트도 포함된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Firefox 147가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.firefox.com/en-US/firefox/147.0/releasenotes/&quot;&gt;Firefox 147.0, See All New Features, Updates and Fixes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apple Silicon 디바이스에서 WebGPU가 기본적으로 유효화되었다. 또한, Navigation API, CSS anchor positioning, CSS Module Scripts 지원이 추가되었다. &lt;code&gt;CompressionStream&lt;/code&gt;/&lt;code&gt;DecompressionStream&lt;/code&gt;가 Brotli 지원, Service Worker에서 &lt;code&gt;type: module&lt;/code&gt; 지원된다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/147&quot;&gt;Firefox 147 release notes for developers (Stable) - Mozilla | MDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-65439397f1f&quot;&gt;알림&lt;/h2&gt;

&lt;p&gt;2026년 1월 16일로 JSer.info은 15주년을 맞이했습니다.&lt;br&gt;
다음 글에는, JSer.info 데이터를 사용한 과거 15년간 JavaScript 동향을 돌아본다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jser.info/ko/2026/01/16/jser-info-15th/&quot;&gt;JSer.info 15주년: 15년간 JavaScript 돌아보기 - JSer.info&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;헤드라인&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;eslint-v10-0-0-rc-0-released-eslint-pluggable-javascript-linter&quot;&gt;ESLint v10.0.0-rc.0 released - ESLint - Pluggable JavaScript Linter&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://eslint.org/blog/2026/01/eslint-v10.0.0-rc.0-released/&quot; title=&quot;ESLint v10.0.0-rc.0 released - ESLint - Pluggable JavaScript Linter&quot;&gt;eslint.org/blog/2026/01/eslint-v10.0.0-rc.0-released/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;ESLint&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;ESLint v10.0.0 RC.0 출시.&lt;br&gt;
&lt;code&gt;RuleTester&lt;/code&gt; 개선, &lt;code&gt;max-params&lt;/code&gt; 규칙에 &lt;code&gt;countThis&lt;/code&gt; 옵션 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-3-0-0-rc1-qunitjs-qunit&quot;&gt;Release 3.0.0-rc1 · qunitjs/qunit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/qunitjs/qunit/releases/tag/3.0.0-rc1&quot; title=&quot;Release 3.0.0-rc1 · qunitjs/qunit&quot;&gt;github.com/qunitjs/qunit/releases/tag/3.0.0-rc1&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;test&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;QUnit 3.0.0-rc1 출시.&lt;br&gt;
Node.js 16 이하 지원과 PhantomJS 지원 삭제.&lt;br&gt;
네이티브 ESM 대응 추가, 기본적으로 3초 테스트 타임 아웃 유효, &lt;code&gt;assert.expect()&lt;/code&gt;에서 &lt;code&gt;assert.step()&lt;/code&gt;를 제거하는 변경.&lt;br&gt;
HTML Reporter 디자인 업데이트와 성능 개선, 각종 경고 에러 변경&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;alpha-release-of-moon-v2-now-available-moonrepo&quot;&gt;Alpha release of moon v2 now available! | moonrepo&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://moonrepo.dev/blog/moon-v2-alpha&quot; title=&quot;Alpha release of moon v2 now available! | moonrepo&quot;&gt;moonrepo.dev/blog/moon-v2-alpha&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;moon v2 α 출시.&lt;br&gt;
YAML 이외 설정 파일 지원, 툴체인을 Wasm 플러그인에서 실행하도록 변경&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-pandacss-dev-1-8-0-chakra-ui-panda&quot;&gt;Release @pandacss/&lt;a href=&quot;mailto:dev@1.8.0&quot;&gt;dev@1.8.0&lt;/a&gt; · chakra-ui/panda&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/chakra-ui/panda/releases/tag/%40pandacss%2Fdev%401.8.0&quot; title=&quot;Release @pandacss/dev@1.8.0 · chakra-ui/panda&quot;&gt;github.com/chakra-ui/panda/releases/tag/%40pandacss%2Fdev%401.8.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;MCP&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Panda CSS 1.8.0 출시.&lt;br&gt;
&lt;code&gt;panda init-mcp&lt;/code&gt;로 MCP서버 설정 가능&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://panda-css.com/docs/ai/mcp-server&quot; title=&quot;MCP Server | Panda CSS - Panda CSS&quot;&gt;MCP Server | Panda CSS - Panda CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bun-v1-3-6-bun-blog&quot;&gt;Bun v1.3.6 | Bun Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.3.6&quot; title=&quot;Bun v1.3.6 | Bun Blog&quot;&gt;bun.com/blog/bun-v1.3.6&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bun v1.3.6 출시.&lt;br&gt;
tar 파일을 다루는 &lt;code&gt;Bun.Archive&lt;/code&gt; API, 주석 포함된 JSON를 다루는 &lt;code&gt;Bun.JSONC&lt;/code&gt; API 추가.&lt;br&gt;
&lt;code&gt;Bun.build()&lt;/code&gt;에서 esbuild 호환의 metafile 옵션 추가.&lt;br&gt;
WebSocket가 HTTP/HTTPS 프록시 지원, S3 Requester Pays 지원.&lt;br&gt;
각종 성능 개선, Node.js 호환성 개선.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-tuesday-january-13-2026-security-releases&quot;&gt;Node.js — Tuesday, January 13, 2026 Security Releases&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/december-2025-security-releases&quot; title=&quot;Node.js — Tuesday, January 13, 2026 Security Releases&quot;&gt;nodejs.org/en/blog/vulnerability/december-2025-security-releases&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js 20.20.0/22.22.0/24.13.0/25.3.0 보안 출시.&lt;br&gt;
8건 취약점이 수정됨.&lt;br&gt;
&lt;code&gt;Buffer.alloc&lt;/code&gt;나 &lt;code&gt;TypedArray&lt;/code&gt;가 초기화되어 있지 않은 메모리를 포함하는 가능성을 갖은 Race Condition 수정（CVE-2025-55131）.&lt;br&gt;
심볼릭링크를 사용한 Permission Model 바이패스 수정（CVE-2025-55130）.&lt;br&gt;
부정한 HTTP/2 HEADERS 프레임에서 서버가 클래시 문제를 수정（CVE-2025-59465）.&lt;br&gt;
또한, &lt;code&gt;async_hooks&lt;/code&gt; 유효할 때에 스택오버플로우를 캐치되지 않은 문제, TLS 클라이언트 증명서 처리의 메모리 누수 수정.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks&quot; title=&quot;Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users&quot;&gt;Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;chrome-144-release-notes-chrome-for-developers&quot;&gt;Chrome 144  |  Release notes  |  Chrome for Developers&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/release-notes/144&quot; title=&quot;Chrome 144  |  Release notes  |  Chrome for Developers&quot;&gt;developer.chrome.com/release-notes/144&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Chrome&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Chrome 144 출시.&lt;br&gt;
CSS의 &lt;code&gt;::search-text&lt;/code&gt;에서 페이지 내 검색 스타일링 지원, &lt;code&gt;@scroll-state: scrolled&lt;/code&gt; 지원, View Transitions의 &lt;code&gt;waitUntil()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;&amp;lt;geolocation&amp;gt;&lt;/code&gt; 요소 추가, Temporal API 지원, &lt;code&gt;clipboardchange&lt;/code&gt; 이벤트 추가.&lt;br&gt;
WebGPU의 Uniform buffer 표준 레이아웃에서 16바이트 정렬 요구사항 삭제, &lt;code&gt;subgroup_id&lt;/code&gt; 기능 추가.&lt;br&gt;
Privacy Sandbox에서 구현된 기능 비권장&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/blog/new-in-chrome-144&quot; title=&quot;New in Chrome 144  |  Blog  |  Chrome for Developers&quot;&gt;New in Chrome 144  |  Blog  |  Chrome for Developers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;copilot-sdk-in-technical-preview-github-changelog&quot;&gt;Copilot SDK in technical preview - GitHub Changelog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/changelog/2026-01-14-copilot-sdk-in-technical-preview/&quot; title=&quot;Copilot SDK in technical preview - GitHub Changelog&quot;&gt;github.blog/changelog/2026-01-14-copilot-sdk-in-technical-preview/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;python&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;golang&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;.net&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;GitHub Copilot SDK가 테크니컬 프리뷰 공개.&lt;br&gt;
Node.js/TypeScript, Python, Go, .NET의 4가지 언어로 이용 가능.&lt;br&gt;
GitHub Copilot CLI에서 프로그램에서 접근가능한 SDK로, 멀티턴 대화나 커스텀 도구 정의, 클라이언트/세션의 라이프사이클 관리.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;firefox-147-0-see-all-new-features-updates-and-fixes&quot;&gt;Firefox 147.0, See All New Features, Updates and Fixes&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.firefox.com/en-US/firefox/147.0/releasenotes/&quot; title=&quot;Firefox 147.0, See All New Features, Updates and Fixes&quot;&gt;www.firefox.com/en-US/firefox/147.0/releasenotes/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Firefox&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Firefox 147 출시.&lt;br&gt;
Apple Silicon 디바이스 WebGPU 유효.&lt;br&gt;
Accept-Language 헤더의 &lt;code&gt;q&lt;/code&gt; 값을 다른 브라우저에 맞춰 조절.&lt;br&gt;
Navigation API, CSS anchor positioning 지원, CSS Module Scripts 지원.&lt;br&gt;
&lt;code&gt;CompressionStream&lt;/code&gt;/&lt;code&gt;DecompressionStream&lt;/code&gt;가 Brotli 지원, Servie Worker에서 &lt;code&gt;type: module&lt;/code&gt; 지원&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/147&quot; title=&quot;Firefox 147 release notes for developers (Stable) - Mozilla | MDN&quot;&gt;Firefox 147 release notes for developers (Stable) - Mozilla | MDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;prettier-3-8-support-for-angular-v21-1-prettier&quot;&gt;Prettier 3.8: Support for Angular v21.1 · Prettier&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://prettier.io/blog/2026/01/14/3.8.0&quot; title=&quot;Prettier 3.8: Support for Angular v21.1 · Prettier&quot;&gt;prettier.io/blog/2026/01/14/3.8.0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Prettier 3.8 출시.&lt;br&gt;
Angular v21.1 새로운 구문 &lt;code&gt;@switch&lt;/code&gt; 블록 내에서 연속 된 &lt;code&gt;@case&lt;/code&gt; 스테이트먼트, 배열/객체/함수 호출하는 Spread 요소 지원.&lt;br&gt;
Markdown 파일 내에 Angular 코드 블록（angular-ts, angular-html） 포맷 대응&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;electron-40-0-0-electron&quot;&gt;Electron 40.0.0 | Electron&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.electronjs.org/blog/electron-40-0&quot; title=&quot;Electron 40.0.0 | Electron&quot;&gt;www.electronjs.org/blog/electron-40-0&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Electron&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Electron 40.0.0 출시.&lt;br&gt;
Chromium 144/Node.js 24.11/V8 14.4으로 업그레이드.&lt;br&gt;
렌더러 프로세스에서 클립보드 API의 직접 접근을 비권장으로に, macOS의 dSYM 파일이 zip에서 tar.xz 형식으로 변경.&lt;br&gt;
&lt;code&gt;app.isHardwareAccelerationEnabled()&lt;/code&gt; 메서드 추가, 오프 스크린 렌더링에서 HDR 컬러페이스 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;astro-is-joining-cloudflare&quot;&gt;Astro is joining Cloudflare&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/astro-joins-cloudflare/&quot; title=&quot;Astro is joining Cloudflare&quot;&gt;blog.cloudflare.com/astro-joins-cloudflare/&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;astro&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Astro Technology Company가 Cloudflare에 인수.&lt;br&gt;
Astro은 오픈소스에 MIT 라이센스 유지.&lt;br&gt;
또한 Astro 6에는, Vite Environments 기반 개발 서버에서 로컬 개발할 때에 Cloudflare Workers 런타임（workerd）으로 실행가능하도록 할 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;읽을거리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-mitigating-denial-of-service-vulnerability-from-unrecoverable-stack-space-exhaustion-for-react-next-js-and-apm-users&quot;&gt;Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks&quot; title=&quot;Node.js — Mitigating Denial-of-Service Vulnerability from Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users&quot;&gt;nodejs.org/en/blog/vulnerability/january-2026-dos-mitigation-async-hooks&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js의 &lt;code&gt;async_hooks&lt;/code&gt;에 스택오버 플로우 문제에 대하여.&lt;br&gt;
&lt;code&gt;AsyncLocalStorage&lt;/code&gt;은 Next.js나 Datadog 등 많은 프레임워크나 도구에서 이용중이라, 영향 범위가 넓음.&lt;br&gt;
어떤 구조에서 스택 영역 고갈 문제가 발생하는지에 대해 해설됨&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;streaming-json-in-just-200-lines-of-javascript&quot;&gt;Streaming JSON in just 200 lines of JavaScript&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://krasimirtsonev.com/blog/article/streaming-json-in-just-200-lines-of-javascript&quot; title=&quot;Streaming JSON in just 200 lines of JavaScript&quot;&gt;krasimirtsonev.com/blog/article/streaming-json-in-just-200-lines-of-javascript&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JSON&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;JSON를 스트리밍하는 방법에 대한 글.&lt;br&gt;
서버측에서 비동기 데이터（Promise）를 플레이스홀더로 변환하고, NDJSON 형식과 &lt;code&gt;Transfer-Encoding: chunked&lt;/code&gt; 사용한 데이터를 단계적으로 보냄.&lt;br&gt;
클라이언트 측에서는 Fetch API으로 스트림을 읽고, 플레이스홀더를 실제 데이터로 갈아 끼우는 구현에 대하여.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;introducing-react-best-practices-vercel&quot;&gt;Introducing: React Best Practices - Vercel&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://vercel.com/blog/introducing-react-best-practices&quot; title=&quot;Introducing: React Best Practices - Vercel&quot;&gt;vercel.com/blog/introducing-react-best-practices&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vercel가 10년 이상 React・Next.js 최적화 지식을 정리한 &lt;code&gt;react-best-practices&lt;/code&gt; 레포지토리 공개.&lt;br&gt;
AI 에이전트나 LLM 대상으로 최적화된 규칙 모음집으로, 40개 이상 규칙이 8 카테고리로 분류.&lt;br&gt;
워터폴 배제, 번들 크기 절감, 리렌더링 최적화 패턴을, CRITICAL에서 LOW까지 우선 순위를 붙여 정리함.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices&quot; title=&quot;agent-skills/skills/react-best-practices at main · vercel-labs/agent-skills&quot;&gt;agent-skills/skills/react-best-practices at main · vercel-labs/agent-skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;웹사이트, 서비스, 문서&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vibiumdev-vibium-browser-automation-for-ai-agents-and-humans&quot;&gt;VibiumDev/vibium: Browser automation for AI agents and humans&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/VibiumDev/vibium&quot; title=&quot;VibiumDev/vibium: Browser automation for AI agents and humans&quot;&gt;github.com/VibiumDev/vibium&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;Selenium&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;MCP&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Selenium BiDi 기반에 브라우저 조작하는 MCP 서버&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;coder-ghostty-web-ghostty-for-the-web-with-xterm-js-api-compatibility&quot;&gt;coder/ghostty-web: Ghostty for the web with xterm.js API compatibility&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/coder/ghostty-web?tab=readme-ov-file&quot; title=&quot;coder/ghostty-web: Ghostty for the web with xterm.js API compatibility&quot;&gt;github.com/coder/ghostty-web?tab&amp;#x3D;readme-ov-file&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;terminal&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;브라우저 상에 동작하는 터미널 에뮬레이터 라이브러리.&lt;br&gt;
&lt;code&gt;libghostty&lt;/code&gt;를 Wasm에 컴파일을 이용, xterm.js 호환 API 제공.&lt;br&gt;
xterm.js과 비교해서 복잡한 문제 체계의 정확한 Grapheme 처리, XTPUSHSGR/XTPOPSGR 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;소프트웨어, 도구, 라이브러리&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;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&quot;&gt;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.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/MotiaDev/motia&quot; title=&quot;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.&quot;&gt;github.com/MotiaDev/motia&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Step 단위에서 처리를 작성하기 위한 백엔드 프레임워크.&lt;br&gt;
Step은 여러 JavaScript나 Python 등에서 여러 언어로 작성 가능&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vercel-labs-agent-browser-browser-automation-cli-for-ai-agents&quot;&gt;vercel-labs/agent-browser: Browser automation CLI for AI agents&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/vercel-labs/agent-browser&quot; title=&quot;vercel-labs/agent-browser: Browser automation CLI for AI agents&quot;&gt;github.com/vercel-labs/agent-browser&lt;/a&gt;&lt;br&gt;
&lt;p class=&quot;jser-tags jser-tag-icon&quot;&gt;&lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;console&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;AI 에이전트 대상 헤드리스 브라우저 자동화 CLI.&lt;br&gt;
Rust의 CLI와 Node.js 데몬（Playwright 이용）으로 구성, 클라이언트・데몬 구성으로 동작함.&lt;br&gt;
접근성 트리에서 AI 대상 최적화된 스냅샷을 얻는 기능이나, ARIA 로컬이나 라벨에서 요소 검출, WebSocket에서 브라우저 뷰포트의 스트리밍을 제공.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Sat, 17 Jan 2026 21:26:47 +0900</pubDate>
        <link>https://jser.info/ko/2026/01/17/node.js-chrome-144-firefox-147-electron-40/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/01/17/node.js-chrome-144-firefox-147-electron-40/</guid>
        
        <category>Tools</category>
        
        <category>nodejs</category>
        
        <category>AI</category>
        
        <category>MCP</category>
        
        <category>security</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>JSer.info 15주년: 15년간 JavaScript 돌아보기</title>
        <description>&lt;p&gt;2011년 1월 16일 시작한 &lt;a href=&quot;https://jser.info&quot;&gt;JSer.info&lt;/a&gt;은, 2026년 1월 16일로 15주년을 맞이했습니다🎉&lt;/p&gt;

&lt;p&gt;JSer.info는 15년간 820건 글을 공개, 13,606건 사이트/읽을거리/라이브러리를 소개했습니다. 또한, 1회 갱신을 15년간 지속했습니다.&lt;/p&gt;

&lt;p&gt;이 글에서는, 15년간 JSer.info 데이터를 돌아보며, JavaScript 에코시스템이 어떻게 변화했는지 알아보려합니다.&lt;/p&gt;

&lt;p&gt;다만, 이 글 데이터는 JSer.info에 소개된 글 위주이므로, JavaScript 에코시스템 전체를 대표하지는 않습니다.&lt;br&gt;
또한, 2024-2025년은 JSer.info 자체 갱신 수가 적어졌기에, 데이터에도 2025년에 감소 경향이 있으므로 이를 주의해주시길 바랍니다.&lt;/p&gt;

&lt;!-- 이미지는, _en_ko.png 영어판,  _ko.png 한국어판이 있습니다 --&gt;

&lt;hr&gt;

&lt;h2 id=&quot;15&quot;&gt;15년간의 기본 통계&lt;/h2&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;항목&lt;/th&gt;
&lt;th&gt;수치&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;총 투고수&lt;/td&gt;
&lt;td&gt;820회&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;총 소개된 읽을거리 수&lt;/td&gt;
&lt;td&gt;13,606건&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;운영기간&lt;/td&gt;
&lt;td&gt;2011년 1월 〜 2026년 1월（15년간）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;평균갱신빈도&lt;/td&gt;
&lt;td&gt;주 1회&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;연별로 소개 글을 보면, 2013년 1,269건 피크였으며, 근래는 600〜700건 추이입니다. 한편으로, 하나의 글의 소개 길이가 15년간 약 2배로 증가해, 「양보다 질」로 스타일 변화가 있습니다.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;연도&lt;/th&gt;
&lt;th&gt;소개된 글&lt;/th&gt;
&lt;th&gt;투고수&lt;/th&gt;
&lt;th&gt;1투고당&lt;/th&gt;
&lt;th&gt;소개문 평균 글자수&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2011&lt;/td&gt;
&lt;td&gt;915&lt;/td&gt;
&lt;td&gt;65&lt;/td&gt;
&lt;td&gt;14.1건&lt;/td&gt;
&lt;td&gt;62자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;td&gt;1,269&lt;/td&gt;
&lt;td&gt;57&lt;/td&gt;
&lt;td&gt;22.3건&lt;/td&gt;
&lt;td&gt;58자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;1,068&lt;/td&gt;
&lt;td&gt;54&lt;/td&gt;
&lt;td&gt;19.8건&lt;/td&gt;
&lt;td&gt;79자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;td&gt;790&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;td&gt;14.9건&lt;/td&gt;
&lt;td&gt;90자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;789&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;td&gt;14.9건&lt;/td&gt;
&lt;td&gt;101자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;552&lt;/td&gt;
&lt;td&gt;41&lt;/td&gt;
&lt;td&gt;13.5건&lt;/td&gt;
&lt;td&gt;108자&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_basic_stats_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_basic_stats_ko.png&quot; alt=&quot;15년간 기본 통계&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;그리고, 2025년은 투고 페이스가 조금 떨어졌기에 투고 횟수도 적어졌습니다.&lt;br&gt;
이에, 이후에 등장하는 데이터에도 2025년에 감소하는 경향이 있다는 점을 주의해주십시오.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-78431d5f085ea719&quot;&gt;정보원의 변화: 개인블로그에서 공식 문서로&lt;/h2&gt;

&lt;p&gt;15년간 가장 큰 변화는, 정보원의 구성입니다.&lt;/p&gt;

&lt;h3 id=&quot;2011-2013&quot;&gt;초기（2011-2013년）주요 정보원&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;github.com (327건)&lt;/li&gt;
&lt;li&gt;d.hatena.ne.jp (154건)&lt;/li&gt;
&lt;li&gt;slideshare.net (147건)&lt;/li&gt;
&lt;li&gt;amazon.co.jp (98건)&lt;/li&gt;
&lt;li&gt;amazon.com (83건)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;2017-2019&quot;&gt;중기（2017-2019년）주요 정보원&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;github.com (828건)&lt;/li&gt;
&lt;li&gt;medium.com (134건)&lt;/li&gt;
&lt;li&gt;developers.google.com (103건)&lt;/li&gt;
&lt;li&gt;webkit.org (69건)&lt;/li&gt;
&lt;li&gt;nodejs.org (64건)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id=&quot;2023-2025&quot;&gt;후기（2023-2025년）주요 정보원&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;github.com (568건)&lt;/li&gt;
&lt;li&gt;nodejs.org (98건)&lt;/li&gt;
&lt;li&gt;bun.sh (62건)&lt;/li&gt;
&lt;li&gt;zenn.dev (56건)&lt;/li&gt;
&lt;li&gt;developer.chrome.com (55건)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;GitHub가 일관되게 최대 정보원인 것은 다르지 않지만, 그 주변은 큰 변화가 있습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_info_sources_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_info_sources_ko.png&quot; alt=&quot;정보원의 변화&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;초기에는 &lt;strong&gt;하테나 다이어리&lt;/strong&gt;나 &lt;strong&gt;SlideShare&lt;/strong&gt;, &lt;strong&gt;Amazon（도서）&lt;/strong&gt; 가 상위였지만. 개인 블로그나 스터디그룹 슬라이드, 도서가 주요 정보원인 시대였씁니다.&lt;/p&gt;

&lt;p&gt;중기에는 &lt;strong&gt;Medium&lt;/strong&gt;가 많아졌으며, 브라우저 벤더의 &lt;strong&gt;공식 문서/블로그&lt;/strong&gt;（developers.google.com나 webkit.org）가 상위에 있었습니다. 개인 블로그 플랫폼이 하테나에서 Medium으로 이동했고, 동시에 브라우저 벤더에서의 1차 정보가 중요해진 시기입니다.&lt;/p&gt;

&lt;p&gt;후기에는 &lt;strong&gt;공식 문서/블로그&lt;/strong&gt;（nodejs.org, developer.chrome.com, bun.sh）나 &lt;strong&gt;zenn.dev&lt;/strong&gt; 가 상위에 있습니다. Medium은 모습을 감췄고, 1차 정보원으로 직접 접근이 증가했습니다.&lt;/p&gt;

&lt;h3 id=&quot;part-d0bd64f012d798a4&quot;&gt;콘텐츠 타입의 변화&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;종류&lt;/th&gt;
&lt;th&gt;2011-2013&lt;/th&gt;
&lt;th&gt;2014-2016&lt;/th&gt;
&lt;th&gt;2017-2019&lt;/th&gt;
&lt;th&gt;2020-2022&lt;/th&gt;
&lt;th&gt;2023-2025&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;출시 노트&lt;/td&gt;
&lt;td&gt;560&lt;/td&gt;
&lt;td&gt;750&lt;/td&gt;
&lt;td&gt;862&lt;/td&gt;
&lt;td&gt;937&lt;/td&gt;
&lt;td&gt;986&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;해설 글&lt;/td&gt;
&lt;td&gt;719&lt;/td&gt;
&lt;td&gt;692&lt;/td&gt;
&lt;td&gt;813&lt;/td&gt;
&lt;td&gt;617&lt;/td&gt;
&lt;td&gt;526&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;라이브러리/도구&lt;/td&gt;
&lt;td&gt;371&lt;/td&gt;
&lt;td&gt;599&lt;/td&gt;
&lt;td&gt;446&lt;/td&gt;
&lt;td&gt;397&lt;/td&gt;
&lt;td&gt;191&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;슬라이드/영상&lt;/td&gt;
&lt;td&gt;292&lt;/td&gt;
&lt;td&gt;309&lt;/td&gt;
&lt;td&gt;170&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;도서&lt;/td&gt;
&lt;td&gt;192&lt;/td&gt;
&lt;td&gt;203&lt;/td&gt;
&lt;td&gt;135&lt;/td&gt;
&lt;td&gt;73&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;튜토리얼&lt;/td&gt;
&lt;td&gt;97&lt;/td&gt;
&lt;td&gt;154&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;td&gt;33&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_content_types_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_content_types_ko.png&quot; alt=&quot;콘텐츠 타입의 변화&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;출시 노트는 일관되게 증가됩니다. 한편, 슬라이드/영상, 도서, 튜토리얼 학습 콘텐츠가 적어졌습니다. 이는 공식 문서가 충실해지고 GitHub 출시 노트가 정보 발언 중심적으로 되면서, 스터티 그룹의 슬라이드나 도서 소개가 적어진 것을 반영합니다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-ee9b939f738f82e7&quot;&gt;일본어 플랫폼 변천&lt;/h2&gt;

&lt;p&gt;JSer.info에 소개된 일본어 기술 블로그도, 15년간 플랫폼이 크게 변경되었습니다.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;연도&lt;/th&gt;
&lt;th&gt;하테나&lt;/th&gt;
&lt;th&gt;Qiita&lt;/th&gt;
&lt;th&gt;Zenn&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2011&lt;/td&gt;
&lt;td&gt;92&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2014&lt;/td&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;하테나 다이어리/하테나 블로그 → Qiita → Zenn&lt;/strong&gt; 흐름으로 소개 글 플랫폼이 변화했습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_jp_platforms_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_jp_platforms_ko.png&quot; alt=&quot;일본어 플랫폼 변천&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;다만, 전체적으로 일본어 자료 비율은 점점 적어져, 5% 전후로 정착되고 있습니다.&lt;br&gt;
(타이틀만 보았으므로, 실제로는 더 높을 가능성이 있습니다)&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th style=&quot;text-align: right&quot;&gt;연도&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;일본어자료&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;합계&lt;/th&gt;
&lt;th style=&quot;text-align: right&quot;&gt;비율&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2011&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;203&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;915&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;22.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2012&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;194&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;1126&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;17.2%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2013&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;150&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;1269&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;11.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2014&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;114&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;1147&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;9.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2015&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;80&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;1043&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;7.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2016&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;93&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;1078&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;8.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2017&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;67&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;1068&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;6.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2018&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;64&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;921&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;6.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2019&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;26&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;790&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;3.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2020&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;25&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;810&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;3.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2021&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;43&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;789&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;5.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2022&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;33&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;712&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;4.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2023&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;42&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;737&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;5.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2024&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;44&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;638&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;6.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: right&quot;&gt;2025&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;26&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;552&lt;/td&gt;
&lt;td style=&quot;text-align: right&quot;&gt;4.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_japanese_rate_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_japanese_rate_ko.png&quot; alt=&quot;일본어 자료 비율 추이&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;이는 JSer.info가 의도적으로 일본어를 피한 것이 아니라, JavaScript의 1차 정보원이 거의 영어로 되어있다는 것을 반영합니다. 브라우저 벤더, 공식 사이트/프로젝트, 주요한 라이브러리의 관리자는 거의 대부분 영어로 정보를 제공합니다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-87021d55c7402b64&quot;&gt;기술 트렌드의 변천&lt;/h2&gt;

&lt;h3 id=&quot;ui-jquery-angular-react&quot;&gt;UI 프레임워크: jQuery → Angular → React&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;연도&lt;/th&gt;
&lt;th&gt;jQuery&lt;/th&gt;
&lt;th&gt;Angular&lt;/th&gt;
&lt;th&gt;React&lt;/th&gt;
&lt;th&gt;Vue&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2011&lt;/td&gt;
&lt;td&gt;109&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;td&gt;86&lt;/td&gt;
&lt;td&gt;44&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2014&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;52&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;td&gt;29&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;34&lt;/td&gt;
&lt;td&gt;153&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;84&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;82&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;2011년은 jQuery가 가장 많았고, 2013년/2014년경에는 Angular/React/Vue가 증가, 2015년에는 React가 크게 증가했습니다. 2017년에 React는 153건으로 피크였고, 그 이후에는 안정기에 들어왔습니다.&lt;/p&gt;

&lt;p&gt;2025년에는 React의 건수가 피크때보다 절반정도 되었찌만, 이는 React 자체가 성숙해지면서, 매주 새로운 뉴스가 적어졌다는 것을 의미합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_ui_frameworks_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_ui_frameworks_ko.png&quot; alt=&quot;UI 프레임워크 변천&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;webpack-vite&quot;&gt;빌드도구: webpack → Vite&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;연도&lt;/th&gt;
&lt;th&gt;webpack&lt;/th&gt;
&lt;th&gt;Rollup&lt;/th&gt;
&lt;th&gt;esbuild&lt;/th&gt;
&lt;th&gt;Vite&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;33&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;43&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;td&gt;36&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;webpack은 2017년이 가장 많고, 2020년까지는 화두였습니다.&lt;br&gt;
한 편 2020년에 esbuild가 등장, 2022년 Vite 소개 글 숫자가 webpack를 앞섰습니다.&lt;/p&gt;

&lt;p&gt;JSer.info에도, esbuild 등장 이후는 Rust나 Go로 작성된 도구 소개가 증가했습니다. 「JavaScript 도구는 JavaScript로 작성」 전제가 변화해, 성능 기대치가 변화된 것을 반영되었습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_build_tools_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_build_tools_ko.png&quot; alt=&quot;빌드 도구 추이&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;node-js-1&quot;&gt;런타임: Node.js 1강에서 다양화로&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;연도&lt;/th&gt;
&lt;th&gt;Deno&lt;/th&gt;
&lt;th&gt;Bun&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2020&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;18&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;2020년에 Deno 1.0가 출시되고, 2022년에 Bun이 등장. Node.js 1강 시대에서, 복수 런타임이 경쟁하는 시대로 옮겨졌습니다.&lt;/p&gt;

&lt;p&gt;특히 Bun은 2023년 1.0 출시 이후로 안정적으로 출시함에 따라, JSer.info에도 자주 소개되었습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_runtimes_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_runtimes_ko.png&quot; alt=&quot;런타임 다양화&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;jser-info&quot;&gt;JSer.info에 언급이 변화한 기술&lt;/h2&gt;

&lt;h3 id=&quot;15-2011-2013-2023-2025&quot;&gt;15년간 언급이 없어진 기술（2011-2013 → 2023-2025）&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기술&lt;/th&gt;
&lt;th&gt;초기&lt;/th&gt;
&lt;th&gt;후기&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Backbone.js&lt;/td&gt;
&lt;td&gt;75&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CoffeeScript&lt;/td&gt;
&lt;td&gt;71&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AMD/RequireJS&lt;/td&gt;
&lt;td&gt;74&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Grunt&lt;/td&gt;
&lt;td&gt;49&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PhantomJS&lt;/td&gt;
&lt;td&gt;37&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bower&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;이 기술은 당시에는 자주 사용되었지만, 지금은 JSer.info에서 다뤄지지 않습니다.&lt;/p&gt;

&lt;p&gt;Backbone.js와 CoffeeScript는 2011-2012년 무렵에 자주 소개되었습니다. AMD와 RequireJS은 모듈 시스템 선두주자 였찌만, ES Modules이 표준화됨에 따라 역할을 다했습니다. Grunt/Gulp는 npm scripts이나 빌드 도구로 변경되었고, PhantomJS은 Puppeteer/Playwright에 대체되었습니다.&lt;/p&gt;

&lt;h3 id=&quot;15&quot;&gt;15년간 언급이 늘어난 기술&lt;/h3&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;기술&lt;/th&gt;
&lt;th&gt;초기&lt;/th&gt;
&lt;th&gt;후기&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ESM/import&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;117&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rust&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebAssembly&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;monorepo&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;ECMAScript Modules은 2015년 ES2015에 사양화되었습니다만, 브라우저와 Node.js 양쪽에서 실용적으로 사용하게 된 것은 2020년 이후 입니다.&lt;/p&gt;

&lt;p&gt;Rust 언급은, SWC/Rspack/Biome/OxC 툴체인 연관입니다. JavaScript 에코시스템에, 치명적으로 성능이 문제 있는 부분은 Rust나 Go로 작성되는 것이 증가했습니다.&lt;br&gt;
2025년에는 &lt;a href=&quot;https://devblogs.microsoft.com/typescript/typescript-native-port/&quot;&gt;TypeScript 컴파일러 자체도 Go로 재작성&lt;/a&gt; 되는 것이 발표되었습니다.&lt;/p&gt;

&lt;p&gt;WebAssembly은 2015년에 발표된 기술로, JSer.info에도 2017년경부터 언급이 증가했습니다. monorepo 개념 자체는 오래되었습니다만, JavaScript 에코시스템에서 주목했던 것은, Lerna（2016년）이나 npm/yarn workspaces 이후 입니다.&lt;br&gt;
지금은, npm/yarn/pnpm 패키지 매니저 자체가 monorepo 공식 지원됩니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_tech_changes_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_tech_changes_ko.png&quot; alt=&quot;15년간 언급이 변화한 기술&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-6eb34965a4f84121&quot;&gt;횡단적 토픽 변화&lt;/h2&gt;

&lt;p&gt;프레임워크 의존없이, 기술 횡단적인 토픽 추이도 보겠습니다.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;연도&lt;/th&gt;
&lt;th&gt;타입&lt;/th&gt;
&lt;th&gt;테스트&lt;/th&gt;
&lt;th&gt;성능&lt;/th&gt;
&lt;th&gt;보안&lt;/th&gt;
&lt;th&gt;a11y&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2011&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;46&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2014&lt;/td&gt;
&lt;td&gt;52&lt;/td&gt;
&lt;td&gt;87&lt;/td&gt;
&lt;td&gt;58&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;108&lt;/td&gt;
&lt;td&gt;86&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020&lt;/td&gt;
&lt;td&gt;123&lt;/td&gt;
&lt;td&gt;44&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;129&lt;/td&gt;
&lt;td&gt;59&lt;/td&gt;
&lt;td&gt;64&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;88&lt;/td&gt;
&lt;td&gt;47&lt;/td&gt;
&lt;td&gt;42&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;타입（TypeScript）&lt;/strong&gt; 언급은 2021년에 피크（129건）였고, 그 이후는 감소 경향입니다. TypeScript가 기본이 되었기에, 「TypeScript 사용하자」 자체가 뉴스가 되지 않는다 생각됩니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;테스트&lt;/strong&gt; 언급은 2014년에 피크（87건）. Jasmine, Mocha, Karma 많은 테스트 프레임워크가 경쟁했던 시기였습니다, JSer.info에도 빈번하게 등장했습니다. 현재는 Jest, Vitest, Playwright가 주력이 되었습니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;성능&lt;/strong&gt; 언급은 2017년에 피크（93건）였고, webpack 최적화나 Tree Shaking, 코드 부분을 JSer.info에도 많이 소개한 시기였습니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a11y（접근성）&lt;/strong&gt; 은, 일관되게 증가세에 있는 토픽입니다. 6건에서 23건으로, 약 4배 증가했습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_cross_topics_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_cross_topics_ko.png&quot; alt=&quot;횡단적 토픽 변화&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-2b46f560d470f8c4&quot;&gt;정보 소스 종류의 변화&lt;/h2&gt;

&lt;p&gt;소개 글의 소스를 「공식（프로젝트/문서）」 「GitHub」 「개인 블로그」로 분류했습니다.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;소스&lt;/th&gt;
&lt;th&gt;2011-2013&lt;/th&gt;
&lt;th&gt;2014-2016&lt;/th&gt;
&lt;th&gt;2017-2019&lt;/th&gt;
&lt;th&gt;2020-2022&lt;/th&gt;
&lt;th&gt;2023-2025&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;공식&lt;/td&gt;
&lt;td&gt;204&lt;/td&gt;
&lt;td&gt;294&lt;/td&gt;
&lt;td&gt;467&lt;/td&gt;
&lt;td&gt;471&lt;/td&gt;
&lt;td&gt;479&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub&lt;/td&gt;
&lt;td&gt;506&lt;/td&gt;
&lt;td&gt;1,015&lt;/td&gt;
&lt;td&gt;910&lt;/td&gt;
&lt;td&gt;903&lt;/td&gt;
&lt;td&gt;596&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;개인 블로그&lt;/td&gt;
&lt;td&gt;213&lt;/td&gt;
&lt;td&gt;194&lt;/td&gt;
&lt;td&gt;141&lt;/td&gt;
&lt;td&gt;76&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;ul&gt;
&lt;li&gt;공식: nodejs.org, webkit.org, reactjs.org, eslint.org 공식 사이트/문서&lt;/li&gt;
&lt;li&gt;GitHub: github.com, github.io&lt;/li&gt;
&lt;li&gt;개인블로그: 하테나, Qiita, Zenn, medium.com/@개인 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_publisher_types_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_publisher_types_ko.png&quot; alt=&quot;정보 소스의 변화&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;비교해 보면, 2011-2013년은 개인 블로그와 공식이 거의 비슷（213 vs 204）했습니다만, 2023-2025년에는 공식 블로그/문서가 개인 블로그의 약 7배（479 vs 70）가 되었습니다. 공식 문서나 프로젝트 사이트의 정보제공이 충실해 짐에 따라, JSer.info에서 소개되는 정보원도 공식사이트 중심이 되었습니다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-ae7886899c0d1060&quot;&gt;개발 방법 변화&lt;/h2&gt;

&lt;p&gt;개발 방법에 관련된 토픽도 변화가 있습니다.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;방법&lt;/th&gt;
&lt;th&gt;2011-2013&lt;/th&gt;
&lt;th&gt;2017-2019&lt;/th&gt;
&lt;th&gt;2023-2025&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD&lt;/td&gt;
&lt;td&gt;31&lt;/td&gt;
&lt;td&gt;56&lt;/td&gt;
&lt;td&gt;67&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Migration/이행&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;td&gt;56&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RFC/Proposal&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;73&lt;/td&gt;
&lt;td&gt;45&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Breaking Change&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;RFC/Proposal&lt;/strong&gt; 언급이 증가한 것은, ECMAScript가 ES2015에서 Stage제 도입하고, Proposal 소개가 증가한 점, 라이브러리/프레임워크가 RFC프로세스를 이용하는 경우가 증가한 것을 반영합니다.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Migration（이행）&lt;/strong&gt; 언급이 증가한 것은, 에코시스템 성숙을 보여줍니다. 새로운 기술로 이행, 메이저 버전업, 레거시 코드 갱신, 「기존 코드기반을 어떻게 갱신할까」가 중요한 테마가 되었습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_dev_practices_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_dev_practices_ko.png&quot; alt=&quot;개발 방법 변화&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;15&quot;&gt;15년간 변화의 정리&lt;/h2&gt;

&lt;p&gt;JSer.info의 15년간 데이터를 보고 변화를 정리합니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_summary_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_summary_ko.png&quot; alt=&quot;15년간 변화의 정리&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;jser-info&quot;&gt;JSer.info 자체의 변화&lt;/h2&gt;

&lt;p&gt;15년간 JSer.info 자체도 변화가 있었습니다.&lt;/p&gt;

&lt;h3 id=&quot;part-ba28e4e4e9cc32b0&quot;&gt;기술적 변화&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;2014년: Tumblr에서 GitHub Pages로 이전&lt;/li&gt;
&lt;li&gt;2015년: Realtime JSer.info 공개&lt;/li&gt;
&lt;li&gt;2016년: HTTPS화, Ping 기능 추가&lt;/li&gt;
&lt;li&gt;2021년: &lt;a href=&quot;https://jser.info/policy/&quot;&gt;JSer.info Policy&lt;/a&gt; 공개&lt;/li&gt;
&lt;li&gt;2023년: &lt;a href=&quot;https://jser.info/watch-list/&quot;&gt;JSer.info Watch List&lt;/a&gt; 공개&lt;/li&gt;
&lt;li&gt;2025년: MCP 보조, AI에 의한 헤드라인 생성 도입&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;part-4cc7dbc39160199c&quot;&gt;운영 변화&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;주 1갱신을 15년간 지속&lt;/li&gt;
&lt;li&gt;GitHub 상에서 마무리 짓는 워크플로우 구축&lt;/li&gt;
&lt;li&gt;자동 카테고라이즈, 자동 태그 붙이기, 헤드라인 생성 도입&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/azu/postem&quot;&gt;postem&lt;/a&gt; 사용한 글 투고&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jser.info/ko/&quot;&gt;한국어판&lt;/a&gt; 번역（@uyeong 님, @rewrite0w0 님, @Serzhul 님에게 감사）&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;part-a07f6c6c5bdb9196&quot;&gt;「교환 가능하게 한다」 는 목표의 이후 이야기&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://jser.info/2022/01/16/11-years/&quot;&gt;JSer.info 11주년&lt;/a&gt; 에 「2025년까지 교환 가능하게 한다」는 목표를 밝혔습니다. 완전한 교환 가능은 달성하지 못했지만, AI 활용에 의해 갱신 흐름도 크게 변화했습니다.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_jser_info_flow_ko.png&quot; alt=&quot;JSer.info 갱신 흐름&quot;&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JSer.info 갱신 흐름 2025년 - &lt;a href=&quot;https://azu.github.io/slide/2025/yapc/opensource-15years.html&quot;&gt;YAPC::Fukuoka 2025에서 발표 자료&lt;/a&gt; 발췌&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://jser.info/about/&quot;&gt;JSer.info에 대하여&lt;/a&gt;에는 「갱신에 자신에게 오는 부하를 되도록 적게하고 스무스하게 했던 것이 지속의 열쇠」라 밝혔습니다. 현재 JSer.info은, 정보 수집부터 PR 작성, 태그 붙이기, 그룹 나누기, 헤드라인 생성까지, 많은 부분이 자동화되어 있습니다. 인간이 해야 할 일은 정보의 판단에서 어떤 부분만이 남아 있습니다. 즉, 무엇을 소개할지, 어떻게 전달할 지에 대한 부분입니다.&lt;br&gt;
지루한 작업을 자동화하고, 판단이라는 가치에서 어떤 부분에 집중하게 하는 구조가 정리되었습니다.&lt;/p&gt;

&lt;p&gt;자세한 사항은 &lt;a href=&quot;https://azu.github.io/slide/2025/yapc/opensource-15years.html&quot;&gt;YAPC::Fukuoka 2025 발표&lt;/a&gt; 를 참조해주시길 바랍니다.&lt;/p&gt;

&lt;h3 id=&quot;2025&quot;&gt;2025년 갱신 빈도에 대하여&lt;/h3&gt;

&lt;p&gt;2025년은 갱신 빈도가 조금 적어졌습니다. 개인 북마크（정보 수입 입력）을 분석해본 결과, 원인을 어느 정도 알게 되었습니다.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;연도&lt;/th&gt;
&lt;th&gt;북마크 숫자&lt;/th&gt;
&lt;th&gt;투고숫자&lt;/th&gt;
&lt;th&gt;투고기간&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2021&lt;/td&gt;
&lt;td&gt;2,862&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;td&gt;6.9일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2023&lt;/td&gt;
&lt;td&gt;2,373&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;td&gt;6.9일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;1,033&lt;/td&gt;
&lt;td&gt;41&lt;/td&gt;
&lt;td&gt;8.9일&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;북마크 숫자（입력）이 2021년을 피크로 64% 감소했습니다. 한편, 북마크에서 읽을거리로 가는 경우가 2배 이상 높아졌습니다. 2021년은 4건 북마크 당 1건 소개되었지만, 2025년에는 2건 북마크 당 1건 소개되었습니다. 그 결과, 입력이 64% 감소했어도, 투고 숫자는 23% 감소에 그쳤습니다.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/uploads/media/2026/15th/15th_bookmark_correlation_ko.png&quot;&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_bookmark_correlation_ko.png&quot; alt=&quot;북마크와 JSer.info 갱신 상관&quot;&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;감소한 원인으로는, 글을 읽고, 북마크할 때 설명문을 작성하는 스타일이었기에, 그 부하에 걸린 것에 가능성을 높게 두고 있습니다.&lt;br&gt;
수치로 알게된 것은, 이것을 추적하면서 개선하면 좋겠다는 생각입니다.&lt;br&gt;
근래는 &lt;a href=&quot;https://github.com/azu/postem&quot;&gt;postem&lt;/a&gt; 도구에 Claude 연계 북마크 보조 기능을 추가했기에, 개선되고 있다 생각됩니다.&lt;/p&gt;

&lt;p&gt;또한, 최근에 RSS 리더를 만들었는데, RSS에서 정보 수집해서 판단하고 공개하는 JSer.info 정보 시스템 전체가 스스로 작성한 것으로 동작하고 있습니다.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-&quot; data-lang=&quot;&quot;&gt;JSer.info 정보 시스템 전체의 큰 흐름:

RSS 피드 → 수집 → 판단 → 공개
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;/uploads/media/2026/15th/15th_jser_info_system_ko.png&quot; alt=&quot;JSer.info 정보 시스템&quot;&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://azu.github.io/slide/2025/yapc/opensource-15years.html&quot;&gt;YAPC::Fukuoka 2025에서 발표 자료&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;이에 따라, 지금까지 마찰이 있던 부분도 기술적으로 제거하기 쉬워진 기분입니다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-30facd4739d76a21&quot;&gt;정리하며&lt;/h2&gt;

&lt;p&gt;JSer.info은 2011년 1월 16일에 시작해서, 15년이 지났습니다.&lt;/p&gt;

&lt;p&gt;15년 전, JavaScript은 jQuery（&lt;a href=&quot;https://x.com/jquery/status/2011453468834505054&quot;&gt;jQuery은 2026년 1월 14일에 20주년！&lt;/a&gt;）와 Backbone.js/CoffeeScript 시대였습니다. 지금은 React, TypeScript, Vite가 대부분 소개되지만, Node.js 이외 런타임도 선택할 수 있게 되었습니다.&lt;/p&gt;

&lt;p&gt;JSer.info에 소개된 정보원도 변화했습니다. 스터디 슬라이드나 도서에서, 공식 문서나 GitHub 출시 노트 중심이 되었습니다.&lt;/p&gt;

&lt;p&gt;변화가 계속되는 JavaScript의 에코시스템에서, JSer.info가 「JavaScript 정보를 정리하고 정확하게 전달하자」 역할을 다 할 수 있다면 좋겠습니다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;이 글이나 JSer.info 관련한 의견이나 감상은, 이하의 링크에 남겨주시길 바랍니다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;X/Twitter: &lt;a href=&quot;https://twitter.com/search?f=realtime&amp;q=%23jserinfo&quot;&gt;#jserinfo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://join.slack.com/t/jserinfo/shared_invite/zt-g2shzp7o-f_tj6OaphCAFw5Qlt2Jw0A&quot;&gt;JSer.info Slack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;15년간 읽어주신 분, 지원해주신 분, 감사합니다！&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;jser-info-sponsors&quot;&gt;JSer.info Sponsors&lt;/h2&gt;

&lt;p&gt;JSer.info를 GitHub Sponsors에서 지원해주시는 분들에게 감사합니다.&lt;br&gt;
특히 긴 시간 지원해주신 &lt;a href=&quot;https://cybozu.co.jp/&quot;&gt;사이보우즈 주식회사&lt;/a&gt;에 감사드립니다.&lt;/p&gt;

&lt;h3 class=&quot;inline-support&quot;&gt;To support JSer.info&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;😘 Recommend JSer.info to your friends!&lt;/li&gt;
    &lt;li&gt;❤️ Support &lt;a href=&quot;https://github.com/sponsors/azu&quot;&gt;@azu on GitHub Sponsors&lt;/a&gt;/&lt;a
            href=&quot;https://jser.info/sponsor/&quot;&gt;JSer.info Sponsors&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;🐦 Follow &lt;a href=&quot;https://twitter.com/jser_info&quot;&gt;@jser_info on X(Twitter)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;part-2f9e5419718c79c3&quot;&gt;관련 링크&lt;/h2&gt;

&lt;p&gt;이 글을 작성할 때 사용한 JSer.info 데이터셋은 &lt;a href=&quot;https://github.com/jser/dataset&quot;&gt;jser/dataset&lt;/a&gt;에 공개했습니다.&lt;br&gt;
또한, 이번에는 DuckDB를 주로 사용해 분석했고, 그 쿼리에 대해서는 &lt;a href=&quot;https://github.com/jser/jser.github.io/pull/1343&quot;&gt;jser/jser.github.io#1343&lt;/a&gt;에 공개했습니다.&lt;/p&gt;

&lt;p&gt;DuckDB에서 직접 JSer.info 데이터셋을 읽고, 횡단적 토픽의 연도별 집계를 쿼리하는 예시.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;duckdb &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;
SELECT
    YEAR(CAST(date AS TIMESTAMP)) as year,
    SUM(CASE WHEN LOWER(content) LIKE '%security%' OR LOWER(content) LIKE '%セキュリティ%'
        OR LOWER(content) LIKE '%脆弱性%' THEN 1 ELSE 0 END) as security,
    SUM(CASE WHEN LOWER(content) LIKE '%performance%' OR LOWER(content) LIKE '%パフォーマンス%'
        OR LOWER(content) LIKE '%高速化%' THEN 1 ELSE 0 END) as performance,
    SUM(CASE WHEN LOWER(content) LIKE '%accessib%' OR LOWER(content) LIKE '%a11y%'
        OR LOWER(content) LIKE '%アクセシビリティ%' THEN 1 ELSE 0 END) as a11y,
    SUM(CASE WHEN LOWER(content) LIKE '%test%' OR LOWER(content) LIKE '%テスト%' THEN 1 ELSE 0 END) as testing,
    SUM(CASE WHEN LOWER(content) LIKE '%型%' OR LOWER(content) LIKE '%type%' THEN 1 ELSE 0 END) as typing
FROM read_json_auto('https://jser.info/source-data/items.json', ignore_errors=true)
GROUP BY year
ORDER BY year;
&quot;&lt;/span&gt;

┌───────┬──────────┬─────────────┬────────┬─────────┬────────┐
│ year  │ security │ performance │  a11y  │ testing │ typing │
│ int64 │  int128  │   int128    │ int128 │ int128  │ int128 │
├───────┼──────────┼─────────────┼────────┼─────────┼────────┤
│  2010 │        0 │           0 │      0 │       0 │      0 │
│  2011 │        6 │          19 │      3 │      34 │     29 │
│  2012 │        7 │          31 │      2 │      98 │     43 │
│  2013 │       11 │          28 │      7 │     118 │     69 │
│  2014 │        6 │          39 │      4 │      82 │     52 │
│  2015 │        9 │          20 │      8 │      66 │     72 │
│  2016 │       10 │          39 │     22 │      60 │     75 │
│  2017 │       13 │          69 │      5 │      72 │    104 │
│  2018 │       11 │          68 │     14 │      50 │     90 │
│  2019 │       20 │          54 │     14 │      55 │    103 │
│  2020 │       11 │          65 │      9 │      34 │    117 │
│  2021 │       23 │          54 │      8 │      39 │    124 │
│  2022 │       18 │          39 │      7 │      57 │    114 │
│  2023 │       13 │          66 │      6 │      57 │    111 │
│  2024 │       12 │          36 │      9 │      46 │     90 │
│  2025 │       14 │          30 │      9 │      34 │     86 │
│  2026 │        2 │           4 │      1 │       2 │      5 │
├───────┴──────────┴─────────────┴────────┴─────────┴────────┤
│ 17 rows                                          6 columns │
└────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://jser.info/2021/01/16/jser-10th/&quot;&gt;JSer.info 10주년: JavaScript 정보 수집 방법, 작성 방법, 정리 방법&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jser.info/2022/01/16/11-years/&quot;&gt;JSer.info 11주년: 목표는 2025년까지 교환 가능하게 하기&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jser.info/ko/2023/01/16/jser-12th/&quot;&gt;JSer.info 12주년입니다&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jser.info/ko/2024/01/16/jser-13th/&quot;&gt;JSer.info 13주년: JavaScript 정보처를 정리&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://jser.info/ko/2025/05/24/jser-14th/&quot;&gt;JSer.info 14주년&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 16 Jan 2026 09:00:00 +0900</pubDate>
        <link>https://jser.info/ko/2026/01/16/jser-info-15th/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/01/16/jser-info-15th/</guid>
        
        <category>JSer</category>
        
        
        <category>Article</category>
        
      </item>
    
  </channel>
</rss>
