<?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>Mon, 09 Nov 2026 22:57:56 +0900</pubDate>
    <lastBuildDate>Mon, 09 Nov 2026 22:57:56 +0900</lastBuildDate>
    <generator>Jekyll v3.9.0</generator>
    
      <item>
        <title>2026-11-09: TypeScript 7.1 Beta, Node.js 26 LTS/27 Alpha, Safari 27.1</title>
        <description>&lt;p&gt;JSer.info #782 - TypeScript 7.1 Beta가 출시했다.&lt;/p&gt;

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

&lt;p&gt;Ambient Modules에서 Import Attributes, &lt;code&gt;import source&lt;/code&gt;/&lt;code&gt;import.source()&lt;/code&gt;에 대응했다.&lt;br&gt;
&lt;code&gt;--target es2026&lt;/code&gt;/&lt;code&gt;--lib es2026&lt;/code&gt;가 추가되어, &lt;code&gt;Promise.allKeyed&lt;/code&gt; 자료형 정의도 추가된다.&lt;br&gt;
또한, &lt;code&gt;typescript/sync&lt;/code&gt;/&lt;code&gt;typescript/async&lt;/code&gt; 새로운 API, 임베드를 다루는 Content Mappers가 추가된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Node.js 26.13.0가 출시되어, Node.js 26 계열이 코드네임 Lithium이며 LTS으로 이행됐다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v26.13.0&quot;&gt;Node.js — Node.js 26.13.0 (LTS)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Node.js 26 계열은 2029년 4월말까지 지원.&lt;br&gt;
Node.js 25 이후 Linux 공식 바이너리는 &lt;code&gt;libatomic&lt;/code&gt;로 링크되어, 오래된 LTS에서 업데이트시에는 별도 설치 필요한 경우가 있다.&lt;/p&gt;

&lt;p&gt;또한, Node.js 27 Alpha가 출시됐다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v27.0.0-alpha.0.0.0&quot;&gt;Node.js — Node.js 27.0.0-alpha.0.0.0 (Alpha)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Node.js 27부터는, &lt;a href=&quot;https://nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule&quot;&gt;출시 스케쥴&lt;/a&gt;가 변경된다.&lt;br&gt;
메이저 출시는 연 2회에서 연1회가 되며, 홀수 짝수 구별없이 각 메이저 버전이 LTS로 이행된다.&lt;br&gt;
6개월은 Alpha, 6개월은 Current를 거쳐, 30개월 LTS으로 지원된다.&lt;br&gt;
Node.js 27는, 2027년 4월에 Current, 동년 10월에 LTS로 이행될 예정.&lt;/p&gt;

&lt;p&gt;V8 15.6으로 업데이트 되어, &lt;code&gt;Math.sumPrecise()&lt;/code&gt;/&lt;code&gt;Iterator.zip()&lt;/code&gt;에 대응한다.&lt;br&gt;
파괴적 변경으로, 힙 상한 기존 값 변경이 있다.&lt;br&gt;
&lt;code&gt;Buffer&lt;/code&gt;/&lt;code&gt;ArrayBuffer&lt;/code&gt; 메모리와 힙 상한이 도입된다.&lt;br&gt;
&lt;code&gt;v8.serialize()&lt;/code&gt; 출력 형식이 변경되어, 구버전에서는 읽을 수 없다.&lt;br&gt;
그 외로는, &lt;code&gt;node:vfs&lt;/code&gt; 플래그가 필요없어져, 환경변수 접근제어하는 &lt;code&gt;--allow-env&lt;/code&gt;, 실험적 &lt;code&gt;net/promises&lt;/code&gt; API가 추가된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Safari 27.1가 출시됐다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://webkit.org/blog/18486/webkit-features-for-safari-27-1/&quot;&gt;WebKit Features for Safari 27.1 | WebKit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;iPhone Duo 대상으로 Device Posture API와 Viewport Segments API를, 기능 플래그 조건으로 실험적인 지원한다.&lt;br&gt;
&lt;code&gt;device-posture&lt;/code&gt; 미디어 쿼리나 &lt;code&gt;navigator.devicePosture&lt;/code&gt;으로 접힌 상태를 얻는다.&lt;br&gt;
또한, &lt;code&gt;window.viewport.segments&lt;/code&gt;이나 CSS 환경 변수에서 화면 분할 영역을 얻는다.&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-typescript-7-1-beta-typescript&quot;&gt;Announcing TypeScript 7.1 Beta - TypeScript&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-7-1-beta/&quot; title=&quot;Announcing TypeScript 7.1 Beta - TypeScript&quot;&gt;devblogs.microsoft.com/typescript/announcing-typescript-7-1-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 7.1 Beta 출시.&lt;br&gt;
Ambient Modules로 Import Attributes를 지원, &lt;code&gt;import source&lt;/code&gt;/&lt;code&gt;import.source()&lt;/code&gt;에 대응.&lt;br&gt;
&lt;code&gt;--target es2026&lt;/code&gt;/&lt;code&gt;--lib es2026&lt;/code&gt; 추가, &lt;code&gt;Promise.allKeyed&lt;/code&gt; 자료형 정의 추가.&lt;br&gt;
&lt;code&gt;typescript/sync&lt;/code&gt;/&lt;code&gt;typescript/async&lt;/code&gt; 새로운 API, 임베디드된 코드를 다루는 Content Mappers 추가&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nuxt.com/blog/v4-6&quot; title=&quot;Nuxt 4.6 · Nuxt Blog&quot;&gt;nuxt.com/blog/v4-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;Vue&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.6.0 출시.&lt;br&gt;
동봉된 Nuxt CLI v4으로 &lt;code&gt;nuxt init&lt;/code&gt; 삭제, &lt;code&gt;npm create nuxt@latest&lt;/code&gt;으로 통일.&lt;br&gt;
서버 처리 공통 API가 되는 &lt;code&gt;nuxt/server&lt;/code&gt;, &lt;code&gt;runtimeConfig.appSecret&lt;/code&gt;과 세션 관리 API 추가.&lt;br&gt;
&lt;code&gt;experimental.routeTypedFetch&lt;/code&gt;으로 &lt;code&gt;$fetch&lt;/code&gt;/&lt;code&gt;useFetch&lt;/code&gt; 자료형 추론을 갱신하며, 자료형 체크 성능을 개선.&lt;br&gt;
Vue Vapor와 상호운용, &lt;code&gt;createUseFetch&lt;/code&gt;/&lt;code&gt;createUseAsyncData&lt;/code&gt;의 &lt;code&gt;addons&lt;/code&gt;, 실험적인 &lt;code&gt;@nuxt/vite-server&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;my-bad&lt;/code&gt;에 의한 개발 시의 에러 표시, &lt;code&gt;nuxt dev&lt;/code&gt; 대화 판넬, &lt;code&gt;nuxt curl&lt;/code&gt;/&lt;code&gt;nuxt task&lt;/code&gt; 명령어 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-2026-10-21&quot;&gt;Node.js — 2026년 10월 21일（화） 보안 출시&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/vulnerability/october-2026-security-releases&quot; title=&quot;Node.js — 2026년 10월 21일（화） 보안 출시&quot;&gt;nodejs.org/en/blog/vulnerability/october-2026-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 22.23.4/24.22.1/26.12.1 보안 출시.&lt;br&gt;
중요도 High 포함한 10건 취약성 수정.&lt;br&gt;
&lt;code&gt;dns.resolve&lt;/code&gt;에서의 NUL 문자에 의한 이름 이름 단축, TLS 증명서 호스트명 검증 회피, Brotli 디코더 영역 외 작성을 수정.&lt;br&gt;
&lt;code&gt;crypto.randomUUID()&lt;/code&gt;와 &lt;code&gt;crypto.randomInt()&lt;/code&gt; 난수캐시가 스냅숏으로 보존되는 문제 수정.&lt;br&gt;
&lt;code&gt;fs.realpathSync&lt;/code&gt;에 의한 Permission Model 회피 수정.&lt;br&gt;
또한, c-ares/Undici/OpenSSL/SQLite 의존 관계 갱신.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;webkit-features-for-safari-27-1-webkit&quot;&gt;WebKit Features for Safari 27.1 | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/18486/webkit-features-for-safari-27-1/&quot; title=&quot;WebKit Features for Safari 27.1 | WebKit&quot;&gt;webkit.org/blog/18486/webkit-features-for-safari-27-1/&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;WebAPI&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 27.1 출시.&lt;br&gt;
iPhone Duo 대상 Device Posture API와 Viewport Segments API를 기능 플래그 조건으로 실험적 지원.&lt;br&gt;
&lt;code&gt;device-posture&lt;/code&gt; 미디어쿼리나 &lt;code&gt;navigator.devicePosture&lt;/code&gt;에서 접힘 상태 얻음.&lt;br&gt;
&lt;code&gt;window.viewport.segments&lt;/code&gt;이나 CSS 환경 변수로 화면 분할 영역 얻음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v10-0-0-beta-0-typestrong-ts-loader&quot;&gt;Release v10.0.0-beta.0 · TypeStrong/ts-loader&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/TypeStrong/ts-loader/releases/tag/v10.0.0-beta.0&quot; title=&quot;Release v10.0.0-beta.0 · TypeStrong/ts-loader&quot;&gt;github.com/TypeStrong/ts-loader/releases/tag/v10.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;TypeScript&lt;/span&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;ts-loader v10.0.0-beta.0 출시.&lt;br&gt;
TypeScript 7.1 이상/Node.js 22 이상을 필수로, 컴파일 처리를 &lt;code&gt;typescript/sync&lt;/code&gt; API으로 이행.&lt;br&gt;
&lt;code&gt;compilerOptions&lt;/code&gt;/&lt;code&gt;context&lt;/code&gt;/&lt;code&gt;happyPackMode&lt;/code&gt; 로더 옵션을 삭제.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-vite-plus-v1-4-0-voidzero-dev-vite-plus&quot;&gt;Release vite-plus v1.4.0 · voidzero-dev/vite-plus&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/voidzero-dev/vite-plus/releases/tag/v1.4.0&quot; title=&quot;Release vite-plus v1.4.0 · voidzero-dev/vite-plus&quot;&gt;github.com/voidzero-dev/vite-plus/releases/tag/v1.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;vite&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+ 1.4.0 출시.&lt;br&gt;
&lt;code&gt;vpx&lt;/code&gt;으로 TypeScript/JavaScript 파일 실행과 &lt;code&gt;--watch&lt;/code&gt;에 의한 감시 대응, &lt;code&gt;vp migrate&lt;/code&gt;으로 tsx에서 이행을 지원.&lt;br&gt;
&lt;code&gt;vp check --deny-warnings&lt;/code&gt;, 레지스트리 팀을 관리하는 &lt;code&gt;vp pm team&lt;/code&gt; 추가.&lt;br&gt;
글로벌 CLI 의존 관계를 출시마다 lock 파일에서 설치하도록 변경&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-26-13-0-lts&quot;&gt;Node.js — Node.js 26.13.0 (LTS)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v26.13.0&quot; title=&quot;Node.js — Node.js 26.13.0 (LTS)&quot;&gt;nodejs.org/en/blog/release/v26.13.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 v26.13.0 출시.&lt;br&gt;
Node.js 26 계열이 코드네임 Lithium으로 하고 LTS으로 이행, 2029년 4월말까지 지원.&lt;br&gt;
Node.js 25 이후 Linux 공식 바이너리는 &lt;code&gt;libatomic&lt;/code&gt; 링크되어, 오래된 LTS에서 갱신할 때 별도 설치를 필요로 하는 경우가 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-27-0-0-alpha-0-0-0-alpha&quot;&gt;Node.js — Node.js 27.0.0-alpha.0.0.0 (Alpha)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v27.0.0-alpha.0.0.0&quot; title=&quot;Node.js — Node.js 27.0.0-alpha.0.0.0 (Alpha)&quot;&gt;nodejs.org/en/blog/release/v27.0.0-alpha.0.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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js v27.0.0-alpha.0.0.0 출시.&lt;br&gt;
파괴적 변경으로, 힙상 상한 기존값을 변경, &lt;code&gt;Buffer&lt;/code&gt;/&lt;code&gt;ArrayBuffer&lt;/code&gt; 메모리 상한에 도입하도록 변경.&lt;br&gt;
&lt;code&gt;v8.serialize()&lt;/code&gt; 출력 형식을 변경, 구버전에서의 호출 비대응.&lt;br&gt;
V8 15.6으로 업데이트와 &lt;code&gt;Math.sumPrecise()&lt;/code&gt;/&lt;code&gt;Iterator.zip()&lt;/code&gt; 지원.&lt;br&gt;
&lt;code&gt;node:vfs&lt;/code&gt; 플래그없도록 변경, 환경변수 접근제어하는 &lt;code&gt;--allow-env&lt;/code&gt; 추가, 실험적인 &lt;code&gt;net/promises&lt;/code&gt; API 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v1-0-0-dy-jz&quot;&gt;Release v1.0.0 · dy/jz&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/dy/jz/releases/tag/v1.0.0&quot; title=&quot;Release v1.0.0 · dy/jz&quot;&gt;github.com/dy/jz/releases/tag/v1.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;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;compiler&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;JavaScript를 WebAssembly에 컴파일하는 JZ v1.0.0 출시.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.65.0&quot; title=&quot;Release v1.65.0 · microsoft/playwright&quot;&gt;github.com/microsoft/playwright/releases/tag/v1.65.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.65.0 출시.&lt;br&gt;
파괴적 변경으로, TypeScript 클래스 필드가 &lt;code&gt;useDefineForClassFields&lt;/code&gt;에 따르도록 변경, 클릭 조작으로 &lt;code&gt;inert&lt;/code&gt; 해제를 갖도록 변경.&lt;br&gt;
Cookie 조합을 RFC 6265으로 합쳐져, &lt;code&gt;APIRequestContext&lt;/code&gt;의 &lt;code&gt;params&lt;/code&gt;를 기존 쿼리에 기록하도록 변경.&lt;br&gt;
&lt;code&gt;bunx --bun playwright test&lt;/code&gt;으로 Bun 상에서 테스트 실행에 대응, &lt;code&gt;failures&lt;/code&gt; 레포터와 &lt;code&gt;onlyFailures&lt;/code&gt; 옵션 추가.&lt;br&gt;
테스트를 단독으로 실행하는 &lt;code&gt;lock: &amp;#39;-exclusive-&amp;#39;&lt;/code&gt;, &lt;code&gt;cdpSession.send()&lt;/code&gt;의 &lt;code&gt;timeout&lt;/code&gt;/&lt;code&gt;signal&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;unload-event-deprecated-in-chrome-blog-chrome-for-developers&quot;&gt;Unload event deprecated in Chrome  |  Blog  |  Chrome for Developers&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/blog/unload-deprecated-in-chrome&quot; title=&quot;Unload event deprecated in Chrome  |  Blog  |  Chrome for Developers&quot;&gt;developer.chrome.com/blog/unload-deprecated-in-chrome&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;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;Chrome 155에서 &lt;code&gt;unload&lt;/code&gt; 이벤트 비권장화가 완료되고, 기본적으로 동작하지 않도록 됨.&lt;br&gt;
이벤트 신뢰성이나 BFCache으로 영향, 계단적 적용 경위에 대해 해설.&lt;br&gt;
Permissions Policy이나 Chrome Enterprise 설정에 의한 옵트아웃로 계속 이용 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;rebuilding-the-global-town-square-from-scratch&quot;&gt;Rebuilding the global town square from scratch&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.x.com/en/engineering/rebuilding-the-global-town-square-from-scratch&quot; title=&quot;Rebuilding the global town square from scratch&quot;&gt;blog.x.com/en/engineering/rebuilding-the-global-town-square-from-scratch&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;SSR&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;performance&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;X.com의 Web 애플리케이션을 재구축한 배경과 이행 방법에 대하여.&lt;br&gt;
React/Relay/Fastify를 사용해, 이용자/검색 크롤러/링크 프리뷰 대상을 나눴던 3가지 서버를 통합.&lt;br&gt;
Streaming HTML, GraphQL 리스폰스 재이용, JavaScript 분할이나 읽기 순서 조절하여 성능 개선.&lt;br&gt;
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;add-streaming-html-insertion-methods-by-noamr-pull-request-12758-whatwg-html&quot;&gt;Add streaming HTML insertion methods by noamr · Pull Request #12758 · whatwg/html&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/whatwg/html/pull/12758?overview=true&quot; title=&quot;Add streaming HTML insertion methods by noamr · Pull Request #12758 · whatwg/html&quot;&gt;github.com/whatwg/html/pull/12758?overview&amp;#x3D;true&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;HTML&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;DOM&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAPI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WHATWG&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;spec&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;HTML를 스트리밍으로 해석, DOM으로 계단적으로 도입하는 API를 HTML 사양으로.&lt;br&gt;
&lt;code&gt;Element.streamHTML()&lt;/code&gt;/&lt;code&gt;streamAppendHTML()&lt;/code&gt;가 &lt;code&gt;WritableStream&lt;/code&gt;를 반환, Stream으로 작성된 HTM 문자열을 HTML으로 도입.&lt;br&gt;
위험한 요소나 속성을 제거하는 메서드와, 소거를 하지않는 &lt;code&gt;Unsafe&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;vercel-labs-tsc-ts-typescript-written-in-typescript&quot;&gt;vercel-labs/tsc-ts: TypeScript written in TypeScript&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/vercel-labs/tsc-ts&quot; title=&quot;vercel-labs/tsc-ts: TypeScript written in TypeScript&quot;&gt;github.com/vercel-labs/tsc-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;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;TypeScript-Go（tsgo）를 TypeScript으로 이식하는 실험적인 컴파일러.&lt;br&gt;
scriptc를 사용한 네이티브 코드를 컴파일하여, npm 패키지를 배포.&lt;br&gt;
&lt;code&gt;tsc-ts -p tsconfig.json&lt;/code&gt;으로 프로젝트 컴파일하고, &lt;code&gt;--api&lt;/code&gt;으로 표준 입력을 사용하는 API 서버로 동작.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;obsidianmd-pele-renders-mermaid-diagrams-faster-than-youd-run-from-a-volcano&quot;&gt;obsidianmd/pele: Renders Mermaid diagrams faster than you&amp;#039;d run from a volcano! 🌋&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/obsidianmd/pele&quot; title=&quot;obsidianmd/pele: Renders Mermaid diagrams faster than you&amp;amp;#039;d run from a volcano! 🌋&quot;&gt;github.com/obsidianmd/pele&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;diagram&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;SVG&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Mermaid 다이어그램을 SVG으로 변환하는 라이브러리. 의존이 없이, CSS 변수에 의한 색이나 폰트 변경, 그림 종류마다 읽기나 지연 읽기에 대응.&lt;br&gt;
&lt;code&gt;mount()&lt;/code&gt;으로 브라우저 요소를 렌더링, 컨테이너 폭에 맞춘 레이아웃을 조절 가능.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Mon, 09 Nov 2026 09:33:58 +0900</pubDate>
        <link>https://jser.info/ko/2026/11/09/typescript-7.1-beta-node.js-26-lts27-alpha-safari-27.1/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/11/09/typescript-7.1-beta-node.js-26-lts27-alpha-safari-27.1/</guid>
        
        <category>TypeScript</category>
        
        <category>nodejs</category>
        
        <category>safari</category>
        
        <category>browser</category>
        
        <category>css</category>
        
        <category>WebAPI</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-10-16: Cloudflare가 Deno 인수, TanStack Start 1.0, Bun 1.4.3, Panda CSS 2.0</title>
        <description>&lt;p&gt;JSer.info #781 - Cloudflare가 Deno 인수를 발표했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://deno.com/blog/cloudflare&quot;&gt;Deno is joining Cloudflare | Deno&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/denoland/deno/issues/37030&quot;&gt;The state of Deno after the Cloudflare announcement · Issue #37030 · denoland/deno&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Deno 런타임은 1년간 버그 수정・보안 업데이트 진행한 이후, Deno 팀에 의한 개발이 종료된다.&lt;br&gt;
Deno Deploy은 6개월 후에 종료, JSR은 Cloudflare로 이행되어 계승된다.&lt;br&gt;
앞으로는 Workers과 Durable Objects 플랫폼에 주력, &lt;code&gt;rusty_v8&lt;/code&gt;은 지속해서 지원하며 &lt;code&gt;workerd&lt;/code&gt;으로 통합 진행이 예정되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;TanStack Start 1.0 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tanstack.com/blog/tanstack-start-1-0&quot;&gt;TanStack Start 1.0 is Stable | TanStack Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TanStack Start은, TanStack Router를 기반으로 하는 React/Solid 대상 풀스택 프레임워크이다.&lt;br&gt;
SSR와 스트리밍, 자료형 있는 서버 함수 &lt;code&gt;createServerFn&lt;/code&gt;, 실행 환경 째로 처리를 전환하는 &lt;code&gt;createIsomorphicFn&lt;/code&gt;를 제공한다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Bun 1.4.3 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.4.3&quot;&gt;Bun v1.4.3 | Bun Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TypeScript 자료형 체크하는 &lt;code&gt;bun check&lt;/code&gt;가 추가되어, &lt;code&gt;bun run --check&lt;/code&gt;/&lt;code&gt;bun test --check&lt;/code&gt;/&lt;code&gt;bun build --check&lt;/code&gt;에 대응한다.&lt;br&gt;
또한, &lt;code&gt;--disallow-code-generation-from-strings&lt;/code&gt;으로 문자열에서 생성 금지, &lt;code&gt;bun build --compile --bytecode-order&lt;/code&gt;에 대응한다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Panda CSS 2.0 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://panda-css.com/blog/panda-css-v2&quot;&gt;Panda CSS 2.0 | Panda CSS Blog - Panda CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Panda CSS 2.0에는, ESM만 가능해 Node.js 22 이상이 필요가 되었으며, &lt;code&gt;hooks&lt;/code&gt;가 &lt;code&gt;plugins&lt;/code&gt;으로 마이그레이션된다.&lt;br&gt;
또한, 컴파일러가 Rust와 Oxc으로 재작성되어, &lt;code&gt;panda lib&lt;/code&gt;와 &lt;code&gt;designSystem&lt;/code&gt;으로 디자인 시스템 배포에 대응한다.&lt;br&gt;
그 외로는, &lt;code&gt;viewTransition()&lt;/code&gt;/&lt;code&gt;firstThatWorks()&lt;/code&gt;/&lt;code&gt;keyframes()&lt;/code&gt;/&lt;code&gt;positionTry()&lt;/code&gt;, &lt;code&gt;panda doctor&lt;/code&gt;/&lt;code&gt;panda analyze&lt;/code&gt;/&lt;code&gt;panda debug&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;preact-11-preact&quot;&gt;Preact 11 – Preact&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://preactjs.com/blog/preact-11/&quot; title=&quot;Preact 11 – Preact&quot;&gt;preactjs.com/blog/preact-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;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;React&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Preact 11.0.0 출시.&lt;br&gt;
파괴적 변경으로, &lt;code&gt;.mjs&lt;/code&gt;의 ESM 배포만 하게 되어 CommonJS/UMD 핸들러 삭제, &lt;code&gt;render()&lt;/code&gt;은 세 번째 인수 삭제.&lt;br&gt;
&lt;code&gt;Hydration 2.0&lt;/code&gt;, &lt;code&gt;Object.is&lt;/code&gt;으로 Hook 인수 비교, ref를 기본적으로 전송하도록 변경&lt;code&gt;forwardRef&lt;/code&gt;를 필요하지 않게 함, &lt;code&gt;createPortal&lt;/code&gt;를 core에 추가.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://preactjs.com/guide/v11/upgrade-guide/&quot; title=&quot;Upgrading from Preact 10.x – Preact Guide v11&quot;&gt;Upgrading from Preact 10.x – Preact Guide v11&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-4&quot; title=&quot;Next.js 16.4 | Next.js&quot;&gt;nextjs.org/blog/next-16-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;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.4 출시.&lt;br&gt;
&lt;code&gt;create-next-app&lt;/code&gt;으로 Cache Componentsが가 기본 유효화, &lt;code&gt;ensureStatic&lt;/code&gt;/&lt;code&gt;navigation()&lt;/code&gt;/&lt;code&gt;prefetch()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;next upgrade --agent&lt;/code&gt;と&lt;code&gt;experimental.agentUpgrade&lt;/code&gt;, &lt;code&gt;experimental.agentFeedback&lt;/code&gt; 추가.&lt;br&gt;
Turbopack 디스크 캐시 삭제, Lazy server HMR, Turbopack 공유 Runtime.&lt;br&gt;
CSS Modules으로 production 빌드에는 짧은 클래스명 생성되도록 변경, React 19.3으로 업데이트.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;panda-css-2-0-panda-css-blog-panda-css&quot;&gt;Panda CSS 2.0 | Panda CSS Blog - Panda CSS&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://panda-css.com/blog/panda-css-v2&quot; title=&quot;Panda CSS 2.0 | Panda CSS Blog - Panda CSS&quot;&gt;panda-css.com/blog/panda-css-v2&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;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;Panda CSS 2.0 출시.&lt;br&gt;
ESM만 지원하게되었으며 Node.js 22 이상 필요, &lt;code&gt;hooks&lt;/code&gt;를 &lt;code&gt;plugins&lt;/code&gt;으로 이행.&lt;br&gt;
&lt;code&gt;createStyleContext&lt;/code&gt;를 &lt;code&gt;createSlotRecipeContext&lt;/code&gt;/&lt;code&gt;createRecipeContext&lt;/code&gt;으로 분할分割.&lt;br&gt;
Rust와 Oxc로 컴파일러 재작성, &lt;code&gt;panda lib&lt;/code&gt;와 &lt;code&gt;designSystem&lt;/code&gt;으로 디자인 시스템 배포에 대응.&lt;br&gt;
&lt;code&gt;viewTransition()&lt;/code&gt;/&lt;code&gt;firstThatWorks()&lt;/code&gt;/&lt;code&gt;keyframes()&lt;/code&gt;/&lt;code&gt;positionTry()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;panda doctor&lt;/code&gt;/&lt;code&gt;panda analyze&lt;/code&gt;/&lt;code&gt;panda debug&lt;/code&gt;, ESLint 플러그인 정식 지원&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-26-11-0-current&quot;&gt;Node.js — Node.js 26.11.0 (Current)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v26.11.0&quot; title=&quot;Node.js — Node.js 26.11.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v26.11.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 v26.11.0 출시.&lt;br&gt;
&lt;code&gt;isLatin1&lt;/code&gt;/&lt;code&gt;Buffer.stringLength()&lt;/code&gt;, &lt;code&gt;http.isValidHeaderName()&lt;/code&gt;/&lt;code&gt;http.isValidHeaderValue()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;http2&lt;/code&gt;の&lt;code&gt;connectionWindowSize&lt;/code&gt;, &lt;code&gt;histogram.diff()&lt;/code&gt;/&lt;code&gt;histogram.snapshot()&lt;/code&gt;, &lt;code&gt;--process-timeout=N&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;process.ref()&lt;/code&gt;/&lt;code&gt;process.unref()&lt;/code&gt;가 Stable, npm 11.20.0으로 업데이트.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://github.com/qunitjs/qunit/releases/tag/3.0.0&quot; title=&quot;Release 3.0.0 · qunitjs/qunit&quot;&gt;github.com/qunitjs/qunit/releases/tag/3.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;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 출시.&lt;br&gt;
Node.js 16 이하/PhantomJS/AMD 대상 빌트인 export/&lt;code&gt;QUnit.load()&lt;/code&gt; 삭제.&lt;br&gt;
네이티브 ESM 배포, &lt;code&gt;before&lt;/code&gt;/&lt;code&gt;after&lt;/code&gt; 훅 module context, &lt;code&gt;QUnit.config.reporters.html&lt;/code&gt; 추가.&lt;br&gt;
기본적 테스트 타임아웃을 3초로 변경, HTML Reporter 디자인 업데이트.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://qunitjs.com/upgrade-guide-3.x/&quot; title=&quot;QUnit 3.0 Upgrade Guide | QUnit&quot;&gt;QUnit 3.0 Upgrade Guide | QUnit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.4.3&quot; title=&quot;Bun v1.4.3 | Bun Blog&quot;&gt;bun.com/blog/bun-v1.4.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;Bun&lt;/span&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;Bun v1.4.3 출시.&lt;br&gt;
TypeScript 자료형 체크를 하는 &lt;code&gt;bun check&lt;/code&gt; 추가, &lt;code&gt;bun run --check&lt;/code&gt;/&lt;code&gt;bun test --check&lt;/code&gt;/&lt;code&gt;bun build --check&lt;/code&gt; 대응.&lt;br&gt;
&lt;code&gt;--disallow-code-generation-from-strings&lt;/code&gt;으로 문자열에서 코드 생성 금지 대응, &lt;code&gt;bun build --compile --bytecode-order&lt;/code&gt; 지원&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;deno-is-joining-cloudflare-deno&quot;&gt;Deno is joining Cloudflare | Deno&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://deno.com/blog/cloudflare&quot; title=&quot;Deno is joining Cloudflare | Deno&quot;&gt;deno.com/blog/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;deno&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare가 Deno 매수.&lt;br&gt;
Deno 런타임은 1년간 버그 수정・보안 업데이트한 이후, Deno팀의 개발은 종료, Deno Deploy은 6개월 후에 종료, JSR은 Cloudflare으로 이행해서 계승.&lt;br&gt;
앞으로는 Workers와 Durable Objects 플랫폼에 주력, &lt;code&gt;rusty_v8&lt;/code&gt;은 계속해서 지원하며 &lt;code&gt;workerd&lt;/code&gt;으로 통합 진행 예정.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/deno-joins-cloudflare&quot; title=&quot;Deno is joining Cloudflare | Cloudflare Blog&quot;&gt;Deno is joining Cloudflare | Cloudflare Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;tanstack-start-1-0-is-stable-tanstack-blog&quot;&gt;TanStack Start 1.0 is Stable | TanStack Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://tanstack.com/blog/tanstack-start-1-0&quot; title=&quot;TanStack Start 1.0 is Stable | TanStack Blog&quot;&gt;tanstack.com/blog/tanstack-start-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;TanStack&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Solid&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TanStack Start 1.0 출시.&lt;br&gt;
TanStack Router를 기반하는 React/Solid 대상 풀스택 프레임워크.&lt;br&gt;
SSR/스트리밍, 자료형 대상 서버 함수 &lt;code&gt;createServerFn&lt;/code&gt;, 실행 환경 째로 처리 전환하는 &lt;code&gt;createIsomorphicFn&lt;/code&gt; 제공한다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v5-3-0-expressjs-express&quot;&gt;Release v5.3.0 · expressjs/express&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/expressjs/express/releases/tag/v5.3.0&quot; title=&quot;Release v5.3.0 · expressjs/express&quot;&gt;github.com/expressjs/express/releases/tag/v5.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;express&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;Express 5.3.0 출시.&lt;br&gt;
&lt;code&gt;Content-Disposition&lt;/code&gt; 파일명 인용부를 생략하는 조건을 변경, &lt;code&gt;res.send()&lt;/code&gt;으로 기존 &lt;code&gt;Content-Type&lt;/code&gt; 파라메터를 보유하도록 변경.&lt;br&gt;
&lt;code&gt;req.fresh&lt;/code&gt;가 &lt;code&gt;QUERY&lt;/code&gt; 메서드에 대응, 기본적으로 에러 핸들러가 &lt;code&gt;Error.cause&lt;/code&gt;를 포함하는 에러 전체 로그 출력.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v1-0-0-qwikdev-partytown&quot;&gt;Release v1.0.0 · QwikDev/partytown&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/QwikDev/partytown/releases/tag/v1.0.0&quot; title=&quot;Release v1.0.0 · QwikDev/partytown&quot;&gt;github.com/QwikDev/partytown/releases/tag/v1.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;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;webworker&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Partytown v1.0.0 출시.&lt;br&gt;
서드파티 스크립트를 Web Worker에서 실행하는 라이브러리.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;responsive-iframes-in-chrome-154-blog-chrome-for-developers&quot;&gt;Responsive iframes in Chrome 154  |  Blog  |  Chrome for Developers&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/blog/responsive-iframes?hl=en&quot; title=&quot;Responsive iframes in Chrome 154  |  Blog  |  Chrome for Developers&quot;&gt;developer.chrome.com/blog/responsive-iframes?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;HTML&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Chrome 154에서 추가된 response한 &lt;code&gt;iframe&lt;/code&gt; 해설 글.&lt;br&gt;
&lt;code&gt;frame-sizing: content-height&lt;/code&gt;로, 임베디드된 내용에 맞춰 크기를 정리 가능.&lt;br&gt;
임베디드된 측에서는 &lt;code&gt;responsive-embedded-sizing&lt;/code&gt; 메타 태그, &lt;code&gt;window.requestResize()&lt;/code&gt;, Cross-Origin 대응에 대한 해설도 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;scrolling-is-all-you-need-building-a-swipeable-sheet-react-aria&quot;&gt;Scrolling is All You Need: Building a Swipeable Sheet | React Aria&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://react-aria.adobe.com/blog/sheet&quot; title=&quot;Scrolling is All You Need: Building a Swipeable Sheet | React Aria&quot;&gt;react-aria.adobe.com/blog/sheet&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;css&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;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;React Aria 스와이프 조작으로 닫을 수 있는 Sheet 컴포넌트 구현에 대하여.&lt;br&gt;
CSS Scroll Snap와 &lt;code&gt;view-timeline&lt;/code&gt;를 사용해, JavaScript에서 터치 이벤트 처리없이 스와이프 조작과 연동한 애니메이션 실현함.&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;tester-army-e2e-next-generation-e2e-testing-framework-for-web-and-mobile-apps&quot;&gt;tester-army/e2e: Next generation e2e testing framework for web and mobile apps.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/tester-army/e2e&quot; title=&quot;tester-army/e2e: Next generation e2e testing framework for web and mobile apps.&quot;&gt;github.com/tester-army/e2e&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;E2E&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;web&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;mobile&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Web와 모바일 애플리케이션 대상 E2E 테스트 프레임워크.&lt;br&gt;
자연언어로 작성된 순서를 에이전트가 실행, LocatorとAssertion으로 결과를 검증 가능.&lt;br&gt;
Web은 Playwright 경유로 Chromium/Firefox/WebKit, 모바일은 iOS/Android에 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;tarwin-tinyjsapp-build-native-apps-in-js-backend-frontend-5mb&quot;&gt;tarwin/tinyjsapp: Build native apps in JS. Backend, frontend. ~5Mb.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/tarwin/tinyjsapp&quot; title=&quot;tarwin/tinyjsapp: Build native apps in JS. Backend, frontend. ~5Mb.&quot;&gt;github.com/tarwin/tinyjsapp&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;app&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;webview&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;macOS&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;windows&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;linux&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;txiki.js와 OS 네이티브 WebView를 사용한 데스크탑 애플리케이션 작성하는 도구.&lt;br&gt;
백엔드는 JavaScript로 작성, 프론트엔드는 HTML/CSS/JS를 OS의 WebView로 보여줌.&lt;br&gt;
&lt;code&gt;tinyjs new&lt;/code&gt;/&lt;code&gt;tinyjs dev&lt;/code&gt;/&lt;code&gt;tinyjs build&lt;/code&gt;의 CLI, 메뉴/알람/트레이/드래그앤드롭 네이티브 기능 제공.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;rauchg-gdp-ts&quot;&gt;rauchg/gdp-ts&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/rauchg/gdp-ts/tree/main&quot; title=&quot;rauchg/gdp-ts&quot;&gt;github.com/rauchg/gdp-ts/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;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;lint&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript 대상 Ghosts of Departed Proofs 구현 라이브러리.&lt;br&gt;
&lt;code&gt;name()&lt;/code&gt;으로 값으로 컴파일할 때 이름을 붙이고, &lt;code&gt;defineProof()&lt;/code&gt;으로 인허가 체크 결과를 자료형으로 다루며, 개발 측에서 &lt;code&gt;_proof&lt;/code&gt; 인수를 받아 인허가 체크만 자료형 체크함.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Fri, 16 Oct 2026 09:46:17 +0900</pubDate>
        <link>https://jser.info/ko/2026/10/16/cloudflaredeno-tanstack-start-1.0-bun-1.4.3-panda-css-2.0/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/10/16/cloudflaredeno-tanstack-start-1.0-bun-1.4.3-panda-css-2.0/</guid>
        
        <category>deno</category>
        
        <category>cloudflare</category>
        
        <category>TanStack</category>
        
        <category>React</category>
        
        <category>Solid</category>
        
        <category>Bun</category>
        
        <category>TypeScript</category>
        
        <category>css</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-09-29: React 19.3, pnpm의 Python/Cargo 대응, Vite+ 1.0</title>
        <description>&lt;p&gt;JSer.info #780 - React 19.3가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://react.dev/blog/2026/09/09/react-19-3&quot;&gt;React 19.3 – React&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;ViewTransition&amp;gt;&lt;/code&gt;와 Fragment Refs가 Stable이 되었다.&lt;br&gt;
&lt;code&gt;react-dom&lt;/code&gt;에, &lt;code&gt;use(browser())&lt;/code&gt;으로 컴포넌트를 브라우저에서만 렌더링하기 위한 &lt;code&gt;browser()&lt;/code&gt;가 추가되어, Trusted Types API에 대응했다.&lt;br&gt;
Server Components으로 &lt;code&gt;&amp;lt;Context&amp;gt;&lt;/code&gt;를 직접 렌더링할 수 있게되어, &lt;code&gt;onFullscreenChange&lt;/code&gt;/&lt;code&gt;maskType&lt;/code&gt; 지원이 추가되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;pnpm 12.4, 12.6가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/12.4&quot;&gt;pnpm 12.4 | pnpm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/12.6&quot;&gt;pnpm 12.6 | pnpm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;pnpm 12.4에는, &lt;code&gt;python.enabled&lt;/code&gt;/&lt;code&gt;cargo.enabled&lt;/code&gt;로 Python/Cargo 의존 관계 관리에 대응했다.&lt;br&gt;
Cargo 대응 배경에는, Rust로 작성된 pnpm 자체 의존관계를 pnpm로 해결하고 싶은 &lt;a href=&quot;https://github.com/orgs/pnpm/discussions/14721&quot;&gt;개발자의 의도&lt;/a&gt;가 있다.&lt;br&gt;
또한, &lt;code&gt;pnpm pipeline&lt;/code&gt;, &lt;code&gt;trustPolicyExcludePrune&lt;/code&gt;, &lt;code&gt;pnpm change check&lt;/code&gt;가 추가되었다.&lt;/p&gt;

&lt;p&gt;pnpm 12.6에는, &lt;code&gt;autoDedupe&lt;/code&gt;에 의한 의존 관계 중복 제거, &lt;code&gt;pnpm add --save-types&lt;/code&gt;, Catalogs에서의 &lt;code&gt;file:&lt;/code&gt;/&lt;code&gt;link:&lt;/code&gt; 지원이 추가되었다.&lt;br&gt;
그 외로, &lt;code&gt;pnpm tasks status&lt;/code&gt;, &lt;code&gt;pnpm cache prune --dry-run&lt;/code&gt;가 추가되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Vite+ 1.0가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-vite-plus-1-0&quot;&gt;Announcing Vite+ 1.0 | VoidZero&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beta부터는, GitLab CI/CD 대상 &lt;code&gt;setup-vp&lt;/code&gt;, Homebrew와 Docker 이미지, &lt;code&gt;vp hooks&lt;/code&gt;/&lt;code&gt;vp staged&lt;/code&gt;가 추가되었다.&lt;br&gt;
&lt;code&gt;vp test&lt;/code&gt;와 &lt;code&gt;vite-plus/test*&lt;/code&gt;가 Vitest 5.0.1으로 이행하여, CLI의 Node.js 지원 범위가 변경되었다.&lt;br&gt;
&lt;code&gt;oxlint&lt;/code&gt;/&lt;code&gt;oxfmt&lt;/code&gt; 실행 파일 래퍼가 삭제되어, &lt;code&gt;vp lint --lsp&lt;/code&gt;/&lt;code&gt;vp fmt --lsp&lt;/code&gt;를 사용하는 형태로 변경되었다.&lt;br&gt;
그리고, &lt;code&gt;vp migrate&lt;/code&gt;에 의한 Vitest 5으로 이행, npm provenance 검증, &lt;code&gt;vp add --offline&lt;/code&gt;/&lt;code&gt;--frozen-lockfile&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;react-19-3-react&quot;&gt;React 19.3 – React&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://react.dev/blog/2026/09/09/react-19-3&quot; title=&quot;React 19.3 – React&quot;&gt;react.dev/blog/2026/09/09/react-19-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;React&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;React 19.3 출시.&lt;br&gt;
&lt;code&gt;&amp;lt;ViewTransition&amp;gt;&lt;/code&gt;와 Fragment Refs가 Stable화, &lt;code&gt;browser()&lt;/code&gt;와 Trusted Types 지원를 추가.&lt;br&gt;
&lt;code&gt;react-dom&lt;/code&gt;에 &lt;code&gt;use(browser())&lt;/code&gt;로 컴포넌트를 브라우저만 렌더링 하기 위한 &lt;code&gt;browser()&lt;/code&gt; 추가, Trusted Types API 지원.&lt;br&gt;
Server Components로 &lt;code&gt;&amp;lt;Context&amp;gt;&lt;/code&gt;를 직접 렌더링하도록 변경, &lt;code&gt;onFullscreenChange&lt;/code&gt;/&lt;code&gt;maskType&lt;/code&gt; 지원.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/react/react/blob/main/CHANGELOG.md#1930-september-9-2026&quot; title=&quot;react/CHANGELOG.md at main · react/react&quot;&gt;react/CHANGELOG.md at main · react/react&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pnpm-12-4-pnpm&quot;&gt;pnpm 12.4 | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/12.4&quot; title=&quot;pnpm 12.4 | pnpm&quot;&gt;pnpm.io/blog/releases/12.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;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 12.4 출시.&lt;br&gt;
&lt;code&gt;python.enabled&lt;/code&gt;/&lt;code&gt;cargo.enabled&lt;/code&gt;에 의한 Python/Cargo 의존 관계 관리를 추가(pnpm 자체가 Rust로 작성되었기에).&lt;br&gt;
&lt;code&gt;pnpm pipeline&lt;/code&gt;, &lt;code&gt;trustPolicyExcludePrune&lt;/code&gt;, &lt;code&gt;pnpm change check&lt;/code&gt; 추가.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pnpm/rfcs/pull/34&quot; title=&quot;RFC: Cargo ecosystem — pnpm for Rust crates, pnpr as a crate registry by zkochan · Pull Request #34 · pnpm/rfcs&quot;&gt;RFC: Cargo ecosystem — pnpm for Rust crates, pnpr as a crate registry by zkochan · Pull Request #34 · pnpm/rfcs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/issues/14566&quot; title=&quot;Track multi-ecosystem install architecture hardening · Issue #14566 · pnpm/pnpm&quot;&gt;Track multi-ecosystem install architecture hardening · Issue #14566 · pnpm/pnpm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;zod-4-6&quot;&gt;Zod 4.6&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://zod.dev/blog/zod-4-6&quot; title=&quot;Zod 4.6&quot;&gt;zod.dev/blog/zod-4-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;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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Zod 4.6 출시.&lt;br&gt;
&lt;code&gt;.validate()&lt;/code&gt;/&lt;code&gt;.validateAsync()&lt;/code&gt; 추가, &lt;code&gt;z.instanceof().properties()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;z.fromJSONSchema()&lt;/code&gt;로 &lt;code&gt;minProperties&lt;/code&gt;/&lt;code&gt;uniqueItems&lt;/code&gt;의 JSON Schema 키워드에 대응.&lt;br&gt;
&lt;code&gt;z.iban()&lt;/code&gt;, &lt;code&gt;z.withParser()&lt;/code&gt; 추가, CommonJS에서 &lt;code&gt;require(&amp;quot;zod&amp;quot;)&lt;/code&gt; 경유 호출 개선&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;webpack-5-111-webpack&quot;&gt;Webpack 5.111 | webpack&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webpack.js.org/blog/2026-09-14-webpack-5-111/&quot; title=&quot;Webpack 5.111 | webpack&quot;&gt;webpack.js.org/blog/2026-09-14-webpack-5-111/&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.111 출시.&lt;br&gt;
ESM 출력이 Stable이 되어 &lt;code&gt;experiments.outputModule&lt;/code&gt;없이 &lt;code&gt;output.module&lt;/code&gt;를 이용 가능하도록.&lt;br&gt;
&lt;code&gt;output.copy&lt;/code&gt;, 브라우저 타겟에 맞춰 CSS 최소화 설정하는 &lt;code&gt;lowerUnsupported&lt;/code&gt;/&lt;code&gt;colorFallbacks&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;acorn&lt;/code&gt;/&lt;code&gt;neo-async&lt;/code&gt; 의존을 삭제.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v3-0-0-pmndrs-jotai&quot;&gt;Release v3.0.0 · pmndrs/jotai&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/releases/tag/v3.0.0&quot; title=&quot;Release v3.0.0 · pmndrs/jotai&quot;&gt;github.com/pmndrs/jotai/releases/tag/v3.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;React&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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Jotai v3.0.0 출시.&lt;br&gt;
React 18/TypeScript 5.5/Node.js 22.12.0 이상이 필수가 되어, CJS/UMD/SystemJS 빌드를 삭제.&lt;br&gt;
&lt;code&gt;atomFamily&lt;/code&gt;/&lt;code&gt;loadable&lt;/code&gt;/&lt;code&gt;jotai/babel&lt;/code&gt;/&lt;code&gt;setSelf&lt;/code&gt;/&lt;code&gt;delay&lt;/code&gt; 옵션을 삭제.&lt;br&gt;
&lt;code&gt;useAtomValueRaw&lt;/code&gt;와 &lt;code&gt;useAtomValueRawSync&lt;/code&gt; 추가&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pmndrs/jotai/blob/main/docs/guides/migrating-to-v3.mdx&quot; title=&quot;jotai/docs/guides/migrating-to-v3.mdx at main · pmndrs/jotai&quot;&gt;jotai/docs/guides/migrating-to-v3.mdx at main · pmndrs/jotai&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;whats-new-in-apollo-client-4-3-apollo-graphql-blog&quot;&gt;What&amp;#039;s New in Apollo Client 4.3 - Apollo GraphQL Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.apollographql.com/blog/whats-new-in-apollo-client-4-3&quot; title=&quot;What&amp;amp;#039;s New in Apollo Client 4.3 - Apollo GraphQL Blog&quot;&gt;www.apollographql.com/blog/whats-new-in-apollo-client-4-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;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;GraphQL&lt;/span&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;Apollo Client 4.3 출시.&lt;br&gt;
&lt;code&gt;Scalar&lt;/code&gt;에 의한 Custom Scalars 시리얼라이즈/디시리얼라이즈, &lt;code&gt;TypeOverrides&lt;/code&gt;에 의해 Cache 자료형 덮어쓰기 대응.&lt;br&gt;
&lt;code&gt;@defer&lt;/code&gt;/&lt;code&gt;@stream&lt;/code&gt;의 Incremental Data 자료형 개선, &lt;code&gt;useSubscription&lt;/code&gt;에서의 &lt;code&gt;skipToken&lt;/code&gt; 지원&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pnpm-12-6-pnpm&quot;&gt;pnpm 12.6 | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/12.6&quot; title=&quot;pnpm 12.6 | pnpm&quot;&gt;pnpm.io/blog/releases/12.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;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 12.6 출시.&lt;br&gt;
&lt;code&gt;autoDedupe&lt;/code&gt;에 의한 의존 관계 중복 제거,&lt;br&gt;
&lt;code&gt;pnpm add --save-types&lt;/code&gt;, Catalogs에서의 &lt;code&gt;file:&lt;/code&gt;/&lt;code&gt;link:&lt;/code&gt; 지원.&lt;br&gt;
&lt;code&gt;pnpm tasks status&lt;/code&gt; 추가, &lt;code&gt;pnpm cache prune --dry-run&lt;/code&gt; 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;webkit-features-for-safari-27-0-webkit&quot;&gt;WebKit Features for Safari 27.0 | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/18325/webkit-features-for-safari-27-0/&quot; title=&quot;WebKit Features for Safari 27.0 | WebKit&quot;&gt;webkit.org/blog/18325/webkit-features-for-safari-27-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;safari&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Safari 27.0의 WebKit 변경점에 대해.&lt;br&gt;
Safari MCP, &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt; 커스터마이즈, &lt;code&gt;&amp;lt;model&amp;gt;&lt;/code&gt; 요소 지원, &lt;code&gt;&amp;lt;img sizes=&amp;quot;auto&amp;quot;&amp;gt;&lt;/code&gt; 지원.&lt;br&gt;
WebAssembly JSPI, Service Worker Static Routing API, WebGPU의 &lt;code&gt;clip_distances&lt;/code&gt; 지원.&lt;br&gt;
JavaScript의 ESM Loader를 ECMAScript 사양에 C++으로 재구현, Top-Level Await 동작을 수정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-vite-1-0-voidzero&quot;&gt;Announcing Vite+ 1.0 | VoidZero&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-vite-plus-1-0&quot; title=&quot;Announcing Vite+ 1.0 | VoidZero&quot;&gt;voidzero.dev/posts/announcing-vite-plus-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;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;CLI&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+ 1.0 출시.&lt;br&gt;
Beta부터는 GitLab CI/CD 대상 &lt;code&gt;setup-vp&lt;/code&gt;, Homebrew와 Docker 이미지, &lt;code&gt;vp hooks&lt;/code&gt;/&lt;code&gt;vp staged&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;vp test&lt;/code&gt;와 &lt;code&gt;vite-plus/test*&lt;/code&gt;가 Vitest 5.0.1으로 이행, CLI의 Node.js 지원 범위를 변경.&lt;br&gt;
&lt;code&gt;oxlint&lt;/code&gt;/&lt;code&gt;oxfmt&lt;/code&gt; 실행 파일 래퍼를 삭제, &lt;code&gt;vp lint --lsp&lt;/code&gt;/&lt;code&gt;vp fmt --lsp&lt;/code&gt;를 사용하는 형태로 변경.&lt;br&gt;
&lt;code&gt;vp migrate&lt;/code&gt;에 의한 Vitest 5 이행, npm provenance 검증, &lt;code&gt;vp add --offline&lt;/code&gt;/&lt;code&gt;--frozen-lockfile&lt;/code&gt; 지원.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/voidzero-dev/vite-plus/releases/tag/v1.0.0&quot; title=&quot;Release vite-plus v1.0.0: Vite+ 1.0 is stable · voidzero-dev/vite-plus&quot;&gt;Release vite-plus v1.0.0: Vite+ 1.0 is stable · voidzero-dev/vite-plus&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;ai-coding-has-made-ci-a-bottleneck-so-we-reworked-ours-to-keep-up&quot;&gt;AI coding has made CI a bottleneck, so we reworked ours to keep up&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://linear.app/now/ci-bottleneck-reworked&quot; title=&quot;AI coding has made CI a bottleneck, so we reworked ours to keep up&quot;&gt;linear.app/now/ci-bottleneck-reworked&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;CI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;testing&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Linear에서 CI 개선으로, &lt;code&gt;tsgo&lt;/code&gt;으로 이행, ESLint 규칙을 정보에 의존하지 않도록 변경.&lt;br&gt;
또한, 서드파티 런너와 &lt;code&gt;actions/checkout&lt;/code&gt; 조절, pnpm 의존 설치 범위의 한정, Vitest의 shard 분할이나 &lt;code&gt;isolate: false&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;2026-x&quot;&gt;프론트엔드 컨퍼런스 후쿠오카 2026 공개 자료・X 계정 링크 모음&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://zenn.dev/h_yoshikawa0724/articles/2026-09-13-frontend-conf-fukuoka-2026&quot; title=&quot;프론트엔드 컨퍼런스 후쿠오카 2026 공개 자료・X 계정 링크 모음&quot;&gt;zenn.dev/h_yoshikawa0724/articles/2026-09-13-frontend-conf-fukuoka-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;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;web&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Conference&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;slide&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;프론트엔드 컨퍼런스 후쿠오카 2026 슬라이드 모음.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://frontend-conf.fukuoka.jp/2026&quot; title=&quot;FEC Fukuoka 2026 | FEC Fukuoka&quot;&gt;FEC Fukuoka 2026 | FEC Fukuoka&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;fallow-rs-fallow-codebase-intelligence-for-typescript-and-javascript-free-static-analysis-of-code-and-styles-unused-code-duplication-circular-deps-complexity-hotspots-architecture-boundaries-design-system-drift-optional-paid-runtime-layer-fallow-runtime-hot-path-review-and-cold-path-deletion-evidence-from-real-production-traffic&quot;&gt;fallow-rs/fallow: Codebase intelligence for TypeScript and JavaScript. Free static analysis of code and styles: unused code, duplication, circular deps, complexity hotspots, architecture boundaries, design-system drift. Optional paid runtime layer (Fallow Runtime): hot-path review and cold-path deletion evidence from real production traffic.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/fallow-rs/fallow&quot; title=&quot;fallow-rs/fallow: Codebase intelligence for TypeScript and JavaScript. Free static analysis of code and styles: unused code, duplication, circular deps, complexity hotspots, architecture boundaries, design-system drift. Optional paid runtime layer (Fallow Runtime): hot-path review and cold-path deletion evidence from real production traffic.&quot;&gt;github.com/fallow-rs/fallow&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;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;lint&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript/JavaScript 대상 정적 해석 도구.&lt;br&gt;
미사용코드, 순환 의존, 중복 코드, 복잡도, 아키텍쳐 경계 위반, CSS 스타일 차분 검출.&lt;br&gt;
&lt;code&gt;fallow audit&lt;/code&gt;으로 변경 파일에 대해 PR게이트를 실행하여, &lt;code&gt;--format json&lt;/code&gt;으로 JSON 출력에 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;lovablelabs-oj-an-experimental-rust-native-build-tool-for-react-apps&quot;&gt;lovablelabs/oj: An experimental Rust-native build tool for React apps.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/lovablelabs/oj&quot; title=&quot;lovablelabs/oj: An experimental Rust-native build tool for React apps.&quot;&gt;github.com/lovablelabs/oj&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;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;vite&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;React 애플리케이션 대상 Rust제 빌드 도구.&lt;br&gt;
V8를 담은 단일 실행 바이너리로 동작한다.&lt;br&gt;
Vite/Rollup 호환 플러그인, SSR, TanStack Start 대응, &lt;code&gt;oj dev&lt;/code&gt;와 &lt;code&gt;oj build&lt;/code&gt;로 개발 서저와 빌드를 실행 가능.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://lovable.dev/blog/faster-previews-oj&quot; title=&quot;Faster previews, soon powered by OJ | Lovable&quot;&gt;Faster previews, soon powered by OJ | Lovable&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;shadcn-ui-lint-an-agent-first-linter-for-tailwind-design-systems-write-design-system-rules-that-agents-can-verify&quot;&gt;shadcn-ui/lint: An agent-first linter for Tailwind design systems. Write design system rules that agents can verify.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/shadcn-ui/lint&quot; title=&quot;shadcn-ui/lint: An agent-first linter for Tailwind design systems. Write design system rules that agents can verify.&quot;&gt;github.com/shadcn-ui/lint&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;ESLint&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Tailwind 디자인 시스템 대상 Lint 도구.&lt;br&gt;
ESLint/Oxlint 대상으로 제공, Tailwind v4 프로젝트로 이용 가능.&lt;br&gt;
&lt;code&gt;no-restyle&lt;/code&gt;/&lt;code&gt;no-raw-colors&lt;/code&gt;/&lt;code&gt;no-arbitrary-values&lt;/code&gt; 규칙으로, 컴포넌트째 className 이용을 제한 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;unjs-upm-a-fast-tiny-package-manager-for-the-npm-registry-written-in-typescript&quot;&gt;unjs/upm: 📦 A fast, tiny package manager for the npm registry, written in TypeScript.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/unjs/upm&quot; title=&quot;unjs/upm: 📦 A fast, tiny package manager for the npm registry, written in TypeScript.&quot;&gt;github.com/unjs/upm&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;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript로 작성된 npm 레지스트리 대상 패키지 매니저.&lt;br&gt;
패키지 크기가 적으며, 프로그램에서 실행 가능한 API를 가지고 있음&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Tue, 29 Sep 2026 00:43:57 +0900</pubDate>
        <link>https://jser.info/ko/2026/09/29/react-19.3-pnpmpythoncargo-vite-1.0/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/09/29/react-19.3-pnpmpythoncargo-vite-1.0/</guid>
        
        <category>React</category>
        
        <category>pnpm</category>
        
        <category>vite</category>
        
        <category>Tools</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-09-10: Vitest 5.0, Zod 4.5, Shopify가 Tailwind Labs 인수</title>
        <description>&lt;p&gt;JSer.info #779 - Vitest 5.0가 출시됐다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://vitest.dev/blog/vitest-5.html&quot;&gt;Vitest 5.0 is out! | Vitest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;clearMocks&lt;/code&gt;가 기본적으로 유효, locator가 완전 일치해야 검색되도록 변경된다.&lt;br&gt;
Benchmarking API가 재작성되어, Browser Mode의 &lt;code&gt;browser.traceView&lt;/code&gt;, &lt;code&gt;vi.when&lt;/code&gt;가 추가된다.&lt;br&gt;
또한, &lt;code&gt;vitest doctor&lt;/code&gt;, &lt;code&gt;--repeats&lt;/code&gt;, &lt;code&gt;coverage.autoAttachSubprocess&lt;/code&gt; 추가된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Zod 4.5가 출시됐다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://zod.dev/blog/zod-4-5&quot;&gt;Zod 4.5&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;z.compile()&lt;/code&gt;에 의한 스키마 사전 컴파일, &lt;code&gt;z.creditCard()&lt;/code&gt;, &lt;code&gt;z.properties()&lt;/code&gt;가 추가된다.&lt;br&gt;
&lt;code&gt;z.deepPartial()&lt;/code&gt;, &lt;code&gt;.exactPartial()&lt;/code&gt;, &lt;code&gt;z.validate()&lt;/code&gt;, &lt;code&gt;z.input()&lt;/code&gt;/&lt;code&gt;z.output()&lt;/code&gt;, &lt;code&gt;z.toZod&amp;lt;T&amp;gt;()&lt;/code&gt; 추가된다.&lt;br&gt;
그 외로, &lt;code&gt;z.iso.datetime()&lt;/code&gt;에서 초가 필수적이도록 변경, 문자열 길이를 Code Point로 세도록 변경, &lt;code&gt;__proto__&lt;/code&gt;를 항상 제거하도록 변경.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Shopify가 Tailwind Labs 인수를 발표했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tailwindcss.com/blog/tailwind-is-joining-shopify&quot;&gt;Tailwind Labs is joining Shopify - Tailwind CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tailwind CSS 오픈소스 프로젝트는 MIT 라이센스 유지, Tailwind Labs 팀이 Shopify 지원을 받으며 개발 지속한다.&lt;br&gt;
Tailwind Plus와 ui.sh는 기존 고객 접근 유지, 신규 등록 종료할 예정이다.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;release-v4-0-0-plotly-plotly-js&quot;&gt;Release v4.0.0 · plotly/plotly.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/plotly/plotly.js/releases/tag/v4.0.0&quot; title=&quot;Release v4.0.0 · plotly/plotly.js&quot;&gt;github.com/plotly/plotly.js/releases/tag/v4.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;chart&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;plotly.js 4.0.0 출시.&lt;br&gt;
Node.js 22 미만 지원 종료, &lt;code&gt;scattermapbox&lt;/code&gt;/&lt;code&gt;choroplethmapbox&lt;/code&gt;/&lt;code&gt;densitymapbox&lt;/code&gt; 삭제.&lt;br&gt;
&lt;code&gt;mapboxAccessToken&lt;/code&gt; 삭제, MathJax v2 지원 종료 v3/v4를 지원, 색 처리 라이브러리를 culori로 변경&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;htmx-4-0-0-has-been-released-htmx&quot;&gt;htmx 4.0.0 has been released! ~ htmx&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://four.htmx.org/announcements/2026-08-28-htmx-4.0.0-is-released&quot; title=&quot;htmx 4.0.0 has been released! ~ htmx&quot;&gt;four.htmx.org/announcements/2026-08-28-htmx-4.0.0-is-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;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;HTML&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;htmx 4.0.0 출시.&lt;br&gt;
속성 계승을 &lt;code&gt;:inherited&lt;/code&gt;으로 명시하도록 변경, 이벤트명을 &lt;code&gt;htmx:phase:action&lt;/code&gt; 형식으로 변경&lt;br&gt;
이력 캐시는 &lt;code&gt;localStorage&lt;/code&gt;를 사용하지 않고 재취득하는 형태로 변경.&lt;br&gt;
XHR에서 &lt;code&gt;fetch()&lt;/code&gt; 기반 구현을 이행, Morph Swap, &lt;code&gt;&amp;lt;hx-partial&amp;gt;&lt;/code&gt;, &lt;code&gt;hx-preload&lt;/code&gt;/&lt;code&gt;hx-download&lt;/code&gt; 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;zod-4-5&quot;&gt;Zod 4.5&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://zod.dev/blog/zod-4-5&quot; title=&quot;Zod 4.5&quot;&gt;zod.dev/blog/zod-4-5&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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Zod 4.5 출시.&lt;br&gt;
&lt;code&gt;z.compile()&lt;/code&gt; 스키마 사전 컴파일, &lt;code&gt;z.creditCard()&lt;/code&gt;/&lt;code&gt;z.properties()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;z.deepPartial()&lt;/code&gt;/&lt;code&gt;.exactPartial()&lt;/code&gt;, &lt;code&gt;z.validate()&lt;/code&gt;, &lt;code&gt;z.input()&lt;/code&gt;/&lt;code&gt;z.output()&lt;/code&gt;, &lt;code&gt;z.toZod&amp;lt;T&amp;gt;()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;z.iso.datetime()&lt;/code&gt;에서 초를 필수로 변경, 문자열 길이를 Code Point 카운팅하도록 변경, &lt;code&gt;__proto__&lt;/code&gt;를 늘 제거하도록 변경&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://zod.dev/blog/reducing-memory-footprint&quot; title=&quot;Reducing Zod&amp;amp;amp;#039;s memory footprint by an order of magnitude with method memoization&quot;&gt;Reducing Zod&amp;#039;s memory footprint by an order of magnitude with method memoization&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-rspack-2-2-rspack&quot;&gt;Announcing Rspack 2.2 - Rspack&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://rspack.rs/blog/announcing-2-2&quot; title=&quot;Announcing Rspack 2.2 - Rspack&quot;&gt;rspack.rs/blog/announcing-2-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;rspack&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Rspack 2.2 출시.&lt;br&gt;
HMR 개선, Browserslist 베이스 라인 쿼리를 지원. Rspack 고유 모듈 변수를 &lt;code&gt;import.meta&lt;/code&gt;로 공개하도록 변경.&lt;br&gt;
Rsbuild에는, Node.js 빌드에서 split chunks를 기본적으로 유효, Solid v2 지원.&lt;br&gt;
Rslib가 TypeScript 7를 지원&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v24.20.0&quot; title=&quot;Node.js — Node.js 24.20.0 (LTS)&quot;&gt;nodejs.org/en/blog/release/v24.20.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 v24.20.0(LTS) 출시.&lt;br&gt;
&lt;code&gt;AsyncLocalStorage&lt;/code&gt;에서의 &lt;code&gt;using&lt;/code&gt; scope 추가, &lt;code&gt;Buffer&lt;/code&gt;에 &lt;code&gt;end&lt;/code&gt; 파라미터 추가.&lt;br&gt;
&lt;code&gt;permission.drop()&lt;/code&gt;/&lt;code&gt;--permission-audit&lt;/code&gt;, package maps, &lt;code&gt;node:stream/iter&lt;/code&gt; 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;remix-3-release-candidate-remix&quot;&gt;Remix 3 Release Candidate | Remix&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://remix.run/blog/remix-3-release-candidate&quot; title=&quot;Remix 3 Release Candidate | Remix&quot;&gt;remix.run/blog/remix-3-release-candidate&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;Remix&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;Remix 3.0.0-rc.1 출시.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;electron-44-electron&quot;&gt;Electron 44 | Electron&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.electronjs.org/blog/electron-44-0&quot; title=&quot;Electron 44 | Electron&quot;&gt;www.electronjs.org/blog/electron-44-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 44 출시.&lt;br&gt;
Chromium 152.0.7977.54, Node.js v24.18.1, V8 15.2으로 업데이트.&lt;br&gt;
macOS 12/Windows 32-bit/Linux ARM 32-bit 지원 종료, renderer에서 &lt;code&gt;clipboard&lt;/code&gt; 직접 이용 삭제.&lt;br&gt;
&lt;code&gt;clipboard&lt;/code&gt; 비동기 API화, &lt;code&gt;windowStatePersistence&lt;/code&gt;, &lt;code&gt;net.WebSocket&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;webContents.setZoomMode()&lt;/code&gt;, &lt;code&gt;webFrameMain.printToPDF()&lt;/code&gt;, Linux의 &lt;code&gt;win.setOpacity()&lt;/code&gt; 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vitest-5-0-is-out-vitest&quot;&gt;Vitest 5.0 is out! | Vitest&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://vitest.dev/blog/vitest-5.html&quot; title=&quot;Vitest 5.0 is out! | Vitest&quot;&gt;vitest.dev/blog/vitest-5.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;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;vite&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;Vitest 5.0 출시.&lt;br&gt;
기본적 동작을 변경해서 &lt;code&gt;clearMocks&lt;/code&gt; 유효화, 네스트한 프로젝트 설정을 기본적으로 계승하도록 변경, locator가 strict match 하도록 변경.&lt;br&gt;
Benchmarking API 재작성, Browser Mode의 &lt;code&gt;browser.traceView&lt;/code&gt; 추가, &lt;code&gt;vi.when&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;vitest doctor&lt;/code&gt;, &lt;code&gt;--repeats&lt;/code&gt;, &lt;code&gt;coverage.autoAttachSubprocess&lt;/code&gt; 추가.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://vitest.dev/guide/migration/&quot; title=&quot;Migration Guide | Guide | Vitest&quot;&gt;Migration Guide | Guide | Vitest&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.63.0&quot; title=&quot;Release v1.63.0 · microsoft/playwright&quot;&gt;github.com/microsoft/playwright/releases/tag/v1.63.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.63.0 출시.&lt;br&gt;
유효 리소스를 사용하는 테스트의 배타 실행을 다루는 &lt;code&gt;lock&lt;/code&gt;, 게시 요소만 제한하는 &lt;code&gt;locator.visible()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;page.frameLocator()&lt;/code&gt;으로 프레임을 넘어다니는 Locator 검색 대응.&lt;br&gt;
&lt;code&gt;trace&lt;/code&gt;에서 &lt;code&gt;snapshots&lt;/code&gt; 옵션 추가, &lt;code&gt;locator.ariaSnapshotJSON()&lt;/code&gt; 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;firefox-155-0-see-all-new-features-updates-and-fixes&quot;&gt;Firefox 155.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/155.0/releasenotes/&quot; title=&quot;Firefox 155.0, See All New Features, Updates and Fixes&quot;&gt;www.firefox.com/en-US/firefox/155.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;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;HTTP3&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebRTC&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Firefox 155.0 출시.&lt;br&gt;
CSS의 &lt;code&gt;attr()&lt;/code&gt;/&lt;code&gt;progress()&lt;/code&gt;/&lt;code&gt;alpha()&lt;/code&gt;, HTTP/3에서의 QUIC v2 지원.&lt;br&gt;
WebAssembly Compact Import Section/Wide Arithmetic 지원.&lt;br&gt;
개발자 도구에는 &lt;code&gt;prefers-reduced-motion&lt;/code&gt; 에뮬레이션, JSON Lines 게시, 프레임 변경하는 포인트 단축키 추가.&lt;br&gt;
&lt;code&gt;mailto:&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/155&quot; title=&quot;Firefox 155 release notes for developers (Stable) - Mozilla | MDN&quot;&gt;Firefox 155 release notes for developers (Stable) - Mozilla | MDN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;tailwind-labs-is-joining-shopify-tailwind-css&quot;&gt;Tailwind Labs is joining Shopify - Tailwind CSS&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://tailwindcss.com/blog/tailwind-is-joining-shopify&quot; title=&quot;Tailwind Labs is joining Shopify - Tailwind CSS&quot;&gt;tailwindcss.com/blog/tailwind-is-joining-shopify&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;OpenSource&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Shopify가 Tailwind Labs 인수.&lt;br&gt;
Tailwind CSS의 OSS는 MIT 라이센스 유지, Tailwind Labs 팀이 Shopify 지원으로 개발 지속.&lt;br&gt;
Tailwind Plus와 ui.sh는 기존 고객 접근 유지, 신규 가입은 종료 예정.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;how-turbopack-chunks-your-javascript-next-js&quot;&gt;How Turbopack chunks your JavaScript | Next.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nextjs.org/blog/turbopack-chunking&quot; title=&quot;How Turbopack chunks your JavaScript | Next.js&quot;&gt;nextjs.org/blog/turbopack-chunking&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;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;performance&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Turbopack의 Chunk 분할 알고리즘에 관하여.&lt;br&gt;
Chunk 머지로 인한 리퀘스트 수와 전송량 트레이드 오프에 관해 설명.&lt;br&gt;
Next.js 16.3의 &lt;code&gt;generateComponentChunks&lt;/code&gt;에는, 빌드할 때에 머지된 Chunk와 개별 Chunk를 생성.&lt;br&gt;
화면 전환에는, 읽은 코드를 토대로, 모아서 받을지, 부족한 Chunk만 받을지 판단.&lt;br&gt;
또한 &lt;code&gt;firstPageLoadPriority&lt;/code&gt;/&lt;code&gt;priorityRoutes&lt;/code&gt;/&lt;code&gt;clusters&lt;/code&gt;에 의한 검사나 CommonJS 대응도 다뤄짐.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;fixing-top-level-await-in-safari-webkit&quot;&gt;Fixing Top-Level Await in Safari | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/18227/fixing-top-level-await-in-safari/&quot; title=&quot;Fixing Top-Level Await in Safari | WebKit&quot;&gt;webkit.org/blog/18227/fixing-top-level-await-in-safari/&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;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;Safari 27/Safari Technology Preview 251에서 Top-Level Await 수정 관련하여.&lt;br&gt;
Safari의 Module Loader를 JavaScript 구현에서 C++ 구현으로 작성하여, ECMAScript 사양에 따라, Top-Level Await 대응함&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;release-v2-0-1-aubes-own-global-home-leaner-resolver-and-dramatically-lower-install-memory-jdx-aube&quot;&gt;Release v2.0.1: Aube&amp;#039;s own global home, leaner resolver, and dramatically lower install memory · jdx/aube&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/jdx/aube/releases/tag/v2.0.1&quot; title=&quot;Release v2.0.1: Aube&amp;amp;#039;s own global home, leaner resolver, and dramatically lower install memory · jdx/aube&quot;&gt;github.com/jdx/aube/releases/tag/v2.0.1&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;package&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;/p&gt;&lt;/p&gt;

&lt;p&gt;Aube v2 출시.&lt;br&gt;
&lt;code&gt;aube add -g&lt;/code&gt; 설치처를 pnpm 디렉토리에서 Aube의 data root로 변경.&lt;br&gt;
&lt;code&gt;lowest-direct&lt;/code&gt;를 &lt;code&gt;ResolutionMode::LowestDirect&lt;/code&gt;으로 공개 API에 추가, &lt;code&gt;aube store prune --dry-run --json&lt;/code&gt; 구조화 출력을 추가.&lt;br&gt;
&lt;code&gt;aube pack&lt;/code&gt;/&lt;code&gt;aube publish&lt;/code&gt;에서의 &lt;code&gt;catalog:&lt;/code&gt; 해결.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;davideast-pyric-firebase-tooling-for-the-agent-era&quot;&gt;davideast/pyric: Firebase tooling for the agent era&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/davideast/pyric&quot; title=&quot;davideast/pyric: Firebase tooling for the agent era&quot;&gt;github.com/davideast/pyric&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;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;MCP&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Firebase 애플리케이션을 로컬에서 동작하기 위한 개발 프레임워크/에뮬레이터.&lt;br&gt;
Vite 플러그인으로 &lt;code&gt;firebase/*&lt;/code&gt;의 import를 브라우저 내의 로컬 백엔드로 바꿈.&lt;br&gt;
Auth/Firestore/Security Rules를 다루며, Pyric Studio이나 MCP bridge에서 상태 확인이나 조작 가능.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pyric.dev/docs/trust/rules-standard-library/&quot; title=&quot;Rules standard library reference · Pyric Studio&quot;&gt;Rules standard library reference · Pyric Studio&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;minitype-typescript&quot;&gt;minitype – TypeScript 라이브러리로 동작하는 헤드레스 조판 엔진 라이브러리로 동작하는 헤드레스 조판 엔진&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://typeset.jp/&quot; title=&quot;minitype – TypeScript 라이브러리로 동작하는 헤드레스 조판 엔진&quot;&gt;typeset.jp/&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;PDF&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;japanese&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript 라이브러리로 동작하는 헤드레스 조판 엔진.&lt;br&gt;
TypeScript 코드로 문서구조와 스타일을 정의하고, PDF나 PNG를 생성.&lt;br&gt;
금칙 처리, 세로 구성, 루비, 하이프네이션, 단 구성, float 배치를 다룸.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://typeset.jp/&quot; title=&quot;minitype – TypeScript 라이브러리로 동작하는 헤드레스 조판 엔진&quot;&gt;minitype – TypeScript 라이브러리로 동작하는 헤드레스 조판 엔진&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
</description>
        <pubDate>Thu, 10 Sep 2026 22:24:54 +0900</pubDate>
        <link>https://jser.info/ko/2026/09/10/vitest-5.0-zod-4.5-shopifytailwind-labs/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/09/10/vitest-5.0-zod-4.5-shopifytailwind-labs/</guid>
        
        <category>Vitest</category>
        
        <category>vite</category>
        
        <category>testing</category>
        
        <category>Zod</category>
        
        <category>TypeScript</category>
        
        <category>TailwindCSS</category>
        
        <category>css</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-08-27: pnpm 12, Bun 1.4, Solid 2.0 RC</title>
        <description>&lt;p&gt;JSer.info #778 - pnpm 12가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/12.0&quot;&gt;pnpm 12.0 | pnpm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;pnpm 12은 Rust로 재작성된 안정판으로 출시되었으며, pnpm 11 명령어, 설정, lockfile 형식도 계승받는다.&lt;br&gt;
GitHub/GitLab/Bitbucket의 Git의존은, 정규화한 HTTPS URL에서 lockfile에 기록하도록 변경된다.&lt;br&gt;
또한, &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt; 미지의 설정 보고, &lt;code&gt;globalShims&lt;/code&gt;에 의한 project-aware global bins, package manager 설치에 대응했다.&lt;br&gt;
그 외로는, Registry revisions, &lt;code&gt;pnpm update --patches&lt;/code&gt;, &lt;code&gt;pnpm stage approve&lt;/code&gt;의 일괄승인이 추가된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Bun 1.4가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.4&quot;&gt;Bun 1.4 | Bun Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bun 1.4는, Zig에서 Rust로 재작성되었으며, Node.js 호환성, メモリ/CPU 사용량, 기동 속도 개선이 있다.&lt;br&gt;
&lt;code&gt;bun dedupe&lt;/code&gt;/&lt;code&gt;bun prune&lt;/code&gt;/&lt;code&gt;bun audit fix&lt;/code&gt;가 추가된다.&lt;br&gt;
또한, &lt;code&gt;bun test --timings&lt;/code&gt;에서 실행 시간 기반 sharding, React Compiler, &lt;code&gt;bun build --asset&lt;/code&gt; 디렉토리 지정에 대응한다.&lt;/p&gt;

&lt;hr&gt;

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

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/solidjs/solid/releases/tag/v2.0.0-rc.0&quot;&gt;Release v2.0.0 RC - The Big &amp;lt;Reveal&amp;gt; · solidjs/solid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://v2.solidjs.com/migration/from-solid-1&quot;&gt;From Solid 1.x&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Solid v2.0.0 RC에는, 비동기 값을 리액티브 그래프로 다루는 모델으로 변경된다.&lt;br&gt;
&lt;code&gt;createResource&lt;/code&gt;/&lt;code&gt;batch&lt;/code&gt;/&lt;code&gt;startTransition&lt;/code&gt;/&lt;code&gt;useTransition&lt;/code&gt;가 삭제된다.&lt;br&gt;
또한, OXC 기반 Rust제 컴파일러가 도입된다.&lt;br&gt;
&lt;code&gt;@solidjs/vite-plugin&lt;/code&gt;의 &lt;code&gt;start: true&lt;/code&gt;에 의해, Vite 상에서 SPA, SSR, Server Functions를 다룰 수 있다.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;solidstart-v2-is-now-stable-solidjs-solid-start-discussion-2281&quot;&gt;SolidStart v2 is now Stable · solidjs/solid-start · Discussion #2281&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/solidjs/solid-start/discussions/2281&quot; title=&quot;SolidStart v2 is now Stable · solidjs/solid-start · Discussion #2281&quot;&gt;github.com/solidjs/solid-start/discussions/2281&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;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;SolidStart v2 출시.&lt;br&gt;
Vite Environment API 사용한 client/server 빌드로 이행.&lt;br&gt;
Nitro v3/Cloudflare Vite plugin 디플로이 플러그인과 연계 지원.&lt;br&gt;
Node.js 24 이상 필요하며, 설정 파일 &lt;code&gt;vite.config.ts&lt;/code&gt;으로 이행이 필요하다&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.solidjs.com/solid-start/v2/migrating-from-v1&quot; title=&quot;Migrating from v1 - SolidStart&quot;&gt;Migrating from v1 - SolidStart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v1-7-0-video-dev-hls-js&quot;&gt;Release v1.7.0 · video-dev/hls.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/video-dev/hls.js/releases/tag/v1.7.0&quot; title=&quot;Release v1.7.0 · video-dev/hls.js&quot;&gt;github.com/video-dev/hls.js/releases/tag/v1.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;HLS&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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;hls.js v1.7.0 출시.&lt;br&gt;
TypeScript 자료형 정의 엄밀화.&lt;br&gt;
&lt;code&gt;hls.createIFramePlayer()&lt;/code&gt;에 의해 iframe playlist 재생, CMCD v2 지원 추가.&lt;br&gt;
&lt;code&gt;hls.nextAudioTrack&lt;/code&gt;, &lt;code&gt;abrSwitchInterval&lt;/code&gt;, &lt;code&gt;appendTimeout&lt;/code&gt; 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-3-50-0-2026-08-05-zloirock-core-js&quot;&gt;Release 3.50.0 - 2026.08.05 · zloirock/core-js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/zloirock/core-js/releases/tag/v3.50.0&quot; title=&quot;Release 3.50.0 - 2026.08.05 · zloirock/core-js&quot;&gt;github.com/zloirock/core-js/releases/tag/v3.50.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;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;core-js v3.50.0 출시.&lt;br&gt;
&lt;code&gt;Iterator.zip&lt;/code&gt;/&lt;code&gt;Iterator.zipKeyed&lt;/code&gt;를 Stable ES으로 추가, &lt;code&gt;Iterator.prototype.chunks&lt;/code&gt;/&lt;code&gt;windows&lt;/code&gt;가 Stage 3으로 이동.&lt;br&gt;
Stage 3 Proposal로 &lt;code&gt;Iterator.prototype.includes&lt;/code&gt;/&lt;code&gt;join&lt;/code&gt;, &lt;code&gt;Promise.allKeyed&lt;/code&gt;/&lt;code&gt;Promise.allSettledKeyed&lt;/code&gt; 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v2-0-0-rc-the-big-reveal-solidjs-solid&quot;&gt;Release v2.0.0 RC - The Big &amp;lt;Reveal&amp;gt; · solidjs/solid&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/solidjs/solid/releases/tag/v2.0.0-rc.0&quot; title=&quot;Release v2.0.0 RC - The Big &amp;amp;lt;Reveal&amp;amp;gt; · solidjs/solid&quot;&gt;github.com/solidjs/solid/releases/tag/v2.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;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;vite&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Solid v2.0.0 RC 출시.&lt;br&gt;
비동기 값을 리엑티브 그래프로 다루는 모델로 변경.&lt;br&gt;
&lt;code&gt;createResource&lt;/code&gt;/&lt;code&gt;batch&lt;/code&gt;/&lt;code&gt;startTransition&lt;/code&gt;/&lt;code&gt;useTransition&lt;/code&gt; 삭제.&lt;br&gt;
OXC 기반 Rust제 컴파일러 도입.&lt;br&gt;
&lt;code&gt;@solidjs/vite-plugin&lt;/code&gt;의 &lt;code&gt;start: true&lt;/code&gt;에서 Vite상 SPA/SSR/Server Functions를 다루도록.&lt;br&gt;
&lt;code&gt;SolidStart&lt;/code&gt;를 retire 발표. 관리 출시는 계속.&lt;br&gt;
&lt;code&gt;Start mode&lt;/code&gt;가 &lt;code&gt;SolidStart&lt;/code&gt;를 대신하도록 함.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://v2.solidjs.com/migration/from-solid-1&quot; title=&quot;From Solid 1.x&quot;&gt;From Solid 1.x&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-notes-for-safari-technology-preview-250-webkit&quot;&gt;Release Notes for Safari Technology Preview 250 | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/18191/release-notes-for-safari-technology-preview-250/&quot; title=&quot;Release Notes for Safari Technology Preview 250 | WebKit&quot;&gt;webkit.org/blog/18191/release-notes-for-safari-technology-preview-250/&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;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;Safari Technology Preview 250 출시.&lt;br&gt;
CSS &lt;code&gt;ruby-overhang: spaces&lt;/code&gt; 지원.&lt;br&gt;
&lt;code&gt;using&lt;/code&gt;/&lt;code&gt;await using&lt;/code&gt;, &lt;code&gt;Iterator.zip()&lt;/code&gt;/&lt;code&gt;Iterator.zipKeyed()&lt;/code&gt; 지원.&lt;br&gt;
&lt;code&gt;fetch()&lt;/code&gt;에서의 &lt;code&gt;ReadableStream&lt;/code&gt; 업로드, WebAssembly의 relaxed SIMD/multiple memories 지원&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-v5-6-0-npm-staged-publishing-lerna-lite-lerna-lite&quot;&gt;Release v5.6.0 - npm staged publishing · lerna-lite/lerna-lite&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/lerna-lite/lerna-lite/releases/tag/v5.6.0&quot; title=&quot;Release v5.6.0 - npm staged publishing · lerna-lite/lerna-lite&quot;&gt;github.com/lerna-lite/lerna-lite/releases/tag/v5.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;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;monorepo&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Lerna-Lite v5.6.0 출시.&lt;br&gt;
&lt;code&gt;lerna publish --stage&lt;/code&gt;로 npm의 staged publishing 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;better-auth-1-7&quot;&gt;Better Auth 1.7&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://better-auth.com/blog/1-7&quot; title=&quot;Better Auth 1.7&quot;&gt;better-auth.com/blog/1-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;TypeScript&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;OAuth&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;MCP&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Better Auth 1.7 출시.&lt;br&gt;
파괴적 변경으로, &lt;code&gt;oidcProvider&lt;/code&gt; 플러그인 삭제, &lt;code&gt;@better-auth/oauth-provider&lt;/code&gt;으로 이동.&lt;br&gt;
MCP 인증은 &lt;code&gt;@better-auth/mcp&lt;/code&gt;으로 이동, SCIM Groups/Device Authorization 지원&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;firefox-154-0-see-all-new-features-updates-and-fixes&quot;&gt;Firefox 154.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/154.0/releasenotes/&quot; title=&quot;Firefox 154.0, See All New Features, Updates and Fixes&quot;&gt;www.firefox.com/en-US/firefox/154.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;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;css&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;Firefox 154.0 출시.&lt;br&gt;
CSS &lt;code&gt;text-box-trim&lt;/code&gt;/&lt;code&gt;text-box-edge&lt;/code&gt;, &lt;code&gt;sibling-index()&lt;/code&gt;/&lt;code&gt;sibling-count()&lt;/code&gt; 지원.&lt;br&gt;
&lt;code&gt;&amp;lt;input type=&amp;quot;time&amp;quot;&amp;gt;&lt;/code&gt;의 시계 선택UI, &lt;code&gt;No-Vary-Search&lt;/code&gt;, &lt;code&gt;Iterator.prototype.chunks&lt;/code&gt;/&lt;code&gt;windows&lt;/code&gt;/&lt;code&gt;includes()&lt;/code&gt;/&lt;code&gt;join&lt;/code&gt; 지원.&lt;br&gt;
실험적 기능으로, CSS &lt;code&gt;line-clamp&lt;/code&gt;, &lt;code&gt;progress()&lt;/code&gt;, CSS Typed Object Model API 지원&lt;/p&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;bun-1-4-bun-blog&quot;&gt;Bun 1.4 | Bun Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bun.com/blog/bun-v1.4&quot; title=&quot;Bun 1.4 | Bun Blog&quot;&gt;bun.com/blog/bun-v1.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;Bun&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;Bun v1.4 출시.&lt;br&gt;
Zig에서 Rust로 재작성, Node.js 호환성 개선, 메모리/CPU 사용량과 기동속도 개선.&lt;br&gt;
&lt;code&gt;bun dedupe&lt;/code&gt;/&lt;code&gt;bun prune&lt;/code&gt;/&lt;code&gt;bun audit fix&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;bun test --timings&lt;/code&gt;에서 실행 시간 기반 sharding 지원, React Compiler 대응, &lt;code&gt;bun build --asset&lt;/code&gt;로 디렉토리 지정 대응.&lt;br&gt;
정적파일 송신 대응, 실험적 기능으로 &lt;code&gt;Bun.serve()&lt;/code&gt; HTTP/3, &lt;code&gt;fetch()&lt;/code&gt; HTTP/2와 HTTP/3 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pnpm-12-0-pnpm&quot;&gt;pnpm 12.0 | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/12.0&quot; title=&quot;pnpm 12.0 | pnpm&quot;&gt;pnpm.io/blog/releases/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;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 12.0 출시.&lt;br&gt;
Rust로 재작성된 Stable판 출시, pnpm 11 명령어/설정/lockfile 형식 계승.&lt;br&gt;
GitHub/GitLab/Bitbucket의 Git 의존은 정규화 한 HTTPS URL로 lockfile에 기록하도록 변경.&lt;br&gt;
&lt;code&gt;pnpm-workspace.yaml&lt;/code&gt; 미지의 설정 보고하도록 함, &lt;code&gt;globalShims&lt;/code&gt;에 의해 project-aware global bins, package manager 설치 대응.&lt;br&gt;
Registry revisions, &lt;code&gt;pnpm update --patches&lt;/code&gt;, &lt;code&gt;pnpm stage approve&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;react-compiler-support-the-javascript-oxidation-compiler&quot;&gt;React Compiler Support | The JavaScript Oxidation Compiler&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://oxc.rs/blog/2026-08-18-react-compiler-support&quot; title=&quot;React Compiler Support | The JavaScript Oxidation Compiler&quot;&gt;oxc.rs/blog/2026-08-18-react-compiler-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;JavaScript&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;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Oxc의 React Compiler 지원 관련한 글.&lt;br&gt;
React팀의 Rust 포트를 Oxc에 담아, Babel 형식의 AST으로 변환없이 Oxc AST 상 동작하도록 통합중임.&lt;br&gt;
Oxlint에 React Compiler 기반 22개 규칙 추가, &lt;code&gt;oxc-transform-react&lt;/code&gt;로 React Compiler에 의한 자동 메모화 다룸.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;celld-self-hosted-distributed-durable-objects&quot;&gt;celld: self-hosted, distributed Durable Objects&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://celld.dev/&quot; title=&quot;celld: self-hosted, distributed Durable Objects&quot;&gt;celld.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;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;database&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;OpenSource&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare Workers와 Durable Objects 호환 API 구현.&lt;br&gt;
LTX와 S3 호환 스토리지에서 분산 Durable Objects 실현.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;firecrawl-anydoc-convert-word-powerpoint-excel-opendocument-rtf-epub-csv-and-pdf-to-clean-markdown-built-in-rust-with-node-js-and-python-bindings&quot;&gt;firecrawl/anydoc: Convert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and PDF to clean Markdown. Built in Rust, with Node.js and Python bindings.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/firecrawl/anydoc&quot; title=&quot;firecrawl/anydoc: Convert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and PDF to clean Markdown. Built in Rust, with Node.js and Python bindings.&quot;&gt;github.com/firecrawl/anydoc&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;Markdown&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;PDF&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;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAssembly&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Office 문서나 PDF를 GitHub Flavored Markdown으로 변환하는 Rust제 라이브러리.&lt;br&gt;
Word/PowerPoint/Excel/OpenDocument/RTF/EPUB/CSV/PDF에 대응, Node.js/Python/WebAssembly 대상 바인딩 제공.&lt;br&gt;
파일 내용에서 형식을 판정하고, &lt;code&gt;toMarkdown&lt;/code&gt;/&lt;code&gt;toMarkdownBytes&lt;/code&gt;/&lt;code&gt;toDocument&lt;/code&gt;의 API나 CLI로 이용 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;plumeria-zero-cost-abstraction-layer&quot;&gt;Plumeria - Zero-cost abstraction layer&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://plumeria.dev/&quot; title=&quot;Plumeria - Zero-cost abstraction layer&quot;&gt;plumeria.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;React&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;/p&gt;&lt;/p&gt;

&lt;p&gt;React 컴포넌트 대상 Zero Runtime한 CSS-in-JS 라이브러리.&lt;br&gt;
TypeScript 객체에서 스타일을 정의, 빌드할 때 &lt;code&gt;classStyle&lt;/code&gt;를 &lt;code&gt;className&lt;/code&gt;로 변환. 파일 간 의존을 해결하고 CSS를 생성함으로, Runtime의 JS를 자잘하게 만듬.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Thu, 27 Aug 2026 21:55:43 +0900</pubDate>
        <link>https://jser.info/ko/2026/08/27/pnpm-12-bun-1.4-solid-2.0-rc/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/08/27/pnpm-12-bun-1.4-solid-2.0-rc/</guid>
        
        <category>pnpm</category>
        
        <category>Bun</category>
        
        <category>Solid</category>
        
        <category>nodejs</category>
        
        <category>Rust</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-08-05: Next.js 16.3, npm에서 publish할 때 멀웨어 스캔, vlt 1.0</title>
        <description>&lt;p&gt;JSer.info #777 - Next.js 16.3가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-3&quot;&gt;Next.js 16.3 | Next.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/vercel/next.js/releases/tag/v16.3.0&quot;&gt;Release v16.3.0 · vercel/next.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;옵트인 Instant Navigations으로, &lt;code&gt;cacheComponents&lt;/code&gt;와 &lt;code&gt;partialPrefetching&lt;/code&gt; 사용한 네비게이션 개선이 추가된다.&lt;br&gt;
&lt;code&gt;import.meta.glob&lt;/code&gt; 지원, App Router의 SSR 내부를 Web Streams에서 Node.js Streams으로 이행하여 성능 개선이 있다.&lt;br&gt;
실험적 기능으로, Turbopack의 파일시스템 캐시와 메모리 해방 설정, Rust 기반 React Compiler, &lt;code&gt;useOffline&lt;/code&gt;가 추가된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;npm에서, publish할 때 멀웨어 스캔이 도입되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.blog/changelog/2026-07-28-npm-publish-time-malware-scanning-and-dual-use-metadata/&quot;&gt;npm publish-time malware scanning and dual-use metadata - GitHub Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;글에는, npm의 publish할 때 멀웨어스캔과 dual-use content 대상 메타데이터에 대해 다뤄진다.&lt;br&gt;
새롭게 publish된 패키지는, 설치 가능하기 전에 스캔된다. 그 결과에 따라 통상적인 공개, 수동 리뷰, 블록처리가 된다.&lt;br&gt;
또한, 멀웨어로 오인될 가능성이 있는 패키지에 &lt;code&gt;package.json&lt;/code&gt;의 &lt;code&gt;contentPolicy&lt;/code&gt;와 &lt;code&gt;DISCLOSURE&lt;/code&gt; 파일로 dual-use content 선언하는 구조가 추가된다.&lt;br&gt;
선언한 패키지는 2FA를 강제하는 trusted publishing, 대화적 publish, staged publishing에서 공개할 필요가 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;vlt 1.0가 출시되어, Hosted Package Registries와 ecosystem mirrors가 일반 공개되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.vlt.io/blog/1-0&quot;&gt;vlt 1.0 &amp;amp; Hosted Package Registries | vlt /vōlt/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;의존 패키지의 라이프사이클 스크립트를 &lt;code&gt;vlt install&lt;/code&gt;와 &lt;code&gt;vlt build&lt;/code&gt;로 나눠서 처리하는 Phased Installations, npm 공개 레지스트리로의 OIDC Trusted Publishing에 대응한다.&lt;br&gt;
Hosted Package Registries는 npm Registry API와 호환성이 있고, npm, pnpm, Yarn, Bun, Deno에서 이용 가능하며, 이미 알려진 멀웨어를 블록하는 구조를 갖고있다.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;pnpm-11-11-11-14-pnpm&quot;&gt;pnpm 11.11-11.14 | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/11.11-11.14&quot; title=&quot;pnpm 11.11-11.14 | pnpm&quot;&gt;pnpm.io/blog/releases/11.11-11.14&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 11.11-11.14 변경점에 대하여.&lt;br&gt;
&lt;code&gt;pnpm change&lt;/code&gt;/&lt;code&gt;pnpm lane&lt;/code&gt;/&lt;code&gt;pnpm version -r&lt;/code&gt;에 의한 workspace 출시 관리 추가.&lt;br&gt;
&lt;code&gt;pnpm doctor&lt;/code&gt;, &lt;code&gt;pnpm access&lt;/code&gt;, &lt;code&gt;pnpm team&lt;/code&gt; 명령어 추가.&lt;br&gt;
&lt;code&gt;overrides&lt;/code&gt;의 &lt;code&gt;&amp;quot;pkg@&amp;quot;&lt;/code&gt; 형식을 지원, &lt;code&gt;pnpm run --sequential&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;pnpm install&lt;/code&gt;의 path traversal 취약점, peer dependency 해결 deadlock, cold-cache 해결할 때 메모리 사용량 수정.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nuxt.com/blog/v4-5&quot; title=&quot;Nuxt 4.5 · Nuxt Blog&quot;&gt;nuxt.com/blog/v4-5&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;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;rspack&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.5.0 출시.&lt;br&gt;
Vite 8/Rspack 2/Rsbuild 으로 업데이트, 실험적인 SSR Streaming, Stable Error Codes 추가.&lt;br&gt;
&lt;code&gt;useLayout&lt;/code&gt;, Named Views, &lt;code&gt;useFetch&lt;/code&gt;/&lt;code&gt;useAsyncData&lt;/code&gt;에 &lt;code&gt;enabled&lt;/code&gt; 옵션 추가.&lt;br&gt;
&lt;code&gt;import.meta.envName&lt;/code&gt;, &lt;code&gt;tracingChannel&lt;/code&gt; 추가.&lt;br&gt;
더불어 2026년 7월 31일 지원 종료된 Nuxt 3의, 마지막 출시인 v3.21.9도 공개됨.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;type-aware-linting-stable-the-javascript-oxidation-compiler&quot;&gt;Type-Aware Linting Stable | The JavaScript Oxidation Compiler&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://oxc.rs/blog/2026-07-22-type-aware-linting-stable&quot; title=&quot;Type-Aware Linting Stable | The JavaScript Oxidation Compiler&quot;&gt;oxc.rs/blog/2026-07-22-type-aware-linting-stable&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;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;Oxlint의 Type-Aware Linting Stable 출시.&lt;br&gt;
tsgolint v7.0.2000은 TypeScript v7.0.2 대응하는 형태로 버전을 TypeScript와 맞춤.&lt;br&gt;
&lt;code&gt;options.typeAware&lt;/code&gt;/&lt;code&gt;options.typeCheck&lt;/code&gt;, &lt;code&gt;--type-check&lt;/code&gt;, &lt;code&gt;--debug timings&lt;/code&gt; 대응&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;webpack-5-109-webpack&quot;&gt;Webpack 5.109 | webpack&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webpack.js.org/blog/2026-07-24-webpack-5-109/&quot; title=&quot;Webpack 5.109 | webpack&quot;&gt;webpack.js.org/blog/2026-07-24-webpack-5-109/&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.109 출시.&lt;br&gt;
CSS, HTML, TypeScript, 비동기 WebAssembly 내장 지원은, 대응하는 loader가 설정되지 않은 경우 유효인 &lt;code&gt;auto&lt;/code&gt;가 기본으로.&lt;br&gt;
실험적으로 &lt;code&gt;output.html&lt;/code&gt;에서 &lt;code&gt;title&lt;/code&gt;/&lt;code&gt;meta&lt;/code&gt;/&lt;code&gt;base&lt;/code&gt;, &lt;code&gt;output.resourceHints&lt;/code&gt; 지원.&lt;br&gt;
&lt;code&gt;import.meta.glob&lt;/code&gt;/&lt;code&gt;import.meta.resolve&lt;/code&gt;, CommonJS의 Module Concatenation 지원.&lt;br&gt;
&lt;code&gt;infrastructureLogging.progress&lt;/code&gt;, Worklet의 bundle, CSS의 &lt;code&gt;@custom-media&lt;/code&gt; 지원도 추가.&lt;br&gt;
webpack-dev-server 6.0.0도 동시에 공개, Express 5으로 업데이트, Node.js 22.15.0 이상이 필요함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;nuxt-security-patch-releases-nuxt-blog&quot;&gt;Nuxt Security Patch Releases · Nuxt Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nuxt.com/blog/v4-5-security&quot; title=&quot;Nuxt Security Patch Releases · Nuxt Blog&quot;&gt;nuxt.com/blog/v4-5-security&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;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;Nuxt v4.5.1とv3.21.10 출시.&lt;br&gt;
&lt;code&gt;vue.runtimeCompiler&lt;/code&gt;를 유효한 Server Islands에서의 RCE, &lt;code&gt;routeRules&lt;/code&gt; 허가 바이패스, Server Components의 DoS 수정.&lt;br&gt;
&lt;code&gt;cache&lt;/code&gt;/&lt;code&gt;swr&lt;/code&gt;/&lt;code&gt;isr&lt;/code&gt;를 사용하는 Nuxt 4에서의 &lt;code&gt;_payload.json&lt;/code&gt; 캐시 데이터 유출, 개발할 때만 영향 주는 Nuxt DevTools의 RCE 수정.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.62.0&quot; title=&quot;Release v1.62.0 · microsoft/playwright&quot;&gt;github.com/microsoft/playwright/releases/tag/v1.62.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.62.0 출시.&lt;br&gt;
Component Testing가 Story/Gallery 모델로 변경.&lt;br&gt;
&lt;code&gt;AbortSignal&lt;/code&gt;에 의한 조작 캔슬, &lt;code&gt;.webp&lt;/code&gt; 스크린샷 지원, &lt;code&gt;Reporter.preprocess()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;retryStrategy: &amp;quot;isolated&amp;quot;&lt;/code&gt;, &lt;code&gt;apiResponse.timing()&lt;/code&gt;, Playwright MCP를 CLI에 포함하도록 변경&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;ember-7-1-released&quot;&gt;Ember 7.1 Released&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.emberjs.com/ember-released-7-1/&quot; title=&quot;Ember 7.1 Released&quot;&gt;blog.emberjs.com/ember-released-7-1/&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;Ember&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Ember.js 7.1 출시.&lt;br&gt;
&lt;code&gt;/&lt;/code&gt;/&lt;code&gt;/&lt;/code&gt;의 빌트인 헬퍼 추가.&lt;br&gt;
strict template으로 &lt;code&gt;/&lt;/code&gt;/&lt;code&gt;/&lt;/code&gt; 자동 import 대응&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pnpm-11-15-11-19-pnpm&quot;&gt;pnpm 11.15-11.19 | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/11.15-11.19&quot; title=&quot;pnpm 11.15-11.19 | pnpm&quot;&gt;pnpm.io/blog/releases/11.15-11.19&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 11.15에서 11.19까지 변경점에 대하여.&lt;br&gt;
&lt;code&gt;pnpm update&lt;/code&gt;/&lt;code&gt;pnpm outdated&lt;/code&gt;의 GitHub Actions 업데이트 대응, &lt;code&gt;pnpm update --changeset&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;update&lt;/code&gt;/&lt;code&gt;audit&lt;/code&gt; 설정, &lt;code&gt;publishConfig.name&lt;/code&gt;, &lt;code&gt;save-prefix&lt;/code&gt;의 &lt;code&gt;=&lt;/code&gt; 지원 추가.&lt;br&gt;
&lt;code&gt;pnpm self-update&lt;/code&gt;가 객체 설정을 참조하지 않도록 변경, TTY없는 &lt;code&gt;pnpm login&lt;/code&gt; 대응&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;v1-20-0-react-aria&quot;&gt;v1.20.0 | React Aria&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://react-aria.adobe.com/releases/v1-20-0&quot; title=&quot;v1.20.0 | React Aria&quot;&gt;react-aria.adobe.com/releases/v1-20-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;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;/p&gt;&lt;/p&gt;

&lt;p&gt;React Aria Components v1.20.0 출시.&lt;br&gt;
Popover를 hover/focus/long press로 보이는 &lt;code&gt;PreviewTrigger&lt;/code&gt;, 텍스트 입력 중에 보완을 다루는 &lt;code&gt;TokenField&lt;/code&gt; alpha 추가.&lt;br&gt;
&lt;code&gt;MenuTrigger&lt;/code&gt;에 &lt;code&gt;trigger=&amp;quot;contextMenu&amp;quot;&lt;/code&gt; 추가, &lt;code&gt;useKeyboard&lt;/code&gt; 단축키 API 개선.&lt;br&gt;
Table내에 TextField 대화적 컴포넌트 지원&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-3&quot; title=&quot;Next.js 16.3 | Next.js&quot;&gt;nextjs.org/blog/next-16-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;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.3 출시.&lt;br&gt;
옵트인 Instant Navigations으로, &lt;code&gt;cacheComponents&lt;/code&gt;와 &lt;code&gt;partialPrefetching&lt;/code&gt;에 의한 네비게이션 개선 추가.&lt;br&gt;
&lt;code&gt;import.meta.glob&lt;/code&gt; 지원, App Router의 SSR 내부를 Web Streams에서 Node.js Streams으로 이행함으로 성능 개선.&lt;br&gt;
실험적 기능으로 Turbopack 파일시스템 캐시와 메모리 해방 설정, Rust 기반 React Compiler, &lt;code&gt;useOffline&lt;/code&gt; 추가.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/vercel/next.js/releases/tag/v16.3.0&quot; title=&quot;Release v16.3.0 · vercel/next.js&quot;&gt;Release v16.3.0 · vercel/next.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-26-6-0-current&quot;&gt;Node.js — Node.js 26.6.0 (Current)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v26.6.0&quot; title=&quot;Node.js — Node.js 26.6.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v26.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;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 v26.6.0 출시.&lt;br&gt;
&lt;code&gt;ffi.getCurrentEventLoop()&lt;/code&gt; 추가, &lt;code&gt;node:test&lt;/code&gt;에 &lt;code&gt;context.log()&lt;/code&gt;와 &lt;code&gt;test:log&lt;/code&gt; 이벤트 추가.&lt;br&gt;
&lt;code&gt;TestStream&lt;/code&gt;イベントに&lt;code&gt;entryFile&lt;/code&gt; 추가, npm 11.18.0으로 업데이트.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v24.19.0&quot; title=&quot;Node.js — Node.js 24.19.0 (LTS)&quot;&gt;nodejs.org/en/blog/release/v24.19.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 v24.19.0(LTS) 출시.&lt;br&gt;
&lt;code&gt;Blob.prototype.textStream()&lt;/code&gt;, &lt;code&gt;--experimental-import-text&lt;/code&gt;, &lt;code&gt;fs.readFile()&lt;/code&gt;에서의 &lt;code&gt;buffer&lt;/code&gt; 옵션 지원.&lt;br&gt;
&lt;code&gt;stream.compose&lt;/code&gt;의 Stable화, TLS의 &lt;code&gt;certificateCompression&lt;/code&gt; 옵션 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vlt-1-0-hosted-package-registries-vlt-v-lt&quot;&gt;vlt 1.0 &amp;amp; Hosted Package Registries | vlt /vōlt/&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.vlt.io/blog/1-0&quot; title=&quot;vlt 1.0 &amp;amp;amp; Hosted Package Registries | vlt /vōlt/&quot;&gt;www.vlt.io/blog/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;vlt&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;package&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;vlt 1.0 출시.&lt;br&gt;
Hosted Package Registries와 ecosystem mirrors 일반 공개.&lt;br&gt;
Graph Modifiers와 Catalogs 준비.&lt;br&gt;
의존 패키지의 라이프사이클 스크립트를 &lt;code&gt;vlt install&lt;/code&gt;와 &lt;code&gt;vlt build&lt;/code&gt;로 나눠 다루는 Phased Installations, npm 공개 레지스트리 OIDC Trusted Publishing에 대응.&lt;br&gt;
Hosted Package Registries은 npm Registry API와 호환성이 있어, npm, pnpm, Yarn, Bun, Deno에서 이용 가능, 알려진 멀웨러를 블록하는 구조임.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;errors-worth-reading-nostics&quot;&gt;Errors worth reading - nostics&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nostics.dev/&quot; title=&quot;Errors worth reading - nostics&quot;&gt;nostics.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;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;라이브러리 에러 코드를 관리하는 TypeScript 라이브러리.&lt;br&gt;
에러 코드 대응하는 이유/수정 방법 정의, 소스 위치, 문서 URL를 갖는 &lt;code&gt;Diagnostic&lt;/code&gt; 옵션을 정의 가능.&lt;br&gt;
Nuxt에서 이용&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;npm-publish-time-malware-scanning-and-dual-use-metadata-github-changelog&quot;&gt;npm publish-time malware scanning and dual-use metadata - GitHub Changelog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/changelog/2026-07-28-npm-publish-time-malware-scanning-and-dual-use-metadata/&quot; title=&quot;npm publish-time malware scanning and dual-use metadata - GitHub Changelog&quot;&gt;github.blog/changelog/2026-07-28-npm-publish-time-malware-scanning-and-dual-use-metadata/&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;npm의 publish할 때 멀웨어 스캔과 dual-use content 대상 메타 데이터에 대하여.&lt;br&gt;
새롭게 publish된 패키지는, 설치 가능하기 전에 스캔 됨.&lt;br&gt;
결과에 대해 통상적인 공개, 수동 리뷰, 블록처리 중 하나가 됨.&lt;br&gt;
멀웨어로 오인될 가능성이 있는 패키지는 &lt;code&gt;package.json&lt;/code&gt;의 &lt;code&gt;contentPolicy&lt;/code&gt;와 &lt;code&gt;DISCLOSURE&lt;/code&gt; 파일에서 dual-use content를 선언하는 구조 추가.&lt;br&gt;
선언된 패키지는 2FA를 강제하는 trusted publishing, 대화적 publish, staged publishing에서 공개 필요함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;cloudflare-workers-and-containers-now-support-inbound-tcp-connections-and-grpc-the-cloudflare-blog&quot;&gt;Cloudflare Workers and Containers now support inbound TCP connections and gRPC | The Cloudflare Blog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/grpc-workers/&quot; title=&quot;Cloudflare Workers and Containers now support inbound TCP connections and gRPC | The Cloudflare Blog&quot;&gt;blog.cloudflare.com/grpc-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;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;server&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와 Containers의 Inbound TCP/gRPC 대응에 대하여.&lt;br&gt;
Workers Runtime에 &lt;code&gt;connect(socket)&lt;/code&gt; 핸들러 추가, Spectrum 경유 TCP 소켓를 Workerで에서 처리.&lt;br&gt;
Durable Objects에서 Containers의 TCP포트로 전송하고, Container 상의 gRPC 서버를 양방향 스트리밍을 다룸.&lt;br&gt;
&lt;code&gt;@connectrpc/connect&lt;/code&gt;와 gRPC-web 변환에 의해, Worker만으로 Unary/Server Streaming의 gRPC API를 다룰 수 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;web-streams-api&quot;&gt;Web Streams API 입문 ― 기본개념부터 실전까지&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://zenn.dev/cybozu_frontend/articles/web-streams-api-guide&quot; title=&quot;Web Streams API 입문 ― 기본개념부터 실전까지&quot;&gt;zenn.dev/cybozu_frontend/articles/web-streams-api-guide&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;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;stream&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Web Streams API 기본 개념부터 사용 방법에 대하여.&lt;br&gt;
&lt;code&gt;ReadableStream&lt;/code&gt;/&lt;code&gt;TransformStream&lt;/code&gt;/&lt;code&gt;WritableStream&lt;/code&gt; 역할에 대한 설명. tee나 Backpressure, Node.js Stream와 차이도 다룸.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;octanejs-octane-octane-is-an-incredibly-efficient-react-replacement-ui-library-with-improved-developer-ergonomics&quot;&gt;octanejs/octane: Octane is an incredibly efficient React replacement UI library with improved developer ergonomics&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/octanejs/octane&quot; title=&quot;octanejs/octane: Octane is an incredibly efficient React replacement UI library with improved developer ergonomics&quot;&gt;github.com/octanejs/octane&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;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;Inferno 후속 React의 Hooks이나 Suspense에 가까운 모델을 컴파일해서 동작하는 UI 라이브러리.&lt;br&gt;
Virtual DOM 사용하지 않고, TSX/TSRX 지원, Vite/Rspack/Rsbuild 대상 플러그인 제공.&lt;br&gt;
조건적으로 Hooks이나 의존 배열업싱 &lt;code&gt;useEffect&lt;/code&gt;, SSR/Streaming SSR 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vercel-labs-scriptc-typescript-to-native-compiler&quot;&gt;vercel-labs/scriptc: TypeScript-to-Native Compiler&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/vercel-labs/scriptc&quot; title=&quot;vercel-labs/scriptc: TypeScript-to-Native Compiler&quot;&gt;github.com/vercel-labs/scriptc&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;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;TypeScript를 네이티브 실행파일로 컴파일하는 컴파일러.&lt;br&gt;
TypeScript Compiler API로 자료형 체크하고, Typed IR의 LLVM/C백엔드에서 네이티브 코드로 컴파일함.&lt;br&gt;
quickjs-ng를 사용해서 동적 JS 라이브러리를 다루는 구조를 가지고 있음.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://scriptc.dev/limitations&quot; title=&quot;Limitations | scriptc&quot;&gt;Limitations | scriptc&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;tanstack-charts-a-tiny-typescript-visualization-grammar-for-responsive-accessible-server-rendered-charts-powered-by-granular-d3-primitives&quot;&gt;TanStack/charts: A tiny TypeScript visualization grammar for responsive, accessible, server-rendered charts—powered by granular D3 primitives.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/TanStack/charts&quot; title=&quot;TanStack/charts: A tiny TypeScript visualization grammar for responsive, accessible, server-rendered charts—powered by granular D3 primitives.&quot;&gt;github.com/TanStack/charts&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;SVG&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;graphic&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;D3 기반 차트 라이브러리.&lt;br&gt;
&lt;code&gt;defineChart&lt;/code&gt;으로 프레임워크 비의존 차트 정의를 작성, React/Vue/Solid/Svelte의 어댑터로 렌더링 가능.&lt;br&gt;
SVG SSR, Canvas 렌더러, 접근성, 반응형 레이아웃 다루는 런타임도 포함.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://tanstack.com/charts/latest&quot; title=&quot;TanStack Charts&quot;&gt;TanStack Charts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
</description>
        <pubDate>Wed, 05 Aug 2026 09:23:21 +0900</pubDate>
        <link>https://jser.info/ko/2026/08/05/next16.3-npm-scan-vlt1.0/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/08/05/next16.3-npm-scan-vlt1.0/</guid>
        
        <category>Next.js</category>
        
        <category>React</category>
        
        <category>npm</category>
        
        <category>security</category>
        
        <category>vlt</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-07-17: TypeScript 7.0, npm 12, Next.js 보안 출시 방침</title>
        <description>&lt;p&gt;JSer.info #776 - TypeScript 7.0가 출시되었다.&lt;/p&gt;

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

&lt;p&gt;Go으로 이식된 네이티브 &lt;code&gt;tsc&lt;/code&gt;가, npm의 &lt;code&gt;typescript&lt;/code&gt; 패키지로 공개된다.&lt;br&gt;
TypeScript 6.0에서는 비권장이 된 &lt;code&gt;target: es5&lt;/code&gt;이나 &lt;code&gt;baseUrl&lt;/code&gt; 같은 설정이 에러가 된다.&lt;br&gt;
또한, 병렬처리 제어하는 &lt;code&gt;--checkers&lt;/code&gt;/&lt;code&gt;--builders&lt;/code&gt;/&lt;code&gt;--singleThreaded&lt;/code&gt; 옵션, 재작성된 &lt;code&gt;--watch&lt;/code&gt;, LSP를 사용한 데이터 대응도 포함된다.&lt;br&gt;
한 편으로는, 프로그램 대상 API는 아직 공개되어 있지 않아, Vue 같은 TypeScript API 이용하는 도구는 TypeScript 7.0를 이용할 수 없는 경우도 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;npm 12가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.blog/changelog/2026-07-08-npm-install-time-security-and-gat-bypass2fa-deprecation/&quot;&gt;npm install-time security and GAT bypass2fa deprecation - GitHub Changelog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/npm/cli/releases/tag/v12.0.0&quot;&gt;Release v12.0.0 · npm/cli&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;npm 12에는, 의존 패키지 라이프사이클 스크립트를 제어하는 &lt;code&gt;allowScripts&lt;/code&gt;가 기본적으로 무효화된다.&lt;br&gt;
또한, Git이나 리모트 URL에서 의존 패키지를 제어하는 &lt;code&gt;--allow-git&lt;/code&gt;/&lt;code&gt;--allow-remote&lt;/code&gt;도 기본적으로 &lt;code&gt;none&lt;/code&gt;이 된다.&lt;br&gt;
2026년 8월 초부터, 2FA를 회피하는 Granular Access Token은 계정이나 패키지 관리 조작에서 2FA를 생략할 수 없으며, 2027년 1월부터는 같은 토큰을 사용해 직접 publish도 할 수없게 할 예정.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Next.js가 보안 출시의 새로운 방침을 발표했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nextjs.org/blog/next-security-release-program&quot;&gt;Next.js Security Release and Our Next Patch Release | Next.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;앞으로는 월 1회 정도, 대상 버전과 취약성 최대심각도를 사전 고지하고, 보안 출시 공개할 방침이다.&lt;br&gt;
시급성이 높거나 실제 악용되고 있는 취약성은, 이전처럼 임시 패치로 공개한다.&lt;br&gt;
2026년 7월 20일 공개를 목표로하고, Next.js 16.2와 15.5 대상 패치가 될 예정이다.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;release-pnpm-11-10-pnpm-pnpm&quot;&gt;Release pnpm 11.10 · pnpm/pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/releases/tag/v11.10.0&quot; title=&quot;Release pnpm 11.10 · pnpm/pnpm&quot;&gt;github.com/pnpm/pnpm/releases/tag/v11.10.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.10.0 출시.&lt;br&gt;
&lt;code&gt;pnpm issues&lt;/code&gt;/&lt;code&gt;pnpm prefix&lt;/code&gt; 명령어 추가, &lt;code&gt;pnpm_config__auth&lt;/code&gt; 환경 변수에서 &lt;code&gt;_auth&lt;/code&gt; 설정 지원.&lt;br&gt;
&lt;code&gt;pnpm self-update&lt;/code&gt;의 pnpm v12 대응.&lt;br&gt;
&lt;code&gt;pnpm up -r &amp;lt;pkg&amp;gt;&lt;/code&gt;가 관계없는 패키지를 업데이트하는 문제, &lt;code&gt;pnpm pack-app&lt;/code&gt; 경로 검증 수정.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/release-notes/150&quot; title=&quot;Chrome 150  |  Release notes  |  Chrome for Developers&quot;&gt;developer.chrome.com/release-notes/150&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;css&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;DOM&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebGPU&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 150 출시.&lt;br&gt;
CSS &lt;code&gt;AccentColor&lt;/code&gt;/&lt;code&gt;AccentColorText&lt;/code&gt;, &lt;code&gt;polygon()&lt;/code&gt; 둥금 지정, &lt;code&gt;text-fit&lt;/code&gt; 지원.&lt;br&gt;
CSS &lt;code&gt;url()&lt;/code&gt;의 &lt;code&gt;cross-origin()&lt;/code&gt;/&lt;code&gt;integrity()&lt;/code&gt;/&lt;code&gt;referrer-policy()&lt;/code&gt; 수식자 지원.&lt;br&gt;
DOM에는 &lt;code&gt;focusgroup&lt;/code&gt; 속성, &lt;code&gt;popover=hint&lt;/code&gt; 동작 변경.&lt;br&gt;
&lt;code&gt;Element&lt;/code&gt;/&lt;code&gt;Window&lt;/code&gt; 스크롤 메서드가 Promise를 반환하도록 변경.&lt;br&gt;
WebGPU의 &lt;code&gt;setImmediateData()&lt;/code&gt;, PWA의 origin migration.&lt;br&gt;
Origin Trial으로 &lt;code&gt;performance.getSpeculations()&lt;/code&gt; 추가&lt;/p&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;electron-43-electron&quot;&gt;Electron 43 | Electron&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.electronjs.org/blog/electron-43-0&quot; title=&quot;Electron 43 | Electron&quot;&gt;www.electronjs.org/blog/electron-43-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 43 출시.&lt;br&gt;
Chromium 150.0.7871.46, Node.js v24.17.0, V8 15.0으로 업데이트.&lt;br&gt;
파일 다운로드할 때 파일 다이얼로그가, 기존에 Downloads 폴더를 열도록 변경.&lt;br&gt;
&lt;code&gt;WebContents&lt;/code&gt; 인스턴스의 &lt;code&gt;clone()&lt;/code&gt;, macOS의 &lt;code&gt;Notification.remove()&lt;/code&gt;/&lt;code&gt;Notification.removeAll()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;globalShortcut.setSuspended()&lt;/code&gt; 추가, startup snapshot이나 V8 bytecode cache에 의한 기동 성능 개선&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-typescript-7-0-typescript&quot;&gt;Announcing TypeScript 7.0 - TypeScript&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/&quot; title=&quot;Announcing TypeScript 7.0 - TypeScript&quot;&gt;devblogs.microsoft.com/typescript/announcing-typescript-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;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 7.0 출시.&lt;br&gt;
Go로 이식된 네이티브 &lt;code&gt;tsc&lt;/code&gt;를 npm의 &lt;code&gt;typescript&lt;/code&gt; 패키지로 공개.&lt;br&gt;
TypeScript 6.0에서 비권장이 된 &lt;code&gt;target: es5&lt;/code&gt;/&lt;code&gt;baseUrl&lt;/code&gt;는 에러가 된다.&lt;br&gt;
&lt;code&gt;--checkers&lt;/code&gt;/&lt;code&gt;--builders&lt;/code&gt;/&lt;code&gt;--singleThreaded&lt;/code&gt;에 의한 병렬 처리 제어 추가.&lt;br&gt;
&lt;code&gt;--watch&lt;/code&gt;를 Parcel의 file watcher를 본래대로 돌림, LSP 대응 포함.&lt;br&gt;
한 편으로 프로그램 대상 API는 공개되지 않아, Vue 같이 TypeScript API를 사용하는 도구로 아직 동작하지 경우도 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;better-auth-is-joining-vercel&quot;&gt;Better Auth is joining Vercel&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://better-auth.com/blog/better-auth-joins-vercel&quot; title=&quot;Better Auth is joining Vercel&quot;&gt;better-auth.com/blog/better-auth-joins-vercel&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;vercel&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vercel가 Better Auth 매수 발표.&lt;br&gt;
Better Auth는 TypeScript로 만든 인증 라이브러리, MIT 라이센스 개발 체제 유지할 예정.&lt;br&gt;
Agent Auth Protocol 개발을 지속하고, Vercel Connect나 Eve으로 에이전트 ID 관리를 포함할 예정.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://vercel.com/blog/vercel-acquires-better-auth&quot; title=&quot;Vercel acquires Better Auth to accelerate open source auth - Vercel&quot;&gt;Vercel acquires Better Auth to accelerate open source auth - Vercel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;npm-install-time-security-and-gat-bypass2fa-deprecation-github-changelog&quot;&gt;npm install-time security and GAT bypass2fa deprecation - GitHub Changelog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/changelog/2026-07-08-npm-install-time-security-and-gat-bypass2fa-deprecation/&quot; title=&quot;npm install-time security and GAT bypass2fa deprecation - GitHub Changelog&quot;&gt;github.blog/changelog/2026-07-08-npm-install-time-security-and-gat-bypass2fa-deprecation/&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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm v12 출시.&lt;br&gt;
&lt;code&gt;allowScripts&lt;/code&gt;가 기본적으로 무효화되어, &lt;code&gt;--allow-git&lt;/code&gt;/&lt;code&gt;--allow-remote&lt;/code&gt;은 기본적으로 &lt;code&gt;none&lt;/code&gt;가 됨.&lt;br&gt;
2FA를 회피하는 Granular Access Token은, 2026년 8월부터 계정이나 패키지 관리 조작에 2FA를 생략할 수 없음.&lt;br&gt;
2027년 1월부터는 2FA를 회피하는 Granular Access Token를 사용해 직접 publish도 할 수없게 될 예정.&lt;br&gt;
자동 공개에는 Trusted Publishing, 또한 사람에 의한 2FA 인증하는 Staged Publishing 으로 이행을 권장&lt;/p&gt;

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

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v26.5.0&quot; title=&quot;Node.js — Node.js 26.5.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v26.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.js v26.5.0 출시.&lt;br&gt;
&lt;code&gt;Blob.prototype.textStream()&lt;/code&gt;, &lt;code&gt;--experimental-import-text&lt;/code&gt;, &lt;code&gt;ReadableStreamTee&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;perf_hooks.monitorEventLoopDelay&lt;/code&gt;에 &lt;code&gt;samplePerIteration&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;your-worker-can-now-have-its-own-cache-in-front-of-it&quot;&gt;Your Worker can now have its own cache in front of it&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/workers-cache/&quot; title=&quot;Your Worker can now have its own cache in front of it&quot;&gt;blog.cloudflare.com/workers-cache/&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;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;Cloudflare Workers Cache에 대하여.&lt;br&gt;
Worker 사전 캐시를, &lt;code&gt;wrangler.jsonc&lt;/code&gt;의 &lt;code&gt;cache.enabled&lt;/code&gt;에서 유효화 가능.&lt;br&gt;
&lt;code&gt;Cache-Control&lt;/code&gt;/&lt;code&gt;Vary&lt;/code&gt;에 대응, &lt;code&gt;ctx.cache.purge()&lt;/code&gt;에서 태그나 경로에 의한 삭제가 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;next-js-security-release-and-our-next-patch-release-next-js&quot;&gt;Next.js Security Release and Our Next Patch Release | Next.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nextjs.org/blog/next-security-release-program&quot; title=&quot;Next.js Security Release and Our Next Patch Release | Next.js&quot;&gt;nextjs.org/blog/next-security-release-program&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;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;Next.js 보안 출시 방침에 대하여.&lt;br&gt;
앞으로는 월 1회 정도 사전 고지하고 출시를 공개, 긴급할 때는 기존처럼 임시 패치를 공개할 예정.&lt;br&gt;
2026년 7월 20일 공개를 목표하고, Next.js 16.2와 15.5 대상 패치 예정됨.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;blume-fast-ai-ready-markdown-first-docs&quot;&gt;Blume — fast, AI-ready, markdown-first docs&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://useblume.dev/&quot; title=&quot;Blume — fast, AI-ready, markdown-first docs&quot;&gt;useblume.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;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Markdown&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;document&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;AI&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Markdown/MDX에서 문서 사이트를 생성하는 도구.&lt;br&gt;
&lt;code&gt;blume init&lt;/code&gt;/&lt;code&gt;blume dev&lt;/code&gt;/&lt;code&gt;blume build&lt;/code&gt; 같은 CLI 제공, Astro와 Vite를 사용해 정적 HTML를 생성.&lt;br&gt;
검색, OpenAPI/AsyncAPI에서 생성된 API 레퍼런스, &lt;code&gt;llms.txt&lt;/code&gt;, MCP 서버, Ask 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;samchon-ttsc-a-typescript-go-toolchain-for-compiler-powered-plugins-and-type-safe-execution-500x-faster-lint-integrated-into-compiler&quot;&gt;samchon/ttsc: A `typescript-go` toolchain for compiler-powered plugins and type-safe execution + 500x faster lint integrated into compiler&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/samchon/ttsc&quot; title=&quot;samchon/ttsc: A \`typescript-go\` toolchain for compiler-powered plugins and type-safe execution + 500x faster lint integrated into compiler&quot;&gt;github.com/samchon/ttsc&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;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;lint&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;typescript-go&lt;/code&gt;를 사용한 TypeScript 대상 툴체인.&lt;br&gt;
빌드, 자료형 체크 실행, Lint, Format 도구를 제공.&lt;br&gt;
Vite/Rollup/esbuild/webpack/Rspack/Next.js 대상 플러그인도 제공.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;themackabu-ant-javascript-for-s-a-tiny-runtime-with-big-ambitions&quot;&gt;theMackabu/ant: javascript for 🐜&amp;#039;s, a tiny runtime with big ambitions&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/theMackabu/ant&quot; title=&quot;theMackabu/ant: javascript for 🐜&amp;amp;#039;s, a tiny runtime with big ambitions&quot;&gt;github.com/theMackabu/ant&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;C&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;/p&gt;&lt;/p&gt;

&lt;p&gt;C로 구현된 작은 JavaScript Runtime.&lt;br&gt;
WinterTC Minimum Common API 호환 구현을 목표로 하고 있음.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;wordgard&quot;&gt;Wordgard&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://wordgard.net/&quot; title=&quot;Wordgard&quot;&gt;wordgard.net/&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;editor&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;
ProseMirror/CodeMirror 제작자가 개발, 스키마 기반 문서 구조와, CodeMirror 스러운 확장 기능을 갖음.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://marijnhaverbeke.nl/blog/wordgard-0.1.html&quot; title=&quot;Wordgard Release 0.1&quot;&gt;Wordgard Release 0.1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;inokawa-virtua-a-zero-config-fast-and-small-3kb-virtual-list-and-grid-component-for-react-vue-solid-and-svelte&quot;&gt;inokawa/virtua: A zero-config, fast and small (~3kB) virtual list (and grid) component for React, Vue, Solid and Svelte.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/inokawa/virtua/&quot; title=&quot;inokawa/virtua: A zero-config, fast and small (~3kB) virtual list (and grid) component for React, Vue, Solid and Svelte.&quot;&gt;github.com/inokawa/virtua/&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;Vue&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Solid&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Svelte&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/Vue/Solid/Svelte 대상 Virtual Scroll 컴포넌트 라이브러리.&lt;br&gt;
&lt;code&gt;VList&lt;/code&gt;/&lt;code&gt;Virtualizer&lt;/code&gt;/&lt;code&gt;WindowVirtualizer&lt;/code&gt;/&lt;code&gt;experimental_VGrid&lt;/code&gt;를 제공, 가변 크기, 횡 스크롤, Window 스크롤, 그리드 게시에 대응.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;unjs-httpxy-a-full-featured-http-and-websocket-proxy-for-node-js&quot;&gt;unjs/httpxy: 🔀 A Full-Featured HTTP and WebSocket Proxy for Node.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/unjs/httpxy&quot; title=&quot;unjs/httpxy: 🔀 A Full-Featured HTTP and WebSocket Proxy for Node.js&quot;&gt;github.com/unjs/httpxy&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;WebSocket&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js 대상 HTTP/WebSocket 프록시 라이브러리.&lt;br&gt;
Fetch API 호환 &lt;code&gt;proxyFetch&lt;/code&gt;, WebSocket Upgrade 대상 &lt;code&gt;proxyUpgrade&lt;/code&gt;, &lt;code&gt;createProxyServer&lt;/code&gt; 제공.&lt;br&gt;
Unix Socket, &lt;code&gt;changeOrigin&lt;/code&gt;, &lt;code&gt;xfwd&lt;/code&gt;, 리다이렉트나 Cookie 갈아 끼우기에도 대응.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Fri, 17 Jul 2026 00:07:18 +0900</pubDate>
        <link>https://jser.info/ko/2026/07/17/typescript-7.0-npm-12-next.js/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/07/17/typescript-7.0-npm-12-next.js/</guid>
        
        <category>TypeScript</category>
        
        <category>nodejs</category>
        
        <category>npm</category>
        
        <category>Next.js</category>
        
        <category>security</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-07-05: Deno 2.9, Vite 8.1, ES2026</title>
        <description>&lt;p&gt;JSer.info #775 - Deno 2.9가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://deno.com/blog/v2.9&quot;&gt;Deno 2.9 | Deno&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;실험적 기능으로, Web 기술을 사용한 데스크탑 애플리케이션을 작성하는 &lt;code&gt;deno desktop&lt;/code&gt;가 추가되었다.&lt;br&gt;
&lt;code&gt;deno install&lt;/code&gt;은, npm/pnpm/yarn/Bun의 lockfile를 읽어 &lt;code&gt;deno.lock&lt;/code&gt;를 작성할 수 있도록 한다.&lt;br&gt;
또한, npm 패키지가 새로운 버전을 바로 설치하지 않는 &lt;code&gt;min-release-age=24h&lt;/code&gt;가 기본 유효화되었다.&lt;br&gt;
그 외로는, &lt;code&gt;deno test&lt;/code&gt;의 &lt;code&gt;--changed&lt;/code&gt;/&lt;code&gt;--retry&lt;/code&gt;/&lt;code&gt;--shard&lt;/code&gt;, &lt;code&gt;deno compile&lt;/code&gt;의 &lt;code&gt;--include-as-is&lt;/code&gt;/&lt;code&gt;--bundle&lt;/code&gt;/&lt;code&gt;--watch&lt;/code&gt;, &lt;code&gt;deno fmt&lt;/code&gt;의 설정 항목이 추가되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Vite 8.1가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://vite.dev/blog/announcing-vite8-1&quot;&gt;Vite 8.1 is out! | Vite&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;실험적 기능으로, 개발할 때 번들한 파일 배포하는 &lt;code&gt;--experimental-bundle&lt;/code&gt;가 추가되었다.&lt;br&gt;
또한, 출력 청크의 해시 변경이 연쇄적 문제를 피하기 위한 Chunk Import Map가 추가되었다.&lt;br&gt;
Wasm ESM integration 지원, &lt;code&gt;import.meta.glob&lt;/code&gt;의 &lt;code&gt;caseSensitive&lt;/code&gt; 옵션, &lt;code&gt;html.additionalAssetSources&lt;/code&gt;에 의한 HTML 내 에셋 검출 설정도 추가되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;ECMAScript 2026가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/tc39/ecma262/releases/tag/es2026&quot;&gt;Release ES2026 · tc39/ecma262&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;2026년 6월 30일에 Ecma에서 승인된 정식 출시.&lt;br&gt;
&lt;code&gt;Array.fromAsync&lt;/code&gt;, &lt;code&gt;Uint8Array.prototype.toBase64()&lt;/code&gt;/&lt;code&gt;Uint8Array.fromBase64()&lt;/code&gt;, &lt;code&gt;Iterator.concat()&lt;/code&gt;가 추가되었다.&lt;br&gt;
또한, &lt;code&gt;Math.sumPrecise()&lt;/code&gt;, &lt;code&gt;Error.isError()&lt;/code&gt;, &lt;code&gt;Map.prototype.getOrInsert()&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;node-js-node-js-24-18-0-lts&quot;&gt;Node.js — Node.js 24.18.0 (LTS)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v24.18.0&quot; title=&quot;Node.js — Node.js 24.18.0 (LTS)&quot;&gt;nodejs.org/en/blog/release/v24.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;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 v24.18.0 (LTS) 출시.&lt;br&gt;
&lt;code&gt;Buffer.poolSize&lt;/code&gt; 기본값을 64 KiB으로 변경, Web Crypto에 TurboSHAKE/KangarooTwelve 추가.&lt;br&gt;
&lt;code&gt;http.writeInformation()&lt;/code&gt; 출시, &lt;code&gt;crypto.diffieHellman()&lt;/code&gt;으로 키 데이터를 받을 수 있도록 변경&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pnpm-11-9-pnpm&quot;&gt;pnpm 11.9 | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/11.9&quot; title=&quot;pnpm 11.9 | pnpm&quot;&gt;pnpm.io/blog/releases/11.9&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 11.9 출시.&lt;br&gt;
registry가 checksum를 제공하지 않는 tarball의 &lt;code&gt;integrity&lt;/code&gt;를 계산해 lockfile으로 기록할 수 있도록 변경.&lt;br&gt;
&lt;code&gt;pnpm sbom --exclude-peers&lt;/code&gt; 출시, &lt;code&gt;pnpm audit --fix&lt;/code&gt;의 &lt;code&gt;minimumReleaseAgeExclude&lt;/code&gt; 출력 형식을 수정&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;announcing-rspack-2-1-rspack&quot;&gt;Announcing Rspack 2.1 - Rspack&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://rspack.rs/blog/announcing-2-1&quot; title=&quot;Announcing Rspack 2.1 - Rspack&quot;&gt;rspack.rs/blog/announcing-2-1&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;rspack&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Rspack 2.1 출시.&lt;br&gt;
&lt;code&gt;builtin:swc-loader&lt;/code&gt;에서의 React Compiler 지원, &lt;code&gt;import.meta.glob&lt;/code&gt; 지원 추가.&lt;br&gt;
&lt;code&gt;CircularCheckRspackPlugin&lt;/code&gt; 출시, TypeScript 7를 사용한 자료형 체크 지원.&lt;br&gt;
&lt;code&gt;module.parser.javascript.createRequire&lt;/code&gt;, &lt;code&gt;css/global&lt;/code&gt;, &lt;code&gt;experiments.sourceImport&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;cache.maxAge&lt;/code&gt;/&lt;code&gt;cache.maxVersions&lt;/code&gt;으로 영속성 캐시 자동 삭제 추가.&lt;br&gt;
&lt;code&gt;experiments.pureFunctions&lt;/code&gt;를 production mode으로 기본 유효화, 의존 관계의 Tree Shaking 개선&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;deno-2-9-deno&quot;&gt;Deno 2.9 | Deno&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://deno.com/blog/v2.9&quot; title=&quot;Deno 2.9 | Deno&quot;&gt;deno.com/blog/v2.9&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.9 출시.&lt;br&gt;
실험적 기능으로 &lt;code&gt;deno desktop&lt;/code&gt; 출시, &lt;code&gt;deno install&lt;/code&gt;의 npm/pnpm/yarn/Bun lockfile 읽기 대응.&lt;br&gt;
&lt;code&gt;deno list&lt;/code&gt;/&lt;code&gt;deno link&lt;/code&gt;/&lt;code&gt;deno unlink&lt;/code&gt; 출시.&lt;br&gt;
&lt;code&gt;min-release-age=24h&lt;/code&gt; 기본적으로 유효화, &lt;code&gt;trust-policy=no-downgrade&lt;/code&gt; 출시.&lt;br&gt;
&lt;code&gt;deno test&lt;/code&gt;に&lt;code&gt;--changed&lt;/code&gt;/&lt;code&gt;--retry&lt;/code&gt;/&lt;code&gt;--shard&lt;/code&gt; 플래그 추가.&lt;br&gt;
&lt;code&gt;deno compile&lt;/code&gt;に&lt;code&gt;--include-as-is&lt;/code&gt;/&lt;code&gt;--bundle&lt;/code&gt;/&lt;code&gt;--watch&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;deno fmt&lt;/code&gt;に&lt;code&gt;sortNamedImports&lt;/code&gt;/&lt;code&gt;json.trailingCommas&lt;/code&gt;/&lt;code&gt;.editorconfig&lt;/code&gt; 대응 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;prettier-3-9-major-parser-upgrades-and-formatting-improvements-prettier&quot;&gt;Prettier 3.9: Major parser upgrades and Formatting improvements · Prettier&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://prettier.io/blog/2026/06/27/3.9.0&quot; title=&quot;Prettier 3.9: Major parser upgrades and Formatting improvements · Prettier&quot;&gt;prettier.io/blog/2026/06/27/3.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;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;span class=&quot;jser-tag&quot;&gt;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Prettier 3.9 출시.&lt;br&gt;
Markdown 파서를 &lt;code&gt;micromark&lt;/code&gt; v4, YAML 파서를 &lt;code&gt;yaml&lt;/code&gt; v2으로 변경.&lt;br&gt;
GraphQL.js v17의 구문과 Rust 기반의 Flow 파서를 지원.&lt;br&gt;
&lt;code&gt;import ... assert&lt;/code&gt; 구문 지원를 삭제, &lt;code&gt;--no-semi&lt;/code&gt;에서의 주석 처리 개선&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;vite-8-1-is-out-vite&quot;&gt;Vite 8.1 is out! | Vite&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://vite.dev/blog/announcing-vite8-1&quot; title=&quot;Vite 8.1 is out! | Vite&quot;&gt;vite.dev/blog/announcing-vite8-1&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;/p&gt;&lt;/p&gt;

&lt;p&gt;Vite 8.1 출시.&lt;br&gt;
실험적 기능으로 &lt;code&gt;--experimental-bundle&lt;/code&gt; 추가, 개발할 때 번들도 배포 대응, Chunk Import Map 출시.&lt;br&gt;
Wasm ESM integration, &lt;code&gt;import.meta.glob&lt;/code&gt;의 &lt;code&gt;caseSensitive&lt;/code&gt; 옵션 추가.&lt;br&gt;
&lt;code&gt;html.additionalAssetSources&lt;/code&gt;에서 HTML 내의 독자 요소나 속성에서 에셋 검출을 설정하도록.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-1-0-0-hunvreus-basecoat&quot;&gt;Release 1.0.0 🎉 · hunvreus/basecoat&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/hunvreus/basecoat/releases/tag/1.0.0&quot; title=&quot;Release 1.0.0 🎉 · hunvreus/basecoat&quot;&gt;github.com/hunvreus/basecoat/releases/tag/1.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;css&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;HTML&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;Basecoat 1.0.0 출시.&lt;br&gt;
Tailwind CSS와 HTML/CSS/JavaScript으로 구현한 shadcn/ui 호환의 컴포넌트 라이브러리.&lt;br&gt;
React나 Radix 실행할 때 의존없이, CDN/npm/템플릿에서 이용 가능.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;next-js-16-3-instant-navigations-next-js&quot;&gt;Next.js 16.3: Instant Navigations | Next.js&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nextjs.org/blog/next-16-3-instant-navigations&quot; title=&quot;Next.js 16.3: Instant Navigations | Next.js&quot;&gt;nextjs.org/blog/next-16-3-instant-navigations&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.3 Preview 출시.&lt;br&gt;
Next.js 16.3으로 실험적 기능으로 추가되는 Instant Navigations에 대하여.&lt;br&gt;
&lt;code&gt;cacheComponents&lt;/code&gt;와 &lt;code&gt;partialPrefetching&lt;/code&gt; 옵션에 의해, Instant route 째로 한 번 캐시가 만들어지고, 페이지네이션이 즉각적으로 게시되는 구조에 대하여&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;release-es2026-tc39-ecma262&quot;&gt;Release ES2026 · tc39/ecma262&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/tc39/ecma262/releases/tag/es2026&quot; title=&quot;Release ES2026 · tc39/ecma262&quot;&gt;github.com/tc39/ecma262/releases/tag/es2026&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;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;ECMAScript 2026 출시.&lt;br&gt;
2026년 6월 30일 Ecma에서 승인된 정식 출시.&lt;br&gt;
&lt;code&gt;Array.fromAsync&lt;/code&gt;, &lt;code&gt;Uint8Array.prototype.toBase64()&lt;/code&gt;/&lt;code&gt;Uint8Array.fromBase64()&lt;/code&gt; 추가.&lt;br&gt;
&lt;code&gt;Iterator.concat()&lt;/code&gt;, &lt;code&gt;Math.sumPrecise()&lt;/code&gt;, &lt;code&gt;Error.isError()&lt;/code&gt;, &lt;code&gt;Map.prototype.getOrInsert()&lt;/code&gt; 출시.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://voidzero.dev/posts/announcing-vite-plus-beta&quot; title=&quot;Announcing Vite+ Beta | VoidZero&quot;&gt;voidzero.dev/posts/announcing-vite-plus-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;vite&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+ Beta 출시.&lt;br&gt;
&lt;code&gt;vp run&lt;/code&gt; 캐시 개선, &lt;code&gt;vp migrate&lt;/code&gt; 대응 범위 개선, proxy와 커스텀 CA에 대응한 HTTP 처리 출시.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;flow-has-been-ported-to-rust-flow&quot;&gt;Flow has been ported to Rust | Flow&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://medium.com/flow-type/flows-ocaml-to-rust-port-78b95bcf49e9&quot; title=&quot;Flow has been ported to Rust | Flow&quot;&gt;medium.com/flow-type/flows-ocaml-to-rust-port-78b95bcf49e9&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;flowtype&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Flow를 OCaml에서 Rust으로 이식한 이야기.&lt;br&gt;
AI를 사용해 행 째로 이식, OCaml와 Rust 차이, 이식 후의 빌드나 테스트에 대해 작성되어 있음. 코드 프리즈없이 이식함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;introducing-the-safari-mcp-server-for-web-developers-webkit&quot;&gt;Introducing the Safari MCP server for web developers | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/18136/introducing-the-safari-mcp-server-for-web-developers/&quot; title=&quot;Introducing the Safari MCP server for web developers | WebKit&quot;&gt;webkit.org/blog/18136/introducing-the-safari-mcp-server-for-web-developers/&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;MCP&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Safari Technology Preview 247에 추가된 Safari MCP server에 대하여.&lt;br&gt;
AI Agent에서 Safari 탭을 조작, DOM/네트워크/콘솔/스크린샷을 참조 가능.&lt;br&gt;
&lt;code&gt;safaridriver --mcp&lt;/code&gt;으로 기동, &lt;code&gt;navigate_to_url&lt;/code&gt;/&lt;code&gt;evaluate_javascript&lt;/code&gt;/&lt;code&gt;screenshot&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;introduction-pnpm&quot;&gt;Introduction | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/pnpr/&quot; title=&quot;Introduction | pnpm&quot;&gt;pnpm.io/pnpr/&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;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;server&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;document&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm registry server인 pnpr에 대하여.&lt;br&gt;
Rust으로 작성되어, npm registry protocol에 대응하기 위해 pnpm/npm/yarn에서 이용 가능.&lt;br&gt;
lockfile의 resolve를 서버 측에서 일어나고 round trip를 적게함.&lt;br&gt;
PolyForm Shield License으로 공개됨.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;facebook-astryx-an-open-source-design-system-thats-fully-customizable-and-agent-ready&quot;&gt;facebook/astryx: An open source design system that&amp;#039;s fully customizable and agent ready&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/facebook/astryx&quot; title=&quot;facebook/astryx: An open source design system that&amp;amp;#039;s fully customizable and agent ready&quot;&gt;github.com/facebook/astryx&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;Design&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&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와 StyleX에서 구현된 Meta 디자인 시스템.&lt;br&gt;
&lt;code&gt;@astryxdesign/core&lt;/code&gt;으로 컴포넌트와 테마를 제공, &lt;code&gt;@astryxdesign/cli&lt;/code&gt;으로 템플릿/scaffolding/테마/codemod를 다룸.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;jayu-rev-dep-dependency-analysis-and-optimization-toolkit-for-modern-javascript-and-typescript-codebases-enforce-dependency-graph-hygiene-and-remove-unused-code-with-a-very-fast-cli&quot;&gt;jayu/rev-dep: Dependency analysis and optimization toolkit for modern JavaScript and TypeScript codebases. Enforce dependency graph hygiene and remove unused code with a very fast CLI.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/jayu/rev-dep&quot; title=&quot;jayu/rev-dep: Dependency analysis and optimization toolkit for modern JavaScript and TypeScript codebases. Enforce dependency graph hygiene and remove unused code with a very fast CLI.&quot;&gt;github.com/jayu/rev-dep&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;CLI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;JavaScript/TypeScript 대상 의존관계 해석 CLI 도구.&lt;br&gt;
&lt;code&gt;rev-dep config run&lt;/code&gt;으로 모듈의 의존관계의 순환참조나 데드코드 등 체크할 수 있음.&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Sun, 05 Jul 2026 12:58:38 +0900</pubDate>
        <link>https://jser.info/ko/2026/07/05/deno-2.9-vite-8.1-es2026/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/07/05/deno-2.9-vite-8.1-es2026/</guid>
        
        <category>Tools</category>
        
        <category>pnpm</category>
        
        <category>Rust</category>
        
        <category>React</category>
        
        <category>TypeScript</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-06-22: TypeScript 7.0 RC, Babel 8.0.0, React Router v8</title>
        <description>&lt;p&gt;JSer.info #774 - TypeScript 7.0 RC가 출시되었다.&lt;/p&gt;

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

&lt;p&gt;Go언어로 이식된 컴파일이 &lt;code&gt;typescript@rc&lt;/code&gt;으로 공개되어, 기존 &lt;code&gt;@typescript/typescript6&lt;/code&gt;와 병용할 수 있도록 되었다.&lt;br&gt;
&lt;code&gt;--checkers&lt;/code&gt;/&lt;code&gt;--builders&lt;/code&gt;/&lt;code&gt;--singleThreaded&lt;/code&gt; 옵션이나, &lt;code&gt;--watch&lt;/code&gt; 개선 추가가 있다.&lt;br&gt;
또한, &lt;code&gt;strict&lt;/code&gt;/&lt;code&gt;module&lt;/code&gt;/&lt;code&gt;target&lt;/code&gt; 기본값 변경 및 &lt;code&gt;target: es5&lt;/code&gt;이나 &lt;code&gt;baseUrl&lt;/code&gt; 옵션 삭제도 있다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Babel 8.0.0가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://babeljs.io/blog/2026/06/16/8.0.0/&quot;&gt;Releasing Babel 8 today: ESM-only, drop ES5 default, and a smooth migration path · Babel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://babeljs.io/docs/v8-migration-api/&quot;&gt;Upgrade to Babel 8 (API) · Babel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ESM만 배포하도록 되어, Node.js 24 이후 버전이 필수가 되는 파괴적 변경도 포함된다.&lt;br&gt;
&lt;code&gt;@babel/preset-env&lt;/code&gt;는 기본적으로 ES5으로 컴파일하지 않게 되었으며, Browserslist 기본 설정（ES2023）를 타겟하도록 변경되었다.&lt;br&gt;
&lt;code&gt;loose&lt;/code&gt;/&lt;code&gt;spec&lt;/code&gt; 옵션은 삭제되고, &lt;code&gt;assumptions&lt;/code&gt;으로 이행이 권장된다.&lt;br&gt;
&lt;code&gt;corejs&lt;/code&gt;/&lt;code&gt;useBuiltIns&lt;/code&gt; 옵션도 삭제되어, 대신 &lt;code&gt;babel-plugin-polyfill-corejs3&lt;/code&gt; 플러그인 이용이 권장된다.&lt;br&gt;
Babel 7은 2027년 6월까지 보안 지원이 계속된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;React Router v8가 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://remix.run/blog/react-router-v8&quot;&gt;React Router v8 | Remix&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Node.js 22.22.0 이상 / React 19.2.7 이상 / Vite 7 이상이 최소 지원 버전이 되어, ESM만 배포하도록 변경되었다.&lt;br&gt;
&lt;code&gt;future.v8_middleware&lt;/code&gt;/&lt;code&gt;future.v8_viteEnvironmentApi&lt;/code&gt;의 Future Flag가 기본적으로 유효화되었다.&lt;br&gt;
&lt;code&gt;react-router-dom&lt;/code&gt;, meta API의 &lt;code&gt;data&lt;/code&gt; 인수, &lt;code&gt;@react-router/dev/vite/cloudflare&lt;/code&gt; 삭제되었다.&lt;br&gt;
React Router v6와 Remix v2는 EOL가 되어, 이후는 React Router v7에 보안 업데이트 갱신만 제공된다.&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;dependabot-version-updates-now-support-the-deno-ecosystem-github-changelog&quot;&gt;Dependabot version updates now support the Deno ecosystem - GitHub Changelog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/changelog/2026-06-09-dependabot-version-updates-now-support-the-deno-ecosystem/&quot; title=&quot;Dependabot version updates now support the Deno ecosystem - GitHub Changelog&quot;&gt;github.blog/changelog/2026-06-09-dependabot-version-updates-now-support-the-deno-ecosystem/&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;deno&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;package&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Actions&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Dependabot의 version updates가 Deno 에코시스템에 대응함.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;bytecode-alliance-wasi-0-3-launched&quot;&gt;Bytecode Alliance — WASI 0.3 Launched&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://bytecodealliance.org/articles/WASI-0.3&quot; title=&quot;Bytecode Alliance — WASI 0.3 Launched&quot;&gt;bytecodealliance.org/articles/WASI-0.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;WebAssembly&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;WASI 0.3 출시.&lt;br&gt;
WebAssembly Component Model 네이티브 기능으로 비동기처리가 내장되어, &lt;code&gt;stream&amp;lt;T&amp;gt;&lt;/code&gt;/&lt;code&gt;future&amp;lt;T&amp;gt;&lt;/code&gt;/&lt;code&gt;async&lt;/code&gt;가 Canonical ABI에 추가됨.&lt;br&gt;
WASI 0.2에는 각 컴퓨넌트 독자 이벤트 루프를 갖을 필요가 있었지만, 호스트가 공유 이벤트 루프를 관리하는 설계로 변경했다.&lt;br&gt;
앞으로 &lt;code&gt;start-foo&lt;/code&gt;/&lt;code&gt;finish-foo&lt;/code&gt;/&lt;code&gt;subscribe&lt;/code&gt; 패턴이 &lt;code&gt;async func&lt;/code&gt;으로 변환되고, 스트리밍 에러 핸들링도 독립된 &lt;code&gt;future&lt;/code&gt;로 다루도록 되었다.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;biome-v2-5-500-lint-rules-plugin-code-fix-and-cross-file-linting-biome&quot;&gt;Biome v2.5—500 Lint Rules, Plugin Code Fix, and Cross-File Linting | Biome&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://biomejs.dev/blog/biome-v2-5/&quot; title=&quot;Biome v2.5—500 Lint Rules, Plugin Code Fix, and Cross-File Linting | Biome&quot;&gt;biomejs.dev/blog/biome-v2-5/&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;span class=&quot;jser-tag&quot;&gt;ESLint&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Biome v2.5 출시.&lt;br&gt;
CSS 클래스를 파일 횡단으로 해석하는 Lint 규칙 &lt;code&gt;noUndeclaredClasses&lt;/code&gt;/&lt;code&gt;noUnusedClasses&lt;/code&gt; 추가.&lt;br&gt;
GritQL 플러그인이 파일 경로째로 적용 및&lt;code&gt;=&amp;gt;&lt;/code&gt;로 인한 코드픽스를 지원.&lt;br&gt;
Formatter에 &lt;code&gt;delimiterSpacing&lt;/code&gt; 옵션 추가, &lt;code&gt;lint&lt;/code&gt;/&lt;code&gt;format&lt;/code&gt;/&lt;code&gt;check&lt;/code&gt;에서 &lt;code&gt;--watch&lt;/code&gt; 지원.&lt;br&gt;
Language Server의 go-to-definition 대응, AI Agent 대상 &lt;code&gt;concise&lt;/code&gt; 레포트 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;releasing-babel-8-today-esm-only-drop-es5-default-and-a-smooth-migration-path-babel&quot;&gt;Releasing Babel 8 today: ESM-only, drop ES5 default, and a smooth migration path · Babel&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://babeljs.io/blog/2026/06/16/8.0.0/&quot; title=&quot;Releasing Babel 8 today: ESM-only, drop ES5 default, and a smooth migration path · Babel&quot;&gt;babeljs.io/blog/2026/06/16/8.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;babel&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;ECMAScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;nodejs&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;polyfill&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Babel 8.0.0 출시.&lt;br&gt;
ESM만 배포하도록 되어, Node.js 24 이후 버전이 필수가 되는 파괴적 변경도 포함.&lt;br&gt;
&lt;code&gt;@babel/preset-env&lt;/code&gt;가 기본적으로 ES5으로 컴파일하지 않게 되었고, Browserslist 기본적 설정이（ES2023）를 타겟하도록 변경.&lt;br&gt;
&lt;code&gt;loose&lt;/code&gt;/&lt;code&gt;spec&lt;/code&gt; 옵션을 삭제, &lt;code&gt;assumptions&lt;/code&gt;으로 이행을 권장.&lt;br&gt;
&lt;code&gt;corejs&lt;/code&gt;/&lt;code&gt;useBuiltIns&lt;/code&gt; 옵션 삭제, &lt;code&gt;babel-plugin-polyfill-corejs3&lt;/code&gt; 플러그인 이용을 권장.&lt;br&gt;
모든 패키지에서 TypeScript 자료형 정의를 추가. 많은 AST 변경을 포함.&lt;br&gt;
Babel 7은 2027년 6월까지 보안 지원를 지속.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://babeljs.io/docs/v8-migration-api/&quot; title=&quot;Upgrade to Babel 8 (API) · Babel&quot;&gt;Upgrade to Babel 8 (API) · Babel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pnpm-11-7-pnpm&quot;&gt;pnpm 11.7 | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/releases/11.7&quot; title=&quot;pnpm 11.7 | pnpm&quot;&gt;pnpm.io/blog/releases/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;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 11.7 출시.&lt;br&gt;
읽기 전용 파일 시스템 상에 스토어에 대응하는 &lt;code&gt;frozenStore&lt;/code&gt; 설정, 동일 레지스트리 URL 하에 스코프별 인증 토큰 지정에 대응.&lt;br&gt;
의존 관계 해결을 Rust 구현 Pacquet 사용&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/playwright/releases/tag/v1.61.0&quot; title=&quot;Release v1.61.0 · microsoft/playwright&quot;&gt;github.com/microsoft/playwright/releases/tag/v1.61.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.61.0 출시.&lt;br&gt;
&lt;code&gt;browserContext.credentials&lt;/code&gt;에서 WebAuthn의 passkey 다루도록.&lt;br&gt;
&lt;code&gt;page.localStorage&lt;/code&gt;/&lt;code&gt;page.sessionStorage&lt;/code&gt;으로 Web Storage를 읽는 API 추가.&lt;br&gt;
&lt;code&gt;apiResponse.securityDetails()&lt;/code&gt;/&lt;code&gt;apiResponse.serverAddr()&lt;/code&gt;, &lt;code&gt;artifactsDir&lt;/code&gt; 옵션, &lt;code&gt;-G&lt;/code&gt; 옵션 추가.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;react-router-v8-remix&quot;&gt;React Router v8 | Remix&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://remix.run/blog/react-router-v8&quot; title=&quot;React Router v8 | Remix&quot;&gt;remix.run/blog/react-router-v8&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;ReleaseNote&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;React Router v8 출시.&lt;br&gt;
Node.js 22.22.0+/React 19.2.7+/Vite 7+가 최소 지원 버전이 되어, ESM으로만 배포하도록 변경.&lt;br&gt;
&lt;code&gt;future.v8_middleware&lt;/code&gt;/&lt;code&gt;future.v8_viteEnvironmentApi&lt;/code&gt; Future Flag 기본값으로.&lt;br&gt;
&lt;code&gt;react-router-dom&lt;/code&gt;, meta API의 &lt;code&gt;data&lt;/code&gt; 인수, &lt;code&gt;@react-router/dev/vite/cloudflare&lt;/code&gt;를 삭제.&lt;br&gt;
React Router v6와 Remix v2는 EOL가 되어, 앞으로는 React Router v7으로 보안 갱신만 제공.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;news-from-wwdc26-webkit-in-safari-27-beta-webkit&quot;&gt;News from WWDC26: WebKit in Safari 27 beta | WebKit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://webkit.org/blog/17967/news-from-wwdc26-webkit-in-safari-27-beta/&quot; title=&quot;News from WWDC26: WebKit in Safari 27 beta | WebKit&quot;&gt;webkit.org/blog/17967/news-from-wwdc26-webkit-in-safari-27-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;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;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Safari 27 beta 출시.&lt;br&gt;
CSS의 &lt;code&gt;appearance: base-select&lt;/code&gt;로 &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt; 커스터마이즈, Scroll Anchoring, &lt;code&gt;position-anchor: normal&lt;/code&gt; 추가.&lt;br&gt;
JavaScript는 Top-Level Await 문제를 수정, WebAssembly JSPI를 지원.&lt;br&gt;
Web API는 Service Worker Static Routing API, &lt;code&gt;ReadableStream.from()&lt;/code&gt;, Stream의 &lt;code&gt;postMessage()&lt;/code&gt; 전송 지원.&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://devblogs.microsoft.com/typescript/announcing-typescript-7-0-rc/&quot; title=&quot;Announcing TypeScript 7.0 RC - TypeScript&quot;&gt;devblogs.microsoft.com/typescript/announcing-typescript-7-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;span class=&quot;jser-tag&quot;&gt;go&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TypeScript 7.0 RC 출시.&lt;br&gt;
Go로 이식된 컴파일러 &lt;code&gt;typescript@rc&lt;/code&gt; 공개, &lt;code&gt;@typescript/typescript6&lt;/code&gt;와 병용에 대응.&lt;br&gt;
&lt;code&gt;--checkers&lt;/code&gt;/&lt;code&gt;--builders&lt;/code&gt;/&lt;code&gt;--singleThreaded&lt;/code&gt;, &lt;code&gt;--watch&lt;/code&gt; 개선을 추가.&lt;br&gt;
&lt;code&gt;strict&lt;/code&gt;/&lt;code&gt;module&lt;/code&gt;/&lt;code&gt;target&lt;/code&gt; 기본값으로 변경, &lt;code&gt;target: es5&lt;/code&gt;/&lt;code&gt;baseUrl&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;upcoming-breaking-changes-for-npm-v12-github-changelog&quot;&gt;Upcoming breaking changes for npm v12 - GitHub Changelog&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/&quot; title=&quot;Upcoming breaking changes for npm v12 - GitHub Changelog&quot;&gt;github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/&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;CLI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;npm v12 예정된 파괴적 변경 해설. 2026년 7월 출시 예정 npm v12에는, 공급망 공격 대책으로, 라이프사이클 스크립트 실행이 변경됨.&lt;br&gt;
preinstall/install/postinstall 스크립트가 기본적으로 실행되지 않으며, &lt;code&gt;npm approve-scripts&lt;/code&gt;로 인증된 패키지만이 실행함.&lt;br&gt;
&lt;code&gt;--allow-git&lt;/code&gt;/&lt;code&gt;--allow-remote&lt;/code&gt; 기본값이 &lt;code&gt;none&lt;/code&gt;이 되어, Git 의존이나 원격 URL에서 의존 해결이 명시적으로 허용되지 않게 됨.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;why-pnpm-no-longer-expands-environment-variables-in-a-repositorys-npmrc-pnpm&quot;&gt;Why pnpm no longer expands environment variables in a repository&amp;#039;s .npmrc | pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pnpm.io/blog/2026/06/11/env-variables-in-repository-npmrc&quot; title=&quot;Why pnpm no longer expands environment variables in a repository&amp;amp;#039;s .npmrc | pnpm&quot;&gt;pnpm.io/blog/2026/06/11/env-variables-in-repository-npmrc&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;security&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;npm&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;code&gt;.npmrc&lt;/code&gt;를 사용해 환경 변수를 훔치는 문제의 대책으로, pnpm가 레포지토리 관리 &lt;code&gt;.npmrc&lt;/code&gt;으로 환경 변수 전개하지 않도록한 경위 해설.&lt;br&gt;
v10.34.2/v11.5.3 이후, 레포지토리 내의 &lt;code&gt;.npmrc&lt;/code&gt;나 &lt;code&gt;pnpm-workspace.yaml&lt;/code&gt; 인증 정보 레포지토리 URL에 포함하는 &lt;code&gt;${...}&lt;/code&gt;는 전개되지 않도록 됨.&lt;br&gt;
유저 레벨 &lt;code&gt;~/.npmrc&lt;/code&gt;이나  &lt;code&gt;PNPM_CONFIG_NPMRC_AUTH_FILE&lt;/code&gt;으로 지정되는 &lt;code&gt;.npmrc&lt;/code&gt;에는 계속해서 전개 가능.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/security/advisories/GHSA-3qhv-2rgh-x77r&quot; title=&quot;CAND-PNPM-122: Repository config can expand victim environment secrets into registry requests before scripts run · Advisory · pnpm/pnpm&quot;&gt;CAND-PNPM-122: Repository config can expand victim environment secrets into registry requests before scripts run · Advisory · pnpm/pnpm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;introducing-the-mdn-mcp-server&quot;&gt;Introducing the MDN MCP server&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/blog/introducing-mdn-mcp-server/&quot; title=&quot;Introducing the MDN MCP server&quot;&gt;developer.mozilla.org/en-US/blog/introducing-mdn-mcp-server/&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;MCP&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;document&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;browser&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;MDN MCP server에 대하여&lt;br&gt;
MCP 경유로 MDN 검색, 문서, 브라우저 호환성 데이터를 LLM이나 에디터에서 참조 가능.&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;introducing-eve-vercel&quot;&gt;Introducing eve - Vercel&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://vercel.com/blog/introducing-eve&quot; title=&quot;Introducing eve - Vercel&quot;&gt;vercel.com/blog/introducing-eve&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;TypeScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Vercel에 의한 AI 에이전트 프레임워크 Eve에 대하여.&lt;br&gt;
&lt;code&gt;instructions.md&lt;/code&gt;/&lt;code&gt;agent.ts&lt;/code&gt;/&lt;code&gt;tools/&lt;/code&gt; 디렉토리 구성으로 에이전트를 정의하는 프레임워크.&lt;br&gt;
Durable execution, Sandbox, Human-in-the-loop approvals, Subagents, Evals 다룸&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/vercel/eve&quot; title=&quot;vercel/eve: The Framework for Building Agents&quot;&gt;vercel/eve: The Framework for Building Agents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;rust-roadmap-issue-11633-pnpm-pnpm&quot;&gt;Rust Roadmap · Issue #11633 · pnpm/pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/issues/11633&quot; title=&quot;Rust Roadmap · Issue #11633 · pnpm/pnpm&quot;&gt;github.com/pnpm/pnpm/issues/11633&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;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;issue&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;pnpm의 Rust 구현 Pacquet 로드맵 Issue.&lt;br&gt;
resolve를 필요로 하지않는 &lt;code&gt;pacquet install --frozen-lockfile&lt;/code&gt;에서 대응, resolveの 대응 진행.&lt;br&gt;
또한 &lt;code&gt;pnpm&lt;/code&gt;에는 &lt;code&gt;install-backend=pacquet&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;nubjs-nub-the-all-in-one-node-js-toolkit&quot;&gt;nubjs/nub: The all-in-one Node.js toolkit&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/nubjs/nub&quot; title=&quot;nubjs/nub: The all-in-one Node.js toolkit&quot;&gt;github.com/nubjs/nub&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;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Tools&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Node.js 대상 Rust제 툴킷.&lt;br&gt;
TypeScript 파일이나 &lt;code&gt;package.json&lt;/code&gt; 스크립트 실행, &lt;code&gt;nub install&lt;/code&gt;로 의존관계 설치나 패키지 관리, &lt;code&gt;nub node&lt;/code&gt;로 Node.js 버전 관리 가능.&lt;br&gt;
Runtime으로 Polyfill 포함하는 Node.js를 이용, 내부적으로 Rust로 작성된 패키지 매니저 aube와 OXC를 이용.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nubjs.com/&quot; title=&quot;Nub — an all-in-one toolkit for Node.js&quot;&gt;Nub — an all-in-one toolkit for Node.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
</description>
        <pubDate>Mon, 22 Jun 2026 22:14:54 +0900</pubDate>
        <link>https://jser.info/ko/2026/06/22/typescript-7.0-rc-babel-8.0.0-react-router-v8/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/06/22/typescript-7.0-rc-babel-8.0.0-react-router-v8/</guid>
        
        <category>TypeScript</category>
        
        <category>babel</category>
        
        <category>React</category>
        
        <category>ECMAScript</category>
        
        <category>nodejs</category>
        
        
        <category>JSer</category>
        
      </item>
    
      <item>
        <title>2026-06-09: pnpm 11.5, Node.js 26.3.0, Cloudflare가 VoidZero 매수</title>
        <description>&lt;p&gt;JSer.info #773 - pnpm 11.5 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/releases/tag/v11.5.0&quot;&gt;Release pnpm 11.5 · pnpm/pnpm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;새로운 기능으로, &lt;code&gt;nodeLinker: hoisted&lt;/code&gt; 대상 hoist 범위 제한하는 &lt;code&gt;hoistingLimits&lt;/code&gt; 설정이 추가되었다.&lt;br&gt;
또한, 대화 프롬프트 개선과 Staged publishing 대응 개선이 포함된다.&lt;br&gt;
수정으로, 얼라이어스 설치할 때 peer 문제 해결, &lt;code&gt;pnpm dist-tag&lt;/code&gt;에서 2FA 대응, &lt;code&gt;minimumReleaseAgeExclude&lt;/code&gt; 다루기, 리모트 HTTPS tarball 의존의 &lt;code&gt;integrity&lt;/code&gt; 필드 보존이 포함된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Node.js v26.3.0 (Current) 출시되었다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v26.3.0&quot;&gt;Node.js — Node.js 26.3.0 (Current)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Buffer.poolSize&lt;/code&gt; 기본 값이 64 KiB으로 변경되었다.&lt;br&gt;
새로운 기능으로, HTTP 헤더 값 검증을 커스터마이즈하는 &lt;code&gt;httpValidation&lt;/code&gt; 옵션, 권한 파기하는 &lt;code&gt;permission.drop&lt;/code&gt;이 추가된다.&lt;br&gt;
또한, Staged Publishing를 지원하는 npm 11.16.0으로 업데이트 된다.&lt;/p&gt;

&lt;hr&gt;

&lt;p&gt;Cloudflare가 Vite나 Oxc 개발하는 VoidZero 매수를 발표했다.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/voidzero-joins-cloudflare/&quot;&gt;VoidZero is joining Cloudflare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://voidzero.dev/posts/voidzero-cloudflare&quot;&gt;VoidZero is Joining Cloudflare | VoidZero&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vite, Vitest, Rolldown, Oxc, Vite+ 각 프로젝트는 MIT 라이센스 오픈소스인 채로 개발 지속할 예정이다.&lt;br&gt;
VoidZero가 개발하고 있는 Vite 배포 플랫폼 &lt;a href=&quot;https://void.cloud/&quot;&gt;Void&lt;/a&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;release-pnpm-11-5-pnpm-pnpm&quot;&gt;Release pnpm 11.5 · pnpm/pnpm&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pnpm/pnpm/releases/tag/v11.5.0&quot; title=&quot;Release pnpm 11.5 · pnpm/pnpm&quot;&gt;github.com/pnpm/pnpm/releases/tag/v11.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;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 11.5 출시.&lt;br&gt;
&lt;code&gt;nodeLinker: hoisted&lt;/code&gt; 대상으로 hoist 범위 제한하는 &lt;code&gt;hoistingLimits&lt;/code&gt; 설정 추가.&lt;br&gt;
대화 프롬프트 개선, Staged publishing 대응 개선.&lt;br&gt;
얼라이어스 설치할 때 peer 문제 해결, &lt;code&gt;pnpm dist-tag&lt;/code&gt; 2FA 대응 수정.&lt;br&gt;
&lt;code&gt;minimumReleaseAgeExclude&lt;/code&gt; 다룸, 리모트 HTTPS tarball 의존의 &lt;code&gt;integrity&lt;/code&gt; 필드 보존 수정.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;node-js-node-js-26-3-0-current&quot;&gt;Node.js — Node.js 26.3.0 (Current)&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v26.3.0&quot; title=&quot;Node.js — Node.js 26.3.0 (Current)&quot;&gt;nodejs.org/en/blog/release/v26.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;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 v26.3.0 (Current) 출시.&lt;br&gt;
&lt;code&gt;Buffer.poolSize&lt;/code&gt; 기본 64 KiB으로 변경.&lt;br&gt;
HTTP 헤더 값을 검증하는 커스터마이즈하는 &lt;code&gt;httpValidation&lt;/code&gt; 옵션, 권한을 파기하는 &lt;code&gt;permission.drop&lt;/code&gt; 추가.&lt;br&gt;
Staged Publishing 지원하는 npm 11.16.0으로 업데이트&lt;/p&gt;

&lt;hr&gt;

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

&lt;p&gt;&lt;a href=&quot;https://nodejs.org/en/blog/release/v24.16.0&quot; title=&quot;Node.js — Node.js 24.16.0 (LTS)&quot;&gt;nodejs.org/en/blog/release/v24.16.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 v24.16.0 (LTS) 출시.&lt;br&gt;
&lt;code&gt;crypto.randomUUIDv7()&lt;/code&gt;으로 UUID v7 생성, &lt;code&gt;fs.stat()&lt;/code&gt;으로 &lt;code&gt;signal&lt;/code&gt; 옵션, &lt;code&gt;util.styleText()&lt;/code&gt;의 16진수 컬러 대응 추가.&lt;br&gt;
Test Runner에 테스트 실행 순서 랜덤화 맟 &lt;code&gt;AbortSignal.timeout&lt;/code&gt; 대상 목 타이머 추가, &lt;code&gt;IncomingMessage&lt;/code&gt;에 &lt;code&gt;req.signal&lt;/code&gt; 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;chrome-150-beta-blog-chrome-for-developers&quot;&gt;Chrome 150 beta  |  Blog  |  Chrome for Developers&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/blog/chrome-150-beta?hl=en&quot; title=&quot;Chrome 150 beta  |  Blog  |  Chrome for Developers&quot;&gt;developer.chrome.com/blog/chrome-150-beta?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;ReleaseNote&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Chrome 150 beta 출시.&lt;br&gt;
CSS의 &lt;code&gt;text-fit&lt;/code&gt; 프로퍼티, &lt;code&gt;background-clip: border-area&lt;/code&gt;에 의한 그라데이션 보더, &lt;code&gt;polygon()&lt;/code&gt; 둥근 모서리 지원, &lt;code&gt;focusgroup&lt;/code&gt; 속성 지원.&lt;br&gt;
IndexedDB 구현이 LevelDB에서 SQLite으로 변경, &lt;code&gt;data:&lt;/code&gt; URL의 Worker에 고유한 opaque origin 할당하도록 변경.&lt;br&gt;
&lt;code&gt;SpeechRecognition&lt;/code&gt;에 &lt;code&gt;quality&lt;/code&gt; 옵션 추가&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;voidzero-is-joining-cloudflare&quot;&gt;VoidZero is joining Cloudflare&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/voidzero-joins-cloudflare/&quot; title=&quot;VoidZero is joining Cloudflare&quot;&gt;blog.cloudflare.com/voidzero-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;cloudflare&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;vite&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;news&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Cloudflare가 Vite나 Oxc 등을 개발하는 VoidZero 매수.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://voidzero.dev/posts/voidzero-cloudflare&quot; title=&quot;VoidZero is Joining Cloudflare | VoidZero&quot;&gt;VoidZero is Joining Cloudflare | VoidZero&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;declarative-partial-updates-blog-chrome-for-developers&quot;&gt;Declarative partial updates  |  Blog  |  Chrome for Developers&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://developer.chrome.com/blog/declarative-partial-updates&quot; title=&quot;Declarative partial updates  |  Blog  |  Chrome for Developers&quot;&gt;developer.chrome.com/blog/declarative-partial-updates&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;HTML&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;WebAPI&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;DOM&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;stream&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;HTMLを宣言的に部分更新するためのAPIとして提案中の&lt;code&gt;&amp;lt;template for&amp;gt;&lt;/code&gt;について.&lt;br&gt;
&lt;code&gt;&amp;lt;template&amp;gt;&lt;/code&gt;要素と&lt;code&gt;&amp;lt;?marker&amp;gt;&lt;/code&gt;などの処理命令プレースホルダーを使い, ドキュメント内の順序に依存せずコンテンツを配信するOut-of-order streamingについて.&lt;br&gt;
合わせて利用する&lt;code&gt;setHTML()&lt;/code&gt;/&lt;code&gt;replaceWithHTML()&lt;/code&gt;/&lt;code&gt;streamHTML()&lt;/code&gt;などのJavaScript APIについても解説している.&lt;br&gt;
Chrome 148以降のフラグで利用でき, polyfillも実装されている.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;on-rendering-diffs-pierre-computer-company&quot;&gt;On Rendering Diffs :: Pierre Computer Company&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://pierre.computer/writing/on-rendering-diffs&quot; title=&quot;On Rendering Diffs :: Pierre Computer Company&quot;&gt;pierre.computer/writing/on-rendering-diffs&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;performance&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;diff&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;article&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Pierre가 개발한 diff 렌더링 라이브러리 &lt;code&gt;@pierre/diffs&lt;/code&gt; 구현 해설.&lt;br&gt;
거대한 코드 차분을 브라우저에서 효율적으로 렌더링 하기 위해서, 가상화나 메모리 최적화 수법 작성.&lt;br&gt;
sticky positioning을 반전하여 스크롤 중 공백 게시를 막는 방법, 행 범위 렌더링에서 이진 탐색, DOM 요소를 재이용함으로 GC를 피하도록 제작.&lt;br&gt;
또한, Shiki에 의한 구문 하이라이트 Worker 쓰레드화와 LRU 캐시에 대해서도 다뤄짐.&lt;/p&gt;

&lt;hr&gt;

&lt;h1 class=&quot;site-genre&quot;&gt;슬라이드, 영상&lt;/h1&gt;

&lt;hr&gt;

&lt;h2 id=&quot;tskaigi-2026&quot;&gt;TSKaigi 2026 발표 자료 모음&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://zenn.dev/yasse/articles/a7240304af804c&quot; title=&quot;TSKaigi 2026 발표 자료 모음&quot;&gt;zenn.dev/yasse/articles/a7240304af804c&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;Conference&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;slide&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;TSKaigi 2026 스라이드 자료 모음.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://2026.tskaigi.org/&quot; title=&quot;TSKaigi 2026&quot;&gt;TSKaigi 2026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;

&lt;h2 id=&quot;oxlint-speaker-deck&quot;&gt;Oxlint 커스텀 규칙 현황 - Speaker Deck&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://speakerdeck.com/syumai/oxlint-custom-rule&quot; title=&quot;Oxlint 커스텀 규칙 현황 - Speaker Deck&quot;&gt;speakerdeck.com/syumai/oxlint-custom-rule&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;Rust&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;slide&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;JavaScript&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Oxlint 커스텀 규칙에 대한 슬라이드.&lt;br&gt;
Rust로 만든 Linter인 Oxlint에서, ESLint 호환 커스텀 규칙을 추가 가능한 JS Plugin（알파판）기능과 성능에 대해 소개.&lt;br&gt;
기존의 ESLint 플러그인 동작이나 tsgolint, corsa-bind에 대해서도 다룸&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;sorakumo001-satoru&quot;&gt;SoraKumo001/satoru&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/SoraKumo001/satoru&quot; title=&quot;SoraKumo001/satoru&quot;&gt;github.com/SoraKumo001/satoru&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;HTML&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;css&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;SVG&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;PDF&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;Image&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;WebAssembly에서 동작하는 HTML를 SVG/PNG/WebP/PDF으로 변환하는 렌더링 엔진.&lt;br&gt;
렌더링에 Skia, 레이아웃에 litehtml 이용, CSS를 포함한 HTML을 이미지로 변환.&lt;br&gt;
TTF/OTF/WOFF2 포맷이나 Google Fonts 해결, PNG/JPEG/WebP/AVIF 이미지를 지원.&lt;br&gt;
Node.js/브라우저/Cloudflare Workers에서 실행 가능.&lt;/p&gt;

&lt;hr&gt;

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

&lt;hr&gt;

&lt;h2 id=&quot;microsoft-webwright-a-simple-swe-style-browser-agent-framework-that-achieves-sota-results-on-long-horizon-web-tasks&quot;&gt;microsoft/Webwright: A simple SWE style browser agent framework that achieves SOTA results on long horizon web tasks.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/microsoft/Webwright&quot; title=&quot;microsoft/Webwright: A simple SWE style browser agent framework that achieves SOTA results on long horizon web tasks.&quot;&gt;github.com/microsoft/Webwright&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;browser&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;automation&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;playwright&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Microsoft에서 만든 브라우저 에이전트 프레임워크.&lt;br&gt;
에이전트가 개별 브라우저 조작을 예측하는 것이 아닌 Playwright를 사용해 Python 코드 생성하고 실행.&lt;br&gt;
반복적인 에이전트 규칙과 디렉토리를 workspace으로 다뤄 매번 사용하고 버리면서 세션을 진행하는 방식&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;pionxzh-wakaru-javascript-decompiler-for-modern-frontend&quot;&gt;pionxzh/wakaru: 🔪📦 Javascript decompiler for modern frontend&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/pionxzh/wakaru&quot; title=&quot;pionxzh/wakaru: 🔪📦 Javascript decompiler for modern frontend&quot;&gt;github.com/pionxzh/wakaru&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;webpack&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;bundler&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;esbuild&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;minify이나 bundle된 JavaScript를 읽기 쉬운 코드로 복원하는 컴파일러.&lt;br&gt;
webpack/esbuild/Bun/Browserify 같은 bundle을 모듈 단위로 분해하는 unpacker 제공.&lt;br&gt;
Terser/Babel/SWC 트랜스파일/압축된 코드를 복원하는 unminify나, 소스맵을 지원.&lt;/p&gt;

&lt;hr&gt;

&lt;h2 id=&quot;shakya47-pip-it-up-pop-any-ui-component-into-a-floating-picture-in-picture-window-zero-config-auto-sizing-framework-agnostic-core&quot;&gt;Shakya47/pip-it-up: Pop any UI component into a floating Picture-in-Picture window. Zero config. Auto-sizing. Framework-agnostic core.&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/Shakya47/pip-it-up&quot; title=&quot;Shakya47/pip-it-up: Pop any UI component into a floating Picture-in-Picture window. Zero config. Auto-sizing. Framework-agnostic core.&quot;&gt;github.com/Shakya47/pip-it-up&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;React&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;library&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;

&lt;p&gt;Document Picture-in-Picture API를 다루는 React 컴포넌트 라이브러리.&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;part-4a58ea7c7ae20ff7&quot;&gt;기본부터 탄탄히 배우는 프론트엔드 테스트 입문 | 기술평론사&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://gihyo.jp/book/2026/978-4-297-15704-3&quot; title=&quot;기본부터 탄탄히 배우는 프론트엔드 테스트 입문 | 기술평론사&quot;&gt;gihyo.jp/book/2026/978-4-297-15704-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;JavaScript&lt;/span&gt; &lt;span class=&quot;jser-tag&quot;&gt;test&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년 6월 26일 발매.&lt;br&gt;
프론트엔드 테스트에 대한 도서&lt;/p&gt;

&lt;hr&gt;
</description>
        <pubDate>Tue, 09 Jun 2026 12:06:21 +0900</pubDate>
        <link>https://jser.info/ko/2026/06/09/pnpm11.5-node.js26.3.0-cloudflare-void0/</link>
        <guid isPermaLink="true">https://jser.info/ko/2026/06/09/pnpm11.5-node.js26.3.0-cloudflare-void0/</guid>
        
        <category>pnpm</category>
        
        <category>nodejs</category>
        
        <category>cloudflare</category>
        
        <category>vite</category>
        
        <category>news</category>
        
        
        <category>JSer</category>
        
      </item>
    
  </channel>
</rss>
