Fork me on GitHub

2022-03-24: Deno 1.20, Faker v6.0.0, 최신 Next.js 사용 시의 개선점

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #584 - Deno 1.20가 릴리스 됐다.

V8와 Rust 간의 OP 코드를 최적화 하여 성능이 개선됐다.
요청의 Accept-Encoding 헤더를 보고 자동으로 HTTP Response Body를 압축하도록 변경됐다.
또, deno bench 명령어, deno task 명령어가 추가됐고 deno.json에서 importMap 옵션을 지원한다.

Deno 1.19에서 Deno test를 통한 자원 누수(resource leak)를 감지하는 구조가 구현됐으나 이로인해 성능이 저하되는 경우가 있었다.
따라서, Deno 1.20에서는 deno test--trace-ops 플래그를 붙였을 때에만 디버깅 용 상세 정보를 표시하도록 변경됐다.

비호환 변경으로 Worker와 Test에 대한 퍼미션 기본값이 "inherit"에서 "none"으로 변경됐다. 지금까지는 암묵적으로 퍼미션이 상속됐었으나 Deno 1.20 부터는 "inherit"을 명시하지 않으면 상속되지 않는다.

단, v1.20.1에서는 이 변경에 버그가 있어 위 기능이 잘 동작하지 않는다.
그래서, 실제로 이 비호환 변경이 들어가는 것은 1.20.2 이후로 보면 될 거 같다.


Faker가 커뮤니티 주도로 유지 보수하기로 한 이후의 첫 메이저 릴리스인 Faker 6.0.0가 릴리스 됐다.

패키지는 @faker-js/faker으로 공개됐다.
변경 사항으로 ESM 지원, TypeScript 타입 정의 파일이 패키지 내 포함됐다.

이전 faker 패키지에서 이전하는 방법은 아래 문서에 잘 정리돼 있으니 참고한다.

Faker가 커뮤니티 주도로 유지보수 하게 된 경위에 대해서는 아래 문서에 정리돼 있다.


Upgrading Next.js for instant performance improvements – Vercel에는 Next.js를 업데이트하고 새로운 기능을 사용했을 때 Next.js 데모 페이지(VRS)의 성능이 어떻게 개선됐는지 정리 돼 있다.
단순히 Next.js의 버전만 업데이트한 게 아니라 최적화를 위해 코드로 다양하게 변경 했으니 참고바란다.

다음 Pull Request를 통해서 실제 관련 내용을 어떻게 변경하고 반영했는지 살펴 볼 수 있다.


헤드라인


Prettier 2.6: new singleAttributePerLine option and new JavaScript features! · Prettier

prettier.io/blog/2022/03/16/2.6.0.html

JavaScript Tools ReleaseNote

Prettier 2.6 릴리스.
TypeScript 4.6 지원, parser 옵션으로 acorn 추가, --no-plugin-search 플래그 추가, .swcrc 파일을 json 파서로 다루도록 수정.


Deno 1.20 Release Notes

deno.com/blog/v1.20

deno ReleaseNote

Deno 1.20 릴리스.
성능 개선, Accept-Encoding을 보고 자동으로 HTTP Response Body을 압축하도록 개선.
deno bench 커맨드와 deno task 커맨드가 추가 됐고, deno.json에서 importMap 옵션을 지원한다.
deno test--trace-ops 플래그를 붙였을 때에만 디버깅 용 상세 정보를 표시하도록 변경.
비호환 변경으로 Worker과 Test에 대한 퍼미션 기본 값이 "inherit"에서 "none"으로 변경 됐다.


Release v6.0.0 · faker-js/faker

github.com/faker-js/faker/releases/tag/v6.0.0

JavaScript library testing ReleaseNote

Faker 6.0.0 릴리스.
Faker를 커뮤니티에서 유지보수 하기로 한 후의 최초 메이저 릴리스.
패키지는 @faker-js/faker로 공개돼 있다. ESM을 지원하고 TypeScript 정의 파일을 패키지 내 포함한다.


Node v17.8.0 (Current) | Node.js

nodejs.org/en/blog/release/v17.8.0/

node.js ReleaseNote

Node.js 17.8.0 릴리스.
PerformanceObserverhttp 트레이스가 가능하다.


Parcel v2.4.0

parceljs.org/blog/v2-4-0/

JavaScript Tools ReleaseNote

Parcel v2.4.0 릴리스.
@parcel/css가 기본 파서로 설정됐다.
이에 따라 cssnano / autoprefixer / PostCSS의 설정 파일 등이 무시되도록 변경됐다.


아티클


An update on the New Architecture Rollout · React Native

reactnative.dev/blog/2022/03/15/an-update-on-the-new-architecture-rollout

React Native article

React Native 0.68.0에는 옵트-인으로 사용할 수 있는 새로운 Architecture Template이 도입되면서 기본 JavaScript 엔진으로 Hermes가 활성화 됐다.


Upgrading Next.js for instant performance improvements – Vercel

vercel.com/blog/upgrading-nextjs-for-instant-performance-improvements

Next.js article

데모 앱(VRS)의 Next.js 버전 업데이트 사례를 근거로 Next.js의 최신 버전에는 어떤 차이가 있는지 또, 성능이 얼마나 향상되는지 소개하는 글.
getStaticProps를 사용한 초기 데이터 취득 개선, next/image를 이용한 이미지 최적화, Dynamic Routes / API Routes와 NextAuth를 사용했을 때 이점 등을 소개.
또, next/dynamic을 사용한 동적 임포트 뿐 아니라 Font 인라인화, 개발 성능 향상 등에 대해서도 다루고 있다.


PgTyped - Node.js에서 타입 안전하게 SQL를 관리하려면 | HiCustomer Lab - HiCustomer Developer's Blog(일본어)

tech.hicustomer.jp/posts/type-safe-sql-library-for-nodejs/

PostgreSQL TypeScript article

SQL에서 TypeScript의 타입과 코드를 생성하는 PgTyped 소개


사이트, 서비스, 문서


A11yAutomation

a11y-automation.dev/

accessibility document Tools

접근성 문제를 항목 별로 소개함과 동시에 Lint 뿐 아니라 자동 / 수동 테스트를 이용한 검사 방법, 관련 WCAG 문서 등이 정리돼 있는 사이트.


Shader Park

shaderpark.com/

WebGL webservice JavaScript

High Level API(GLSL)로 2D / 3D 쉐이더를 인터렉티브하게 작성하고 등록할 수 있는 플랫폼.


소프트웨어, 도구, 라이브러리


wilsonzlin/minify-html: Extremely fast and smart HTML + JS + CSS minifier, available for Rust, Node.js, Python, Java, and Ruby

github.com/wilsonzlin/minify-html

HTML Bluetooth library Rust

Rust 기반의 HTML minifier.
Rust / Node / Java / Python / Ruby 용 패키지도 함께 제공한다.


twitterdev/twitter-api-typescript-sdk: A TypeScript SDK for the Twitter API

github.com/twitterdev/twitter-api-typescript-sdk

twitter node.js library JavaScript TypeScript

Twitter 공식 TypeScript(JavaScript) SDK.
현재 베타 버전이며 Twitter API V2를 지원한다.


Pull Request to this article
JSer.info Slackに参加する