JSer.info #501 - Storybook 6.0.0이 릴리스 됐습니다.
- Storybook 6.0. Production-grade component development | by Michael Shilman | Storybook | Aug, 2020 | Medium
- Release v6.0.0 · storybookjs/storybook
- storybook/CHANGELOG.md at next · storybookjs/storybook
TypeScript를 빌트인 지원하며 스토리 함수 첫 번째 인수에 Args 객체를 전달하도록 개선됐고 addon-knobs를 대신하는 addon-controls가 도입됐습니다.
그리고 여러개의 Storybook을 하나의 Storybook으로 조합해서 살펴 볼 수 있도록 변경됐습니다.
새롭게 추가된 각 기능에 대한 글도 함께 공개 됐으니 살펴보시면 좋을 거 같습니다.
- Zero-config Storybook. Simple setup, instant productivity | by Michael Shilman | Storybook | Aug, 2020 | Medium
- Introducing Storybook Args. Next-gen, dynamic component examples | by Michael Shilman | Storybook | Jul, 2020 | Medium
- Storybook Composition. Combine multiple Storybooks into one | by Dominic Nguyen | Storybook | Jun, 2020 | Medium
- Storybook Controls. Live edit UI components w/ no code | by Michael Shilman | Storybook | Jul, 2020 | Medium
5.3에서 6.0으로의 이전 가이드와 이전 명령어(npx sb upgrade)도 공개 됐으니 참고해주세요.
- Storybook 6 Migration Guide. Level up your component development… | by Michael Shilman | Storybook | Aug, 2020 | Medium
- storybook/MIGRATION.md at next · storybookjs/storybook
npm 7 베타가 릴리스 됐습니다.
peerDependencies가 기본적으로 설치되도록 변경됐으며 이와 함께 npm 6의 방식도 지원하는 --legacy-peer-deps가 추가됐습니다.
npm 2까지는 peerDependencies를 자동으로 설치했지만, 3에서 peerDependencies를 기본적으로 설치하지 않도록 변경했습니다.
peerDependencies에 관한 yarn이나 pnpm의 정책은 다음 RFC 이슈에 정리돼 있으니 참고하시길 바랍니다.
새로운 기능으로는 acceptDependencies, workspaces 필드, yarn.lock을 지원하며 package-lock.json의 형식 변경이 이뤄졌습니다.
또, npm run-script에서 활용할 수 있는 npm_package_*와 npm_package_*의 환경 변수 삭제 또는 변경됐으니 참고하시길 바랍니다.
그 외로 npx 대신 사용할 수 있는 npm exec 명령어가 추가됐으며 npx는 npm exec의 별칭(alias)으로 변경될 예정입니다.
Node.js 웹 프레임워크인 hapi 20.0.0이 릴리스 됐습니다.
메이저 업데이트이지만 비호환적인 기능 변경은 없으며 단지 메인테이너가 에란 해머(Eran Hammer)에서 Technical Steering Committee(기술 개발에 대한 조정역할 및 포럼의 방향을 정립하는 위원회)로 인계되면서 발생한 변경 사항을 포함하고 있습니다.
경위는 다음 이슈에 잘 정리돼 있으며 상용 지원의 채산적인 문제와 모티베이션 문제로 hapi의 개발자인 에란 해머에 의한 유지보수를 금년부로 종료한다고 알려왔습니다.
이 문제와 함께 유지보수를 인수하기 위한 hapi Technical Steering Committee(TSC)가 설립됐고 20.0.0 부터는 TSC가 hapi의 메인테이너가 됩니다.
- The future of the hapi project, a prelude · Issue #4111 · hapijs/hapi
- The future of the hapi project · Issue #4113 · hapijs/hapi
헤드라인
Release v6.0.0 · storybookjs/storybook
github.com/storybookjs/storybook/releases/tag/v6.0.0
Storybook 6.0.0이 릴리스 됐습니다.
TypeScript를 빌트인 지원하며 스토리 함수 첫 번째 인수에 Args 객체를 전달하도록 개선됐고 addon-knobs를 대신하는 addon-controls가 도입됐습니다.
여러개의 Storybook을 하나의 Storybook으로 조합해서 살펴 볼 수 있도록 변경 되는 등 많은 개선이 이뤄졌습니다.
또, 5.3에서 6.0으로의 이전 가이드도 공개 됐으니 참고하세요.
- storybook/CHANGELOG.md at next · storybookjs/storybook
- storybook/MIGRATION.md at next · storybookjs/storybook
The npm Blog — npm v7 Series - Beta Release! And: SemVer-Major...
blog.npmjs.org/post/626173315965468672/npm-v7-series-beta-release-and-semver-major
npm 7 beta가 릴리스 됐습니다.
peerDependencies가 기본적으로 설치되도록 변경됐으며 이와 함께 npm 6의 방식도 지원하는 --legacy-peer-deps가 추가됐습니다.
새로운 기능으로는 acceptDependencies, workspaces 필드, yarn.lock을 지원하며 package-lock.json의 형식 변경이 이뤄졌습니다.
또, npm run-script에서 활용할 수 있는 npm_package_*와 npm_package_*의 환경 변수 삭제가 이뤄졌습니다.
Node v14.8.0 (Current) | Node.js
nodejs.org/en/blog/release/v14.8.0/
Node.js 14.8.0이 릴리스 됐습니다.
Top-Level Await를 기본적으로 지원하며 async_hooks 모듈에 AsyncResource.bind가 추가됐습니다.
Release Version 8.0.0 · acornjs/acorn
github.com/acornjs/acorn/releases/tag/8.0.0
JavaScript 파서 Acorn 8.0.0이 릴리스 됐습니다.
패키지를 ECMAScript module로 불러올 수 있도록 개선됐으며 ecmaVersion 옵션이 필수로 변경됐습니다.
Update for Customers Using PhoneGap and PhoneGap Build | by Adobe I/O | Aug, 2020 | PhoneGap
blog.phonegap.com/update-for-customers-using-phonegap-and-phonegap-build-cc701c77502c
웹 기술을 이용해 네이티브 애플리케이션을 만들 수 있는 PhoneGap 빌드 서비스가 2020년 10월에 종료됩니다.
대체재로 Apache Cordova, Ionic을 소개하고 있습니다.
20.0.0 Release Notes · Issue #4138 · hapijs/hapi
github.com/hapijs/hapi/issues/4138
hapi 20.0.0이 릴리스 됐습니다.
메인터넌스가 교체 돼 Technical Steering Committee(TSC) 기반 프로젝트로 변경됐습니다.
그 외로 @hapi/joi에서 @hapi/validate로 변경됐으며 Node.js 14를 지원합니다.
emscripten/ChangeLog.md at master · emscripten-core/emscripten
github.com/emscripten-core/emscripten/blob/master/ChangeLog.md#200-08102020
C/C++ 등을 WebAssembly로 컴파일하는 Emscripten 2.0이 릴리스 됐습니다.
fastcomp backend 삭제하고 Python 2 지원이 종료됐습니다.
또, 예외 정보 메타 데이터를 JS가 아니라 WebAssembly.Memory에 보존하여 예외 처리가 쓰레드 세이프하도록 변경됐습니다.
Release 2.11.0 · qunitjs/qunit
github.com/qunitjs/qunit/releases/tag/2.11.0
QUnit 2.11.0이 릴리스 됐습니다.
Node.js 10 미만 지원이 종료됐고 assert.true와 assert.false가 추가됐으며 HTML 보고서 검색 기능이 개선됐습니다.
Ajv Joins OpenJS Foundation as an Incubation Project - OpenJS Foundation
openjsf.org/blog/2020/08/14/ajv-joins-openjs-foundation-as-an-incubation-project/
JSON Schema 검증 도구인 Ajv가 OpenJS Foundation에 들어갔습니다.
아티클
Node.js에서 프로토타입 오염 후 임의 코드를 실행하기 까지의 사례 - knqyf263's blog(일본어)
knqyf263.hatenablog.com/entry/2020/08/11/050342
Node.js에서의 프로토타입 오염 실사례를 소개하는 글입니다.
The Golden Rule of Generics
effectivetypescript.com/2020/08/12/generics-golden-rule/
TypeScript의 Generics을 사용해야 하는지 판단할 때의 기준으로 「타입 매개변수는 두 번 표시돼야한다」라는 규칙에 대해 이야기합니다.
다양한 코드를 활용한 예와 함께 Generics 사용이 좋은 경우를 소개합니다.
Optimizing CSS for faster page loads - Tomas Pustelnik's personal website
pustelto.com/blog/optimizing-css-for-faster-page-loads/
CSS의 Critical Path 최적화에 대해서 소개합니다.
CSS를 불러오는 타임에 미치는 영향, Critical CSS 분리와 지연 로드, CSS의 Code Splitting에 대해서 이야기합니다.
Node.js and the struggles of being an EventTarget
www.nearform.com/blog/node-js-and-the-struggles-of-being-an-eventtarget/
Node.js에 EventTarget이 왜 필요하고 구현되는지 이야기합니다.
Node.js에 Fetch나 AbortController 등의 웹 표준 API를 구현하기 위해 브라우저와 호환성 있는 EventTarget API 필요한 점에 대해서 언급합니다.
EventTarget을 구현하는 과정에서 호환성, 다중 상속(multiple inheritance), 성능 문제를 어떻게 해결했는지에 대해서도 작성 돼 있습니다.
사이트, 서비스, 문서
twilco/kosmonaut: A web browser engine for the space age
Servo에 영감을 받은 Rust 기반 브라우저 엔진입니다.
Shopify/web-foundation: Principles, decision logs, best practices, and common configuration for building web apps at Shopify
github.com/Shopify/web-foundation
Shopify가 웹 개발에 사용하는 설정과 각 설명 문서가 정리 돼 있는 저장소 입니다.
소프트웨어, 도구, 라이브러리
ealush/vest: Vest ✅ Declarative validations framework
테스트 프레임워크 스럽게 설계 된 검증 라이브러리입니다.
테스트 코드를 작성하는 느낌으로 검증 코드르 구현할 수 있습니다.
Run JavaScript Everywhere.
Node.js에 입문할 때 도움을 줄 수 있는 문서 사이트입니다.
Native mobile apps in JavaScript. Fast and secure framework. - Tabris
React Native 처럼 JavaScript(JSX)로 OS 네이티브 UI를 개발 할 수 있는 모바일 앱 개발 프레임워크 입니다.

