Fork me on GitHub

2020-04-28: Node.js 14.0.0, Got 11.0.0, Cost of JavaScript Frameworks

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #485 - Node.js v14.0.0이 릴리스됐습니다.

Node.js 14는 2020-10-20에 LTS가 될 예정인 메이저 버전입니다.

V8 8.1로 갱신됐고 크래시 리포트 등을 취할 수 있는 Diagnostic Report가 Stable로 변경됐으며 fs/promises가 추가됐습니다.
또, 실험적으로 WASI를 지원하며 ECMAScript Modules의 Experimental Warning이 삭제(경고가 출력되지 않을 뿐 Stability는 Experimental)됐습니다.


Node.js 용 HTTP 클라이언트 라이브러리 Got 11.0.0이 릴리스됐습니다.

Electron의 net 모듈 지원이 종료됐으며 Pagination API가 Stable이 됐습니다.
또, 옵트인으로 HTTP/2를 지원합니다.

그 외로 agent 옵션을 http / https / http2로 별도로 지정할 수 있으며 dnsCache 옵션 설정 방법이 변경됐습니다.


The Cost of Javascript Frameworks - Web Performance Consulting | TimKadlec.com에서는 HTTP Archive데이터를 활용해 특정 프레임워크를 사용하고 있는 사이트를 비롯한 여러 지표가 정리돼 있습니다.

jQuery, Vue, Angular, React를 사용하고 있는 사이트의 파일 크기, 모바일 / 데스크탑에서의 CPU 소비 시간 등 여러 지표가 백분위수(percentile)로 비교돼 있습니다.
또, 여러개의 라이브러리를 조합하고 있는 사이트(주로 jQuery + 기타 프레임워크)와 프레임워크 하나만 사용하고 있는 사이트에 대해서(아마 그러한 사이트는 마이그레이션 중일 것)도 정리돼 있으며 React만 사용하는 사이트에서 자바스크립트가 사용하는 메인 스레드의 CPU 처리 시간 편차가 큰 부분도 함께 다루고 있습니다.


[PR] JavaScript Primer를 발매했습니다.

JavaScript Primer 도서가 출판 돼 지금 구매할 수 있습니다.

자세한 내용은 아래 글을 참고해주세요.


헤드라인


Release v11.0.0 · sindresorhus/got

github.com/sindresorhus/got/releases/tag/v11.0.0

node.js library ReleaseNote

Node.js 용 HTTP 클라이언트 Got 11.0.0이 릴리스됐습니다.
HTTP2를 옵트인으로 지원합니다.
electron.net 지원이 종료됐고 Pagination API가 Stable로 변경됐으며 got.streamencoding 옵션이 변경과 dnsCache 옵션이 변경됐습니다.


Node v14.0.0 (Current) | Node.js

nodejs.org/en/blog/release/v14.0.0/

node.js ReleaseNote

Node.js 14.0.0이 릴리스됐습니다.
V8 8.1으로 갱신됐고 Diagnostic Report가 Stable로 변경됐으며 fs/promises가 추가됐습니다.
Experimental로 WASI를 지원하며 ECMAScript Modules의 Experimental Warning 메시지가 삭제됐습니다.


Release 1.0.0 · markedjs/marked

github.com/markedjs/marked/releases/tag/v1.0.0

Markdown library ReleaseNote

Markdown 파서, 컴파일러 のmarked 1.0.0이 릴리스됐습니다.
marked.use를 이용해 파서를 커스터마이즈 할 수 있습니다.


ESLint v7.0.0-rc.0 released - ESLint - Pluggable JavaScript linter

eslint.org/blog/2020/04/eslint-v7.0.0-rc.0-released

ESLint ReleaseNote

ESLint v7.0.0-rc.0이 릴리스됐습니다.
비동기 처리에 대응한 새로운 ESLint API가 추가됐고 Node 관련 규칙을 eslint-plugin-node에서 담당하기 때문에 코어에 포함된 Node 관련 규칙은 비권장됐습니다.
그 외로 에러 리포트의 위치 정보가 수정됐습니다.


Release 10.0.0 · highlightjs/highlight.js

github.com/highlightjs/highlight.js/releases/tag/10.0.0

JavaScript library ReleaseNote

신텍스 하이라이트 라이브러리 highlight.js 10.0.0이 릴리스됐습니다.
코드 기반이 ES2015로 변경됐으며 이에 맞춰 IE 지원이 종료됐습니다.
before:highlight, after:highlight 플러그인 API가 추가됐고 각 언어에 name 속성이 추가됐습니다.


Release Notes for Safari Technology Preview 105 | WebKit

webkit.org/blog/10428/release-notes-for-safari-technology-preview-105/

safari webkit ReleaseNote

Safari Technology Preview 105가 릴리스됐습니다.
사양에 맞춰 type=modulecross-origin 기본 값이 anonymous로 변경됐습니다.
Stage 3의 ES Proposal인 proposal-logical-assignment가 구현됐습니다.


아티클


node-fetch v3 beta is out! - Antoni Kepinski - Medium

medium.com/@kepinski/node-fetch-v3-beta-is-out-9fbb8091999

node.js HTTP article

node-fetch 3의 변경 사항이 정리돼 있습니다.
Node.js 10 미만 버전이 지원 종료됐으며 browser 필드, res.textConverted()가 삭제됐습니다.
Data URL을 지원하며 Blob이 구현됐습니다. 또, UTF8 URL 핸들링이 개선됐으며 highWaterMark 옵션이 추가됐습니다.


The Cost of Javascript Frameworks - Web Performance Consulting | TimKadlec.com

timkadlec.com/remembers/2020-04-21-the-cost-of-javascript-frameworks/

browser JavaScript performance article

HTTP Archive 데이터를 기반으로 jQuery, Vue, Angular, React를 사용하고 있는 사이트의 지표를 분석한 글 입니다.
각각의 라이브러리를 사용하고 있는 사이트의 파일 파이즈, 모바일 / 데스크탑에서의 CPU 처리 시간 등에 대해 작성돼 있습니다.
또, jQuery를 포함하고 있는 사이트와 그렇지 않은 사이트를 비교하고 React 단독 사이트에서는 메인 스레드의 CPU 처리가 증가하는 경향에 대해 이야기합니다.


A Taste of WebGPU in Firefox - Mozilla Hacks - the Web developer blog

hacks.mozilla.org/2020/04/experimental-webgpu-in-firefox/

WebGL WebGPU Firebug

WebGPU에 관한 글입니다.
WebGL와 WebGPU의 차이점, 컨텍스트 분리, 파이프라인 상태 캡슐화, 바인딩 모델에 관해 정리돼 있습니다.
또, 파이어폭스의 WebGPU 구현 상황에 대해서도 정리돼 있습니다.


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


zeit/swr: React Hooks library for remote data fetching

github.com/zeit/swr

React library Fetch

데이터를 가져오는 방식을 제공하는 React Hooks 라이브러리입니다.
데이터 가져오기, 재시도, mutate를 통한 재취득, 정기적으로 가져오기, SSR 대응, Suspense 대응 등 다양한 기능을 제공합니다.


developit/web-worker: Consistent Web Workers in browser and Node.

github.com/developit/web-worker

JavaScript node.js browser webworker library

Universal한 WebWorker 라이브러리입니다.
Node.js의 worker_threads와 브라우저의 Worker에 대응하고 있습니다.


ezhmd/opencv-wasm: Precompiled OpenCV 4.3.0 to JavaScript + WebAssembly for node.js environment

github.com/ezhmd/opencv-wasm

WebAssembly graphic library

OpenCV.js의 WebAssembly 빌드를 패키지로 배포하고 있는 라이브러리입니다.


bikeshaving/crank: Write JSX-driven components with functions, promises and generators.

github.com/bikeshaving/crank

JavaScript library React

React 처럼 JSX로 컴포넌트를 다루는 라이브러리입니다.
비동기 컴포넌트를 Promise와 Generator를 사용해 다룰 수 있도록 관련 기능을 제공합니다.


mohebifar/vidact: A compiler that converts React-compatible codes to VanillaJS with no Virtual DOM

github.com/mohebifar/vidact

babel React JavaScript library

React스러운 코드를 순수 자바스크립트로 변환하는 컴파일러입니다. 빌드 시 대부분의 코드가 변환되며 런타임 상에서 컴포넌트를 갱신하기 위해 몇 가지 코드가 실행됩니다.
Svelte와 비슷한 컨셉이며 Babel 플러그인으로 제공됩니다. React / JSX 코드를 동일한 DOM 코드로 변환하는데 목적을 두고 있습니다.


lukeed/rosetta: A general purpose internationalization library in 292 bytes

github.com/lukeed/rosetta

JavaScript i18n library

간단한 로컬라이즈 라이브러리입니다.


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