Fork me on GitHub

2020-11-10: Socket.IO 3.0.0, core-js 3.7.0, SvelteKit

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #513 - Socket.IO 3.0.0 릴리스.

Socket.IO 3 Release | Socket.IO에서 현시점 WebSockets의 fallback으로서의 Socket.IO의 역할은 그렇게까지 중요하진 않지만 auto-reconnection과 같은 기능 등은 가치가 있음을 시사하고 있다.

변경 사항과 2.x에서 3.0.0으로의 이전 방법은 다음 문서에 정리돼 있다.

해당 릴리스엔 Engine.IO 4 갱신도 포함됐다.
Engine.IO 4의 비호환 변경 사항으로는 maxHttpBufferSize가 100MB에서 1MB으로 변경, CORS 설정 방법 변경, Cookie를 기본적으로 사용하지 않도록, API 변경 등이 있다.
또, 기반 코드를 타입스크립트로 재작성, onAny / offAny 추가, socket.io-msgpack-parser을 포함한다.


polyfill 라이브러리 core-js 3.7.0이 릴리스 됐다.

한동안 사양을 반영하는 변경이 없었는데 개발자가 복귀함에 따라 유지보수가 재개됐다.

3.7.x에서는 ECMAScript / Proposal의 사양을 반영한 변경, Node.js에서의 queueMicroTask의 실행 순서 문제 수정, 일부 환경에서의 버그가 수정됐다.


What's the deal with SvelteKit?

위 문서에는 Svelte Summit 2020에서 발표한 SvelteKit에 관해서 작성돼 있다.

Svelte 로 만든 Next.js와 같은 Sapper가 Svelte 내로 통합, SvelteKit으로 전환될 예정.
Rollup과 Snowpack을 이용한 모듈 단위 빌드 방식이며 Adaptor를 통해 각 플랫폼을 지원하는 형태로 앱을 생성할 수 있는 구조가 될 것으로 보인다.
현재는 개발 중이라서 저장소가 공개돼 있진 않지만 추후 공개할 예정이라고 한다.


헤드라인


Announcing TypeScript 4.1 RC | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-4-1-rc/

TypeScript ReleaseNote

TypeScript 4.1 RC가 릴리스 됐다.
Template Literal Types, Mapped Types에서 Key의 Remapping 지원, 재귀적 Conditional Types 지원, 인덱스 접근 시 undefined일 가능성을 검사하는 noUncheckedIndexedAccess 옵션 추가.
baseUrl없이 paths 옵션을 사용할 수 있도록, checkJs는 암묵적으로 allowJs를 활성화 하도록, 새로운 JSX의 변환을 지원한다.
비호환 변경사항으로 Promiseresolve 인수가 필수 인자로 변경됐다.


Release 3.7.0 - 2020.11.06 · zloirock/core-js

github.com/zloirock/core-js/releases/tag/v3.7.0

JavaScript polyfill library ReleaseNote

core-js 3.7.0 릴리스.
ECMAScript / Proposal 사양에 맞춰 변경, Node.js에서의 queueMicroTask 실행 순서 문제 수정, 일부 환경에서의 버그 수정.


Node v15.1.0 (Current) | Node.js

nodejs.org/en/blog/release/v15.1.0/

node.js ReleaseNote

Node v15.1.0 릴리스.
진단 도구 용 diagnostics_channel 모듈 실험적으로 추가, spawn 이벤트 추가.
dns 모듈에 setLocalAddress 추가,v8 모듈에 takeCoveragestopCoverage가 추가 됐다.


Release 3.0.0 · socketio/socket.io-client

github.com/socketio/socket.io-client/releases/tag/3.0.0

WebSocket library ReleaseNote

Socket.IO 3.0 릴리스.
maxHttpBufferSize가 100MB에서 1MB로 변경, CORS 설정 방법 변경, Cookie를 기복적으로 사용하지 않도록, API 변경 등이 이뤄졌다.
또, 기반 코드를 타입스크립트로 재작성, onAny / offAny 추가, socket.io-msgpack-parser를 포함한다.


아티클


Tracing TypeScript Compiler. 시작하며 | by Yosuke Kurami | Oct, 2020 | Medium(일본어)

quramy.medium.com/tracing-typescript-compiler-4dcb96ab54e1

TypeScript performance article

TypeScript의 컴파일 성능을 측정하는 방법 소개.
4.1에 추가되는 --generateTrace를 사용해 추출한 프로파일링 데이터를 분석하는 방법.


What's the deal with SvelteKit?

svelte.dev/blog/whats-the-deal-with-sveltekit

Svelte article

Svelte로 만든 Next.js와 같은 Sapper가 Svelte 내로 통합, SvelteKit으로 전환될 예정.
Rollup과 Snowpack을 사용한 모듈 단위 빌드 방식, Adaptor를 통해 각 플랫폼을 지원하는 형태로 앱을 생성할 수 있는 구조가 될 것으로 보인다.


Building a type checked url router from scratch

ja.nsommer.dk/articles/type-checked-url-router.html

TypeScript article

TypeScript 4.1에 구현된 Template Type를 사용해 문자열(url) 라우팅 패턴과 관련한 타입을 선언하는 방법 소개.


Top problems I got switching to Vue 3 – Ghiura Alexandru

ghalex.com/2020/11/03/top-problems-i-got-switching-from-vue-2-to-3/

Vue article

Vue 2에서 Vue 3으로 쉽게 전환할 수 없는 부분에 대해 설명.
v-model의 기본 프로퍼티 명 변경, 필터 폐지, Vue.use로 사용하고 있는 외부 컴포넌트가 있을 경우 문제.


Code-splitting and minimal edge latency: the perfect match | Fastly

www.fastly.com/blog/code-splitting-and-minimal-edge-latency-the-perfect-match

React performance article

create-react-app으로 만든 에디터 애플리케이션의 성능을 개선한 내용을 다루고 있다.
코드 에디터로 monaco-editor를 사용하고 있으며 메인 자바스크립트가 점점 커지고 있어 chunk로 분할.
chunk한 스크립트를 prefetchpreload 할 때 발생할 수 있는 역효과와 read-only 인 경우에도 monaco-editor을 불러오고 있는 문제에 대해서 언급하며, read-only 일 때에는 PrismJS를 사용해 신텍스 하일라이팅만 해주는 방식으로 개선.


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


krzkaczor/ts-essentials: All basic TypeScript types in one place 🤙

github.com/krzkaczor/ts-essentials

TypeScript library

TypeScript 타입 유틸리티 라이브러리.


sql-js/sql.js: A javascript library to run SQLite on the web.

github.com/sql-js/sql.js/

SQLite WebAssembly library JavaScript

SQLite를 WebAssembly로 컴파일하여 JavaScript에서 동작할 수 있게 제공하는 라이브러리.
기존 sqlite 파일을 import / export 할 수 있다.


mattpocock/sextant: A development tool to chart application flows, then implement them in code

github.com/mattpocock/sextant

JavaScript Tools graphic GraphQL

시퀀스 다이어그램 GUI 에디터를 이용, 데이터 플로우와 GraphQL의 Payload를 입력 하여 이에 맞는 타입스크립트의 타입을 생성할 수 있는 도구.


gajus/http-terminator: Gracefully terminates HTTP(S) server.

github.com/gajus/http-terminator

node.js library server

express 등 Node.js http.Serverr의 구현체를 graceful shutdown을 할 수 있는 라이브러리.
이 기능을 사용하는 이유는 What is the use case for http-terminator? 절에 자세히 정리돼 있다.


도서


Distributed Systems with Node.js - Thomas Hunter II

thomashunter.name/distributed-systems-with-nodejs

node.js book performance server

2020년 11월 4일 출간.
Node.js 애플리케이션에서의 분산 시스템을 주제로 한 서적
Node.js 기반 애플리케이션을 observable, scalable, resilient 하게 구축하는 방법이 소개 돼 있다.


Lets start TypeScript ~Vue3 + Express로 TypeScript 입문해보자~

zenn.dev/is_ryo/books/10ef5a30196e16110bc1

Vue TypeScript PostgreSQL node.js express tutorial

Express + PostgresSQL + Vue + TypeScript로 Todo 애플리케이션을 만드는 튜토리얼.


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