JSer.info #532 - Node.js 15.12.0이 릴리스 됐다.
fs
의 readFile
/ writeFile
에 대한 Promise 버전인 fs.promises
의 readFile
/ writeFile
가 느리다는 Issue가 있다.
Node.js 15.12.0에는 이 성능 문제에 대한 개선 내용이 포함됐다.
- fs: improve fsPromises readFile performance by Linkgoron · Pull Request #37608 · nodejs/node
- fs: improve fsPromises writeFile performance by Linkgoron · Pull Request #37610 · nodejs/node
- write 관련해서는 콜백 버전과 거의 동등한 성능을 보인다.
그 외로는 crypto.create{Public,Private}Key
가 JWK 객체를 지원, AbortSignal.abort()
구현, worker_threads
모듈에 {get,set}EnvironmentData
가 추가됐다.
Mitigate cross-site scripting (XSS) with a strict Content Security Policy (CSP)에서 Content Security Policy (CSP)를 사용한 XSS의 영향을 줄일 수 있는 접근법에 대해 다루고 있다.
CSP에는 특정 URL을 화이트 리스트로 다루는 설정이 있는데, 허가한 URL에 JSONP 등의 엔드포인트가 있을 때 CSP가 우회 되는 문제가 알려져 있다.
- CSP Is Dead, Long Live Strict CSP! - DeepSec 2016 - Speaker Deck
- Content Security Policy: A successful mess between hardening and mitigation - Speaker Deck
때문에 nonce 기반이나 hash 기반의 strict한 CSP 설정을 하여 CSP가 우회 돼 버릴 가능성을 줄인다.
이 글에서는 nonce 기반과 hash 기반의 strict CSP 설정을 다루는 방법에 대해서 작성돼 있다.
CSS Auditing Tools — Smashing Magazine에는 CSS의 Audit 도구가 알기 쉽게 한데 정리돼 있다.
- CSS Stats
- Yellow Lab Tools - Page Speed audit
- Specificity Visualizer
- CSS Analytics - Project Wallace
- katiefenn/parker: Stylesheet analysis tool.
- Chrome DevTools
각각의 도구를 소개하고 어떠한 항목을 측정하거나 조사할 수 있는지 정리돼 있다.
헤드라인
Node v15.12.0 (Current) | Node.js
nodejs.org/en/blog/release/v15.12.0/
Node.js 15.12.0 릴리스.
crypto.create{Public,Private}Key
가 JWK 객체를 지원하며 fs.promises
의 writeFile과 readFile의 성능 문제가 개선됐다.
AbortSignal.abort()
구현, worker_threads
모듈에 {get,set}EnvironmentData
가 추가됐다.
V8 release v9.0 · V8
V8 v9.0 릴리스.
RegExp#insices
구현, super
속성에 접근할 때의 성능 개선, JavaScript에서 Wasm의 함수를 호출할 때의 성능 개선.
Release v7.3.0 · GoogleChrome/lighthouse
github.com/GoogleChrome/lighthouse/releases/tag/v7.3.0
Lighthouse 7.3.0 릴리스.
새로운 audit으로 csp-xss를 실험적으로 추가.
jasmine/3.7.0.md at main · jasmine/jasmine
github.com/jasmine/jasmine/blob/main/release_notes/3.7.0.md
Jasmine 3.7 릴리스.
Node.js의 Source Maps에 대응, Array.prototype를 확장하고 있을 때에 일부 테스트가 누락되는 문제 수정, .and.callFake
에서 Generator 함수를 지원한다.
ECMAScript proposal updates @ 2021-03 | ECMAScript Daily
ecmascript-daily.github.io/ecmascript/2021/03/22/ecmascript-proposal-update
2021년 3월에 변경된 TC39의 ECMAScript Proposal 정리.
Module Fragments가 Stage 1으로, Array#findLast
가 Stage2로, Temporal가 Stage 3로 각각 갱신됐다.
sinon/CHANGELOG.md at master · sinonjs/sinon
github.com/sinonjs/sinon/blob/master/CHANGELOG.md#1000--2021-03-22
Sinon.js 10.0.0 릴리스.
IE 11, Legacy Edge, Legacy Safari 지원 종료.
아티클
Mitigate cross-site scripting (XSS) with a strict Content Security Policy (CSP)
도메인 허가 목록을 이용한 CSP 보다도 strict 설정을 이용한 CSP를 권장한다는 글.
nonce와 strict-dynamic 기반의 CSP설정으로 막을 수 있는 XSS, nonce 기반과 hash 기반의 CSP 설정, CSP 도입 절차에 대해 정리돼 있다.
Supabse 팀은 어떻게 프런트엔드의 고속화에 성공했는가 - 벤쿠버에서 생각중(일본어)
jp.taishikato.com/posts/making-the-supabase-dashboard-supa-fast
Making the Supabase Dashboard Supa-fast의 일본어 번역글.
베이스라인과 목표 설정, 번들 사이즈 개선, 성능 문화 등에 대해서 다룬다.
The #1 tip to familiarize with new JavaScript Codebases
www.kevinpeters.net/the-fastest-way-to-understand-new-code-bases
code-complexity
를 사용한 코드의 복잡도 분석에 대해 이야기한다.
Complexity와 Churn에 대해서 설명하고 있다.
CSS Auditing Tools — Smashing Magazine
www.smashingmagazine.com/2021/03/css-auditing-tools/
CSS의 Audit 도구를 정리 소개하는 글.
CSS 셀렉터의 Specificity, 복잡도 측정, Code Coverage, 지속적인 분석 등.
Next 10 years of Node.js — Understanding the needs of the Node.js constituencies | by Node.js | Mar, 2021 | Medium
Node.js의 다음 10년에 관해 이야기한다.
소프트웨어, 도구, 라이브러리
101arrowz/isoworker: Isomorphic workerization with context support
github.com/101arrowz/isoworker
WebWorker와 worker_threds
에 대응한 Worker 라이브러리.
Inline Code를 Worker 코드로 생성하고, Worker에 클래스나 함수를 포함한 데이터를 전달하여 실행한 결과를 얻을 수 있다.
taoqf/node-html-parser: A very fast HTML parser, generating a simplified DOM, with basic element query support.
github.com/taoqf/node-html-parser
HTML 파서와 DOM API를 제공하는 라이브러리.
파싱한 결과 객체를 DOM API와 같은 메서드로 조작할 수 있다.
Hello from tRPC | tRPC
HTTP 통신의 데이터 레이어 라이브러리.
TypeScript와 yup / zod 등의 벨리데이터 기반으로 서버 측의 API 엔드포인트를 정의하며 그 타입을 클라이언트에서도 이용할 수 있는 구조 제공.
React 용 Hooks와 SSR에 대응한 클라이언트 라이브러도 공개돼 있다.
Charts.css
CSS만으로 제작한 그래프 라이브러리.
다양한 종류의 차트 표현을 제공한다.
도서
Learning TensorFlow.js
learning.oreilly.com/library/view/learning-tensorflowjs/9781492090786/
2021년 7월 추간 예정인 TensorFlow.js 입문서.