JSer.info #439 - 수치 계산 라이브러리 Math.js v6가 릴리스됐습니다.
Math.js는 200개 이상 기능을 제공하고 있으며 이에 따라 파일 크기가 137kB(gzip)에 달합니다.
따라서 v6에서는 필요한 기능만 모듈로 사용할 수 있도록 구조적인 변경이 이뤄졌습니다.
다음과 같이 작성할 경우 필요한 것 이외의 코드는 삭제되거나 트리쉐이킹 가능하도록 "module"
필드가 추가됐습니다.
import { log } from "mathjs";
console.log(log(10))
또, 전역 설정이 아닌 create
함수를 이용해 독자적인 의존과 설정을 이용해 특정 기능을 생성할 수 있는 기능도 추가됐습니다.
이 외에도 BigNumber를 지원하지 않는 경량화 된 mathjs/number
도 사용할 수 있습니다.
이와 함께 패키지 배포 방법에 대해 작성한 Enabling Modern JavaScript on npm도 살펴보면 좋을 것 같습니다. Modern JavaScript는 ES2015 이후의 문법으로 작성된 코드 정도로 이해할 수 있습니다. 하지만 현재 npm에 배포되고 있는 많은 패키지는 ES5로 변환 된 것으로, 패키지 사용자는 현대적인 버전을 선택하지 못하고 ES5로 변환된 코드를 강제적으로 사용해야 하는 문제에 대해 작성돼 있습니다.
이 문제를 해결하기 위해서 웹팩이나 롤업에서는 package.json
의 "module"
필드를 대응하고 패키지 이용자가 두 패키지 중 하나를 선택할 수 있도록 지원합니다.
또, 해당 글에서는 Microbundle이나 @pika/pack 등 Modern JavaScript를 패키지로 배포할 수 있는 도구도 함께 소개하면서 이들 도구의 에코시스템이 아직 성숙하지 못한 부분에 대해서도 이야기하고 있습니다.
Audits in Web Inspector | WebKit에는 Safari Technology Preview 75에 추가된 Safari의 Audit Tab에 대해 작성돼 있습니다.
접근성에 관한 기본적인 Audit 규칙이 정의돼 있으므로 접근성 검사가 가능합니다.
또, 이 Audit 탭에서는 Test Case Format에 맞춰 작성된 JSON을 읽어들여 임의의 검사 도구를 정의할 수도 있습니다.
Creating Web Inspector Audits | WebKit에는 ESLint를 사용해 *.js
파일을 검사하는 규칙을 정의하고 이를 Audit 탭을 통해 실행하는 방법이 소개돼 있습니다.
헤드라인
Node v12.4.0 (Current) | Node.js
nodejs.org/en/blog/release/v12.4.0/
Node.js 12.4.0이 릴리스 됐습니다.
import
문으로 JSON을 불러올 수 있는 --experimental-json-modules
플래그와 V8 heap profiler를 다루는 --heap-prof
플래그가 추가됐습니다.
mathjs v6: a monolith turned modular - Jos de Jong
josdejong.com/blog/2019/06/08/mathjs-v6-a-monolith-turned-modular/
matchjs v6이 릴리스됐습니다.
각 기능을 모듈 단위로 가져와 사용할 수 있도록 구조를 변경했으며 전역 설정이 아닌 create
함수를 이용해 독자적인 의존과 설정을 이용해 특정 기능을 생성할 수 있도록 기능이 추가됐습니다. 또, BigNumber를 지원하지 않고 순수 number
처리만 지원하는 경량화 버전도 포함됐습니다.
Storybook 5.1
medium.com/storybookjs/storybook-5-1-50afd02b5bbb
Stroybook 5.1이 릴리스됐습니다.
React Native를 다시 지원하며 A11y addon이 개선됐고 Context addon과 TypeScrip 용 preset이 추가됐습니다.
Release v3.0.0 · mqttjs/MQTT.js
github.com/mqttjs/MQTT.js/releases/tag/v3.0.0
MQTT.js 3.0.0이 릴리스 됐습니다.
MQTT 5.0을 지원합니다.
아티클
Audits in Web Inspector | WebKit
webkit.org/blog/8935/audits-in-web-inspector/
Safari의 개발자 도구에 추가된 Audit 탭을 소개합니다.
접근성에 관한 기본적인 Audit 규칙이 정의돼 있어 접근성 검사가 가능하며 사용자가 직접 임의의 검사 도구를 정의할 수도 있습니다.
Creating Web Inspector Audits | WebKit에는 하나의 예로 *.js
파일을 ESLint 검사하는 Audit 규칙을 작성하는 방법이 소개돼 있습니다.
An introduction to the MediaRecorder API - Twilio
www.twilio.com/blog/mediastream-recording-api
MediaRecorder API를 이용한 음성 녹음과 다운로드 기능을 구현하는 튜토리얼입니다.
ECMAScript proposal updates @ 2019-06 | ECMAScript Daily
ecmascript-daily.github.io/ecmascript/2019/06/09/ecmascript-proposal-updates
2019년 6월 TC39 미팅에서 Stage가 변경된 ECMAScript Proposal이 정리돼 있습니다.
Dynamic Import가 드디어 Stage 4가 됐습니다.
Dive into IndexedDB
Promise 기반 IndexedDB 랩퍼인 idb
를 활용해 작성된 IndexedDB 튜토리얼 글입니다.
데이터 추가, 삭제, 마이그레이션 방법에 대해 작성돼 있습니다.
Enabling Modern JavaScript on npm
jasonformat.com/enabling-modern-js-on-npm/
npm에 현대적인 자바스크립트를 패키지로 공개하는 방법을 소개합니다.
번들 도구의 변화에 의해, ES5로 변환된 파일만 배포하면 사용자가 최적화할 수 없는 문제와 package.json
의 "main"
, "module"
, "unpkg"
필드와 패키지 개발자가 배포 시 주의할 점 등에 대해 작성돼 있습니다.
또, microbundle이나 @pika/pack
등의 패키지 배포 보조 도구도 함께 이야기합니다.
CSS Grid Level 2 - subgrid is coming to Firefox - Mozilla Hacks - the Web developer blog
hacks.mozilla.org/2019/06/css-grid-level-2-subgrid-is-coming-to-firefox/
CSS Grid Level 2의 서브그리드를 소개합니다.
슬라이드, 영상
Inside Frontend #3 - YouTube
www.youtube.com/playlist?list=PLZFhK-XSlb82hef6Sxyqcc-6e8xVTbaIE&app=desktop(일본어)
Inside Frontend #3의 영상이 공개됐습니다.
사이트, 서비스, 문서
npmfs - home
npm에 공개돼 있는 패키지의 소스 코드 뷰어 서비스입니다.
특정 버전의 코드를 살펴보거나 버전 간 코드의 차이를 비교해 볼 수 있습니다.
소프트웨어, 도구, 라이브러리
urql
formidable.com/open-source/urql/
React Hooks에 대응한 GraphQL React 라이브러리입니다.
리액트 컴포넌트를 이용해 쿼리의 실행 및 상태와 결과를 다룰 수 있습니다.
lukeed/tinydate: A tiny (340B) reusable date formatter. Extremely fast!
파일 크기가 작은 Date Formatter 라이브러리입니다.
도서
실천 TypeScript ~ BFF와 Next.js&Nuxt.js의 타입 정의 ~ | 요시이 타케후미 | 책 | 통신 판매 | Amazon
www.amazon.co.jp/dp/483996937X/
2019년 6월 26일에 출간 예정인 TypeSctipt와 Next.js, Nuxt.js를 주제로 한 도서입니다.