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 4.1 RC가 릴리스 됐다.
Template Literal Types, Mapped Types에서 Key의 Remapping 지원, 재귀적 Conditional Types 지원, 인덱스 접근 시 undefined
일 가능성을 검사하는 noUncheckedIndexedAccess
옵션 추가.
baseUrl
없이 paths
옵션을 사용할 수 있도록, checkJs
는 암묵적으로 allowJs
를 활성화 하도록, 새로운 JSX의 변환을 지원한다.
비호환 변경사항으로 Promise
의 resolve
인수가 필수 인자로 변경됐다.
Release 3.7.0 - 2020.11.06 · zloirock/core-js
github.com/zloirock/core-js/releases/tag/v3.7.0
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 v15.1.0 릴리스.
진단 도구 용 diagnostics_channel
모듈 실험적으로 추가, spawn
이벤트 추가.
dns
모듈에 setLocalAddress
추가,v8
모듈에 takeCoverage
와 stopCoverage
가 추가 됐다.
Release 3.0.0 · socketio/socket.io-client
github.com/socketio/socket.io-client/releases/tag/3.0.0
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의 컴파일 성능을 측정하는 방법 소개.
4.1에 추가되는 --generateTrace
를 사용해 추출한 프로파일링 데이터를 분석하는 방법.
What's the deal with SvelteKit?
svelte.dev/blog/whats-the-deal-with-sveltekit
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 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 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
create-react-app으로 만든 에디터 애플리케이션의 성능을 개선한 내용을 다루고 있다.
코드 에디터로 monaco-editor를 사용하고 있으며 메인 자바스크립트가 점점 커지고 있어 chunk로 분할.
chunk한 스크립트를 prefetch
나 preload
할 때 발생할 수 있는 역효과와 read-only 인 경우에도 monaco-editor을 불러오고 있는 문제에 대해서 언급하며, read-only 일 때에는 PrismJS를 사용해 신텍스 하일라이팅만 해주는 방식으로 개선.
소프트웨어, 도구, 라이브러리
krzkaczor/ts-essentials: All basic TypeScript types in one place 🤙
github.com/krzkaczor/ts-essentials
TypeScript 타입 유틸리티 라이브러리.
sql-js/sql.js: A javascript library to run SQLite on the web.
SQLite를 WebAssembly로 컴파일하여 JavaScript에서 동작할 수 있게 제공하는 라이브러리.
기존 sqlite 파일을 import / export 할 수 있다.
mattpocock/sextant: A development tool to chart application flows, then implement them in code
시퀀스 다이어그램 GUI 에디터를 이용, 데이터 플로우와 GraphQL의 Payload를 입력 하여 이에 맞는 타입스크립트의 타입을 생성할 수 있는 도구.
gajus/http-terminator: Gracefully terminates HTTP(S) server.
github.com/gajus/http-terminator
express 등 Node.js http.Server
r의 구현체를 graceful shutdown을 할 수 있는 라이브러리.
이 기능을 사용하는 이유는 What is the use case for http-terminator? 절에 자세히 정리돼 있다.
도서
Distributed Systems with Node.js - Thomas Hunter II
thomashunter.name/distributed-systems-with-nodejs
2020년 11월 4일 출간.
Node.js 애플리케이션에서의 분산 시스템을 주제로 한 서적
Node.js 기반 애플리케이션을 observable, scalable, resilient 하게 구축하는 방법이 소개 돼 있다.
Lets start TypeScript ~Vue3 + Express로 TypeScript 입문해보자~
zenn.dev/is_ryo/books/10ef5a30196e16110bc1
Express + PostgresSQL + Vue + TypeScript로 Todo 애플리케이션을 만드는 튜토리얼.