Skip to content

Commit b839ac9

Browse files
authored
translate: 2025-05-07 article
1 parent 1895614 commit b839ac9

2 files changed

+247
-1
lines changed

_i18n/ja/_posts/2025/2025-05-07-koa-v3.0.0-node.js-24node.js-18-eol-allfunctionscalledonload.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ V8エンジンに新しいコンパイルヒントの仕組みが実装されて
5858
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>
5959

6060
React Router v7.5.2リリース。
61-
`X-React-Router-Prerender-Data`ヘッダーと`X--React-Router-SPA-Mode`ヘッダーに関する脆弱性を修正するセキュリティ修正
61+
`X-React-Router-Prerender-Data`ヘッダーと`X-React-Router-SPA-Mode`ヘッダーに関する脆弱性を修正するセキュリティ修正
6262

6363
- [URL manipulation via Host / X-Forwarded-Host headers · Advisory · remix-run/react-router](https://github.com/remix-run/react-router/security/advisories/GHSA-4q56-crqp-v477 "URL manipulation via Host / X-Forwarded-Host headers · Advisory · remix-run/react-router")
6464
- [React Router and the Remix’ed path - zhero\_web\_security](https://zhero-web-sec.github.io/research-and-things/react-router-and-the-remixed-path "React Router and the Remix’ed path - zhero\_web\_security")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
---
2+
title: "2025-05-07: koa v3.0.0, Node.js 24とNode.js 18 EOL, `//# allFunctionsCalledOnLoad`"
3+
author: "azu"
4+
translator: rewrite0w0
5+
layout: post
6+
date: 2025-05-07T00:31:48.346Z
7+
category: JSer
8+
tags:
9+
- nodejs
10+
- React
11+
- esbuild
12+
- Firefox
13+
- polyfill
14+
15+
---
16+
17+
JSer.info #734 - Koa v3.0.0가 출시되었습니다.
18+
19+
- [Release v3.0.0 · koajs/koa](https://github.com/koajs/koa/releases/tag/v3.0.0)
20+
- [koa/docs/migration-v2-to-v3.md at master · koajs/koa](https://github.com/koajs/koa/blob/master/docs/migration-v2-to-v3.md)
21+
22+
Node.js 18 지원 종료, Generator 사용한 Middleware 지원 종료 등 파괴적 변경도 포함됩니다. 새로운 기능으로, `app.currentContext`으로 AsyncLocalStorage 사용해 현재 컨텍스트 얻는 방법 지원, `Blob`/`ReadableStream`/`Response` 지원, 커스텀 스트림 지원이 추가되었습니다.
23+
24+
----
25+
26+
Node.jsのv24가 출시되었습니다.
27+
28+
- [Node.js — Node v24.0.0 (Current)](https://nodejs.org/en/blog/release/v24.0.0)
29+
30+
Node.js 24에는, V8 13.6으로 업데이트, npm 11 동봉, AsyncLocalStorage의 AsyncContextFrame이 기본값, `URLPattern` 글로벌 추가 변경이 포함됩니다. 또한, 퍼미션 모델이 `--permission` 플래그로 이용 가능합니다.
31+
32+
또한, Node.js 18는 2025년 4월 30일로 EOL(End Of Support)가 됩니다.
33+
34+
- [Node.js — Node.js Releases](https://nodejs.org/en/about/previous-releases)
35+
36+
----
37+
38+
V8 엔진에 새로운 컴파일 힌트 구조가 구현됩니다.
39+
40+
- [Giving V8 a Heads-Up: Faster JavaScript Startup with Explicit Compile Hints · V8](https://v8.dev/blog/explicit-compile-hints)
41+
42+
`//# allFunctionsCalledOnLoad` 주석으로, JavaScript 파일의 eager compilation 지정 가능한 구조로 구현됩니다. 이로 인해, 파일 내 함수 컴파일링 타이밍을 제어할 수 있고, 기동 시 성능 최적화가 가능합니다.
43+
한 편, 뭐든지 컴파일하면 시간과 메모리 소비하므로 이 문제에 대해서도 다룹니다.
44+
45+
- [WICG/explicit-javascript-compile-hints-file-based: This proposal introduces a new magic comment that signals to browsers that the functions in a JavaScript file are likely to be needed by the website. Spec draft: https://wicg.github.io/explicit-javascript-compile-hints-file-based/](https://github.com/WICG/explicit-javascript-compile-hints-file-based)
46+
47+
----
48+
49+
{% include inline-support.html %}
50+
51+
----
52+
53+
<h1 class="site-genre">헤드라인</h1>
54+
55+
----
56+
57+
## react-router/CHANGELOG.md at main · remix-run/react-router
58+
[github.com/remix-run/react-router/blob/main/CHANGELOG.md#v752](https://github.com/remix-run/react-router/blob/main/CHANGELOG.md#v752 "react-router/CHANGELOG.md at main · remix-run/react-router")
59+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p>
60+
61+
React Router v7.5.2 출시.
62+
`X-React-Router-Prerender-Data`헤더와 `X-React-Router-SPA-Mode` 헤더 관련 취약성 보안 수정
63+
64+
- [URL manipulation via Host / X-Forwarded-Host headers · Advisory · remix-run/react-router](https://github.com/remix-run/react-router/security/advisories/GHSA-4q56-crqp-v477 "URL manipulation via Host / X-Forwarded-Host headers · Advisory · remix-run/react-router")
65+
- [React Router and the Remix’ed path - zhero\_web\_security](https://zhero-web-sec.github.io/research-and-things/react-router-and-the-remixed-path "React Router and the Remix’ed path - zhero\_web\_security")
66+
67+
----
68+
69+
## Release v0.25.3 · evanw/esbuild
70+
[github.com/evanw/esbuild/releases/tag/v0.25.3](https://github.com/evanw/esbuild/releases/tag/v0.25.3 "Release v0.25.3 · evanw/esbuild")
71+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">esbuild</span> <span class="jser-tag">ReleaseNote</span></p>
72+
73+
esbuild v0.25.3 출시.
74+
`--serve=` 옵션으로 커스텀 호스트 지정을 가능하도록, CSS Nesting 제어 추가
75+
76+
77+
----
78+
79+
## Firefox 138.0, See All New Features, Updates and Fixes
80+
[www.mozilla.org/en-US/firefox/138.0/releasenotes/](https://www.mozilla.org/en-US/firefox/138.0/releasenotes/ "Firefox 138.0, See All New Features, Updates and Fixes")
81+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Firefox</span> <span class="jser-tag">ReleaseNote</span></p>
82+
83+
Firefox 138 출시.
84+
`importmap``integrity` 지원, `Error.captureStackTrace()` 지원, ES Proposal Stage 3의 `Error.isError()` 지원.
85+
Import Attributes 사용한 JSON의 import 지원, `Clear-Site-Data`에서 `cache` directive 지원.
86+
FedCM API의 Login Status API 지원, Web Audio API의 Message Port 지원.
87+
플래그 조건으로 MutationEvent 삭제, HTML Sanitizer API 지원
88+
89+
- [Firefox 138 for developers - Mozilla | MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/138 "Firefox 138 for developers - Mozilla | MDN")
90+
91+
----
92+
93+
## Release 3.42.0 - 2025.04.30 · zloirock/core-js
94+
[github.com/zloirock/core-js/releases/tag/v3.42.0](https://github.com/zloirock/core-js/releases/tag/v3.42.0 "Release 3.42.0 - 2025.04.30 · zloirock/core-js")
95+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">polyfill</span> <span class="jser-tag">ReleaseNote</span></p>
96+
97+
core-js v3.42.0 출시.
98+
Map upsert proposal 갱신, Iterator Helpers를 ES2025 사양에 포함하는 변경
99+
100+
101+
----
102+
103+
## Deno 2.3: Improved deno compile, local npm packages, and more
104+
[deno.com/blog/v2.3](https://deno.com/blog/v2.3 "Deno 2.3: Improved deno compile, local npm packages, and more")
105+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">ReleaseNote</span></p>
106+
107+
Deno v2.3 출시.
108+
`deno compile`로 FFI와 Node.js Native Addon 지원, 로컬 npm 패키지를 참조하도록, `deno fmt` 옵션 추가.
109+
Windows의 `deno` 바이너리에 코드 서명하도록 변경
110+
111+
112+
----
113+
114+
## ESLint v9.26.0 released - ESLint - Pluggable JavaScript Linter
115+
[eslint.org/blog/2025/05/eslint-v9.26.0-released/](https://eslint.org/blog/2025/05/eslint-v9.26.0-released/ "ESLint v9.26.0 released - ESLint - Pluggable JavaScript Linter")
116+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">ReleaseNote</span></p>
117+
118+
ESLint v9.26.0 출시.
119+
`eslint --mcp`에서 MCP서버로 기동하도록, `no-unused-expressions` 규칙에 `ignoreDirectives` 옵션 추가
120+
121+
122+
----
123+
124+
## Electron 36.0.0 | Electron
125+
[www.electronjs.org/blog/electron-36-0](https://www.electronjs.org/blog/electron-36-0 "Electron 36.0.0 | Electron")
126+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Electron</span> <span class="jser-tag">ReleaseNote</span></p>
127+
128+
Electron 36.0.0 출시.
129+
Chromium 136, V8 13.6, Node 22.14.0으로 업그레이드.
130+
macOS의 Writing Tools나 Autofill, Services 메뉴 지원하는 새로운 `menu.popup` 옵션 추가.
131+
GTK 4가 GNOME로 기본 변경. `NativeImage.getBitmap()` 비권장으로, `session.loadExtension` 비권장되고 `Extensions` 객체로 이동.
132+
133+
134+
----
135+
136+
## Release v3.0.0 · koajs/koa
137+
[github.com/koajs/koa/releases/tag/v3.0.0](https://github.com/koajs/koa/releases/tag/v3.0.0 "Release v3.0.0 · koajs/koa")
138+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>
139+
140+
Koa v3.0.0 출시.
141+
Node.js 18 미만 지원 종료, Generator 사용한 Middlewa 지원 종료, `res.redirect('back')` 삭제 `ctx.back()` 추가.
142+
`app.currentContext`에서 AsyncLocalStorage 사용한 현재 컨텍스트 얻기 지원.`Blob`/`ReadableStream`/`Response` 지원, 커스텀 스트림 지원
143+
144+
- [koa/docs/migration-v2-to-v3.md at master · koajs/koa](https://github.com/koajs/koa/blob/master/docs/migration-v2-to-v3.md "koa/docs/migration-v2-to-v3.md at master · koajs/koa")
145+
146+
----
147+
148+
## Node.js — Node.js Releases
149+
[nodejs.org/en/about/previous-releases](https://nodejs.org/en/about/previous-releases "Node.js — Node.js Releases")
150+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">news</span></p>
151+
152+
Node.js 18는 2025년 4월 30일로 EOL(End Of Support).
153+
154+
155+
----
156+
157+
## Release 21.0.0 · nrwl/nx
158+
[github.com/nrwl/nx/releases/tag/21.0.0](https://github.com/nrwl/nx/releases/tag/21.0.0 "Release 21.0.0 · nrwl/nx")
159+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p>
160+
161+
Nx 21.0.0 출시.
162+
Node.js 20.19.0 이상 필요, `outputStyle=compact` 삭제, `readWorkspaceConfig` 폐지 등 파괴적 변경 포함.
163+
continuous task 추가, 태스크용 Terminal UI 기능 추가, GitLab 출시 지원
164+
165+
- [RFC: Continuous Tasks · nrwl/nx · Discussion #29025](https://github.com/nrwl/nx/discussions/29025 "RFC: Continuous Tasks · nrwl/nx · Discussion #29025")
166+
167+
----
168+
169+
## Release v0.25.4 · evanw/esbuild
170+
[github.com/evanw/esbuild/releases/tag/v0.25.4](https://github.com/evanw/esbuild/releases/tag/v0.25.4 "Release v0.25.4 · evanw/esbuild")
171+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">esbuild</span> <span class="jser-tag">ReleaseNote</span></p>
172+
173+
esbuild v0.25.4 출시.
174+
개발 서버에 `cors` 옵션에서 `Access-Control-Allow-Origin` 헤더를 설정 가능.
175+
176+
177+
----
178+
179+
## Node.js — Node v24.0.0 (Current)
180+
[nodejs.org/en/blog/release/v24.0.0](https://nodejs.org/en/blog/release/v24.0.0 "Node.js — Node v24.0.0 (Current)")
181+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>
182+
183+
Node.js v24.0.0 출시.
184+
V8 13.6으로 업그레이드, npm 11 동봉, AsyncLocalStorage가 AsyncContextFrame를 기본적으로 사용하도록.
185+
`URLPattern` 글로벌 추가, 퍼미션 모델이 `--permission` 플래그 이용하게끔, 테스트 러너 개선, Undici 7 동봉.
186+
`url.parse()` 비권장으로 변경.
187+
2025년 10월에 LTS될 예정.
188+
189+
- [What’s New with Node.js 24 | OpenJS Foundation](https://openjsf.org/blog/nodejs-24-released "What’s New with Node.js 24 | OpenJS Foundation")
190+
191+
----
192+
<h1 class="site-genre">읽을거리</h1>
193+
194+
----
195+
196+
## 프론트엔드 API 콜할 때 에러 핸들링을 가볍게 정리(Fetch API・typescript-fetch・TanStack Query) - 카미나시 엔지니어 블로그
197+
[kaminashi-developer.hatenablog.jp/entry/2025/04/30/080000](https://kaminashi-developer.hatenablog.jp/entry/2025/04/30/080000 "프론트엔드 API 콜할 때 에러 핸들링을 가볍게 정리(Fetch API・typescript-fetch・TanStack Query) - 카미나시 엔지니어 블로그")
198+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Fetch</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span> <span class="jser-tag">HTTP</span></p>
199+
200+
Fetch API/Open API의 `typescript-fetch`, TanStack Query의 Fetch 예외 처리에 대하여
201+
202+
203+
----
204+
205+
## Giving V8 a Heads-Up: Faster JavaScript Startup with Explicit Compile Hints · V8
206+
[v8.dev/blog/explicit-compile-hints](https://v8.dev/blog/explicit-compile-hints "Giving V8 a Heads-Up: Faster JavaScript Startup with Explicit Compile Hints · V8")
207+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">V8</span> <span class="jser-tag">article</span></p>
208+
209+
`//# allFunctionsCalledOnLoad` 주석으로, JavaScript 파일을 eager compilation 하는 구조를 V8에 구현한 이야기.
210+
JavaScript는 함수를 컴파일하려면 파일을 파싱할 필요가 있기에, 컴파일이 필요한지 판단하는데 시간이 걸림. 그래서, 파일 초반부에 주석으로 컴파일할 필요가 있다 판단 가능하도록 하게 하는 구조
211+
212+
213+
----
214+
<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1>
215+
216+
----
217+
218+
## Intent UI
219+
[intentui.com/](https://intentui.com/ "Intent UI")
220+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">UI</span> <span class="jser-tag">library</span></p>
221+
222+
React Aria Components 기반 shadcn스러운 복사 붙여넣기 가능한 컴포넌트 라이브러리
223+
224+
225+
----
226+
227+
## zumerlab/snapdom: snapDOM captures DOM nodes as images with exceptional speed and accuracy.
228+
[github.com/zumerlab/snapdom](https://github.com/zumerlab/snapdom "zumerlab/snapdom: snapDOM captures DOM nodes as images with exceptional speed and accuracy.")
229+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">SVG</span> <span class="jser-tag">Image</span> <span class="jser-tag">library</span></p>
230+
231+
SVG의 `<foreignObject>`를 사용해 DOM 요소를 렌더링 하는 라이브러리.
232+
Shadow DOM, 의사 요소, 배경 렌더링, 폰트 포함이나 data 속성 제외에 대응
233+
234+
- [bubkoo/html-to-image: ✂️ Generates an image from a DOM node using HTML5 canvas and SVG.](https://github.com/bubkoo/html-to-image "bubkoo/html-to-image: ✂️ Generates an image from a DOM node using HTML5 canvas and SVG.")
235+
236+
----
237+
238+
## pulsar-edit/pulsar: A Community-led Hyper-Hackable Text Editor
239+
[github.com/pulsar-edit/pulsar](https://github.com/pulsar-edit/pulsar "pulsar-edit/pulsar: A Community-led Hyper-Hackable Text Editor")
240+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">atom</span> <span class="jser-tag">editor</span> <span class="jser-tag">JavaScript</span></p>
241+
242+
Atom Editor를 Fork한 에디터.
243+
Atom를 위해 만들어진 패키지도 동작하도록 함
244+
245+
246+
----

0 commit comments

Comments
 (0)