Skip to content

translate: 2025-04-09 article #1274

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 10, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
---
title: "2025-04-09: express 5.1(정식 출시), Safari 18.4, ESLint bulk suppressions"
author: "azu"
translator: rewrite0w0
layout: post
date: 2025-04-09T03:51:38.606Z
category: JSer
tags:
- safari
- css
- Tools
- nodejs
- express

---

JSer.info #731 - Express 5.1.0가 출시되었습니다.

- [[email protected]: Now the Default on npm with LTS Timeline](https://expressjs.com/2025/03/31/v5-1-latest-release.html)

이 버전은 Express 5.x 시리즈 정식 출시입니다.
npm에서 `express`는 기본 버전도 5.x으로 변경됩니다. 문서가 업데이트 되었고, 4.x부터 5.x으로 이행 지원하기 위한 codemod 마이그레이션도 제공됩니다.

동시에 LTS(Long Term Support)정책도 발표, Express 4.x는 2026년 10월 1일에 지원 종료할 예정입니다.

---

Safari 18.4가 출시되었습니다.

- [WebKit Features in Safari 18.4 | WebKit](https://webkit.org/blog/16574/webkit-features-in-safari-18-4/)

큰 기능으로 Declarative Web Push 지원이 추가되었습니다. 이는 Service Worker를 이용하지 않고 푸쉬 알람 관리하는 새로운 구조입니다.

- [Meet Declarative Web Push | WebKit](https://webkit.org/blog/16535/meet-declarative-web-push/)


CSS 관련으로는 `shape()` 함수, `writing-mode` 옆으로 쓰기 모드, `text-autospace` 지원도 추가되었습니다. Web API에는 Image Capture API 지원, iOS/iPad OS에서 Screen Wake Lock API 지원도 포함되었습니다.
또한, Cookie Store API 지원이 포함되었습니다. JavaScript 관련으로는 ES2025 Iterator Helpers 지원, Stage 3 `Error.isError` 지원도 추가되었습니다.

---

다음 글에서는, ESLint의 bulk suppressions 기능에 대해 해설합니다

- [Introducing bulk suppressions - ESLint - Pluggable JavaScript Linter](https://eslint.org/blog/2025/04/introducing-bulk-suppressions/)

bulk suppression는 의존 코드 기반으로 ESLint 도입할 때 과제를 해결하기 위한 신기능입니다.
bulk suppressions 사용하면, 기존 모든 규칙 위반을 제어하면서, 새롭게 추가된 파일이나 코드에 대해서만 규칙을 적용할 수 있습니다.
구체적으로는 `eslint-suppressions.json` 생성, 그 파일에 기록된 위반만을 무시하는 구조입니다.
이로 인하여, 새롭게 작성된 코드는 추가한 Lint 규칙을 적용하면서, 기존 코드는 계단적으로 이행할 수 있습니다.

----

{% include inline-support.html %}

----
<h1 class="site-genre">헤드라인</h1>

----

## [email protected]: Now the Default on npm with LTS Timeline
[expressjs.com/2025/03/31/v5-1-latest-release.html](https://expressjs.com/2025/03/31/v5-1-latest-release.html "[email protected]: Now the Default on npm with LTS Timeline")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">express</span> <span class="jser-tag">ReleaseNote</span></p>

Express 5.1.0 출시.
express 5.x 정식 출시 버전.
문서 업데이트, codemod으로 마이그레이션 도구 제공.
또한, LTS Policy 관련 정의되어, 4.x는 2026-10-01에 지원 종료됨.

----

## WebKit Features in Safari 18.4 | WebKit
[webkit.org/blog/16574/webkit-features-in-safari-18-4/](https://webkit.org/blog/16574/webkit-features-in-safari-18-4/ "WebKit Features in Safari 18.4 | WebKit")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">safari</span> <span class="jser-tag">ReleaseNote</span></p>

Safari 18.4 출시.
Declarative Web Push 지원.
CSS `shape()`/`writing-mode`로 옆으로 쓰기 모드/`text-autospace` 지원.
HTML `<input type="color" />` 개선.
Web Inspector의 Local Overrides로 일부 데이터만 변경가능, `console.screenshot()` API 추가.
Image Capture API 지원, Screen Wake Lock API가 iOS/iPad OS에서도 동작하도록, Cookie Store API 지원.
ES2025 Iterator Helpers 지원, Stage 3 `Error.isError` 지원.

----

## Introducing bulk suppressions - ESLint - Pluggable JavaScript Linter
[eslint.org/blog/2025/04/introducing-bulk-suppressions/](https://eslint.org/blog/2025/04/introducing-bulk-suppressions/ "Introducing bulk suppressions - ESLint - Pluggable JavaScript Linter")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">article</span></p>

ESLint의 bulk suppressions 관련하여.
한 번에 모든 에러를 제어하고, 새로 추가된 파일에 대하여 Lint 에러 표현하는 구조.

----
<h1 class="site-genre">읽을거리</h1>

----

## Meet Declarative Web Push | WebKit
[webkit.org/blog/16535/meet-declarative-web-push/](https://webkit.org/blog/16535/meet-declarative-web-push/ "Meet Declarative Web Push | WebKit")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">safari</span> <span class="jser-tag">article</span></p>

Safari 18.4에서 지원되는 Declarative Web Push 관련해서.
Safari는 ITP 대응하기 위해, 일정시간 접근이 없는 Service Worker(SW)도 삭제했지만, Web Push는 SW에 의존했었기에 푸쉬를 사용하지 못했던 경우가 있었다.
Declarative Web Push는 Service Worker을 이용하지 않고 푸쉬 알람 관리 가능

- [explainers/DeclarativeWebPush at main · WebKit/explainers](https://github.com/WebKit/explainers/tree/main/DeclarativeWebPush "explainers/DeclarativeWebPush at main · WebKit/explainers")

----

## Modern Cookie Management with the Cookie Store API
[www.telerik.com/blogs/modern-cookie-management-cookie-store-api](https://www.telerik.com/blogs/modern-cookie-management-cookie-store-api "Modern Cookie Management with the Cookie Store API")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">WebPlatformAPI</span> <span class="jser-tag">article</span></p>

Cookie Store API 관련.
`document.cookie`과 차이나 Cookie Store API 사용한 Cookie 읽고 쓰기 관련하여


----

## Introducing bulk suppressions - ESLint - Pluggable JavaScript Linter
[eslint.org/blog/2025/04/introducing-bulk-suppressions/](https://eslint.org/blog/2025/04/introducing-bulk-suppressions/ "Introducing bulk suppressions - ESLint - Pluggable JavaScript Linter")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">article</span></p>

ESLint bulk suppressions 관련하여.
한 번에 모든 에러를 제어해, 새로 추가된 파일에 대해 Lint 에러 표현하는 구조.


----

## 다시 이해하는 ArrayBuffer - JavaScript으로 바이너리 데이터 다루는 방법 - ICS MEDIA
[ics.media/entry/250408/](https://ics.media/entry/250408/ "다시 이해하는 ArrayBuffer - JavaScript으로 바이너리 데이터 다루는 방법 - ICS MEDIA")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span></p>

ArrayBuffer과 TypedArray 관련 해설 글.
통상 배열(Array)과 차이나 TypedArray 사용 방법에 대하여


----
<h1 class="site-genre">슬라이드, 영상</h1>

----

## React Query API Design – Lessons Learned - Dominik Dorfmeister - YouTube
[www.youtube.com/watch?v&#x3D;l3PxErcKeAI](https://www.youtube.com/watch?v=l3PxErcKeAI "React Query API Design – Lessons Learned - Dominik Dorfmeister - YouTube")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">slide</span> <span class="jser-tag">video</span></p>

React Query의 API 디자인으로부터 배운 것을 발표.


----
<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1>

----

## harrysolovay/standard-json-schema: Turn standard types into JSON schemas
[github.com/harrysolovay/standard-json-schema](https://github.com/harrysolovay/standard-json-schema "harrysolovay/standard-json-schema: Turn standard types into JSON schemas")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">JSON</span> <span class="jser-tag">library</span></p>

Standard Schema를 JSON Schema으로 변환하는 Adaptor 라이브러리.
zod/arktype/valibot/typebox으로 대응하고 있고, 각각 peerDependencies로 정의

- [\[Feature Request\] support \`toJSONSchema\` · Issue #21 · standard-schema/standard-schema](https://github.com/standard-schema/standard-schema/issues/21 "\[Feature Request\] support \&#x60;toJSONSchema\&#x60; · Issue #21 · standard-schema/standard-schema")

----

## bytecodealliance/StarlingMonkey: The StarlingMonkey JS runtime
[github.com/bytecodealliance/StarlingMonkey](https://github.com/bytecodealliance/StarlingMonkey "bytecodealliance/StarlingMonkey: The StarlingMonkey JS runtime")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">WebAssembly</span></p>

Wasm 최적환 된 SpiderMonkey 기반 JavaScript 엔진


----

## holepunchto/bare: Small and modular JavaScript runtime for desktop and mobile
[github.com/holepunchto/bare](https://github.com/holepunchto/bare "holepunchto/bare: Small and modular JavaScript runtime for desktop and mobile")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">nodejs</span> <span class="jser-tag">Tools</span></p>

임베디드 모바일에서 사용 목적 JavaScript Runtime.
libjs JavaScript 엔진에 의존하지 않는 Binding 정의해서, 엔진으로는 V8/JSC/QuickJS/JerryScript 이용 가능.
CJS/ESM 모듈의 구조나 Native Addon 구조, 경량 스레드 지원

- [Bare | Fast, Lightweight Runtime for Modular JavaScript Apps](https://bare.pears.com/ "Bare | Fast, Lightweight Runtime for Modular JavaScript Apps")

----

## toss/es-git: A modern Git library built for Node.js with blazing-fast installation and rock-solid stability, powered by N-API.
[github.com/toss/es-git](https://github.com/toss/es-git "toss/es-git: A modern Git library built for Node.js with blazing-fast installation and rock-solid stability, powered by N-API.")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">Rust</span> <span class="jser-tag">git </span> <span class="jser-tag">library</span></p>

Node.js의 N-API를 사용한 Git binding 라이브러리


----