JSer.info #334 - Node.js 8.0.0이 릴리즈됐습니다.
Node.js 8은 2017년 10월에 LTS가 될 예정입니다.
- Node v8.0.0 (Current) | Node.js
- Node.js 8: Big Improvements for the Debugging and Native Module Ecosystem
Node.js 8.0.0에는 npm v5.0.0와 V8 version 5.8이 탑재돼 있습니다.
또, Node.js API (N-API)라는 네이티브 에드온에 대한 레이어가 시험적으로 추가됐습니다.
이는, VM(V8이나 CharkraCore)에 의존하지 않는 ABI(Application Binary Interface)를 제공하는 것이 목적으로 자세한 내용은 아래 문서에 소개돼 있으니 참고하시길 바랍니다.
async_hooks
과 WHATWG URL를 정식으로 지원하고 기본적으로 zero-filled된 인스턴스가 반환되도록 Buffer
생성자의 동작이 변경됐습니다. 그리고 util.promisify
가 추가되는 등 다양한 변경 사항이 있습니다.
util.promisify
는 fs
등의 전통적인 콜백 함수 인터페이스를 Promise로 다룰 수 있도록 변경 해주는 메서드입니다. 이와 관련된 자세한 내용은 아래 문서를 참고하시길 바랍니다.
디버그 관련 변경사항으로 --debug
를 사용한 디버깅은 비권장이 됐고 --inspect
, --inspect-brk
등의 옵션을 이용한 디버깅이 권장합니다.
또, Node.js가 생성하는 Error에 독자의 에러 코드가 부가며 AssertionError
를 취급하는 방식이 조금 바뀌었습니다.
// assert 모듈에 의한 Error
AssertionError [ERR_ASSERTION]: false == true
의해서 AssertionError
등에 특별한(부가적인) 처리를 하는 power-assert 등이 영향을 받게 됐습니다(이에 따른 대응이 필요함).
Node.js 8.0.0에 탑제돼 있는 것은 npm 5.0.0 이지만 몇 가지 문제와 성능을 개선한 npm 5.0.2가 릴리즈됐습니다.
또, npm의 canary 버전(조기 테스트 버전)인 npmc
가 공개됐습니다.
npm i -g npmc
Into the Great Unknown — Migrating from Mocha to Jest에는 Mocha에서 Jest 테스트 프레임워크로 변경하면서 겪은 일이 매끄럽게 소개돼 있습니다.
jest-codemods와 같은 마이그레이션 도구를 사용해서도 기계적으로 변경하지 못했던 부분을 어떻게 회피했는지 등에 관해 작성돼 있습니다.
헤드라인
Node v8.0.0 (Current) | Node.js
nodejs.org/en/blog/release/v8.0.0/
Node.js 8.0.0이 릴리즈됐습니다.
npm 5.0.0, V8 5.8, N-API(Node.js API), async_hooks
, WHATWG URL을 정식으로 지원합니다. 기본적으로 zero-filled된 인스턴스가 반환되도록 Buffer
생성자의 동작이 변경됐고 util.promisify
가 추가되며 Node.js가 생성하는 Error에 code
속성이 붙도록 변경됐습니다. 또, --debug
가 폐지되고 --inspect
로 디버거와 연계할 수 있도록 됐습니다.
npm/CHANGELOG.md at v5.0.1 · npm/npm
github.com/npm/npm/blob/v5.0.1/CHANGELOG.md
npm 5.0.1이 릴리즈됐습니다.
5.0.0의 버그가 주로 수정됐습니다. 또, 불필요한 assertion을 삭제하고 설치 속도를 개선하는 등 다양한 변경 사항이 있습니다.
Release Notes for Safari Technology Preview 31 | WebKit
webkit.org/blog/7622/release-notes-for-safari-technology-preview-31/
Safari Technology Preview Release 31이 릴리즈됐습니다.
preload
에서 as
나 type
속성을 지원하며 Access-Control-Allow-Origin의 에러 메시지가 개선됐습니다.
- 162819 – Improve error message for Access-Control-Allow-Origin violation due to misconfigured server
- 321517 - Developer tools misleading error description on CORS XHR with multiple Access-Control-Allow-Origin response headers - chromium - Monorail
N-API: Next generation Node.js APIs for native modules
medium.com/@nodejs/n-api-next-generation-node-js-apis-for-native-modules-169af5235b06
Node.js 8.0.0에서 도입된 N-API에 관해 작성돼 있습니다. 지금까지 NAN 등을 이용해 네이티브 모듈을 작성할 수 있었지만 이는 V8을 의존하고 있기 때문에 API / ABI stability에 문제가 있었습니다. 따라서 N-API에서는 ABI-stable한 중간 레이어를 제공하여 문제를 회피합니다. 이에 맞춰 Node-ChacraCore 등에서도 호환 API를 준비하고 있습니다.
Release v5.0.2 · npm/npm
github.com/npm/npm/releases/tag/v5.0.2
npm 5.0.2가 릴리즈됐습니다. npm i -g npmc
으로 npm의 canary 버전을 설치할 수 있도록 변경 됐고 설치 출력 결과가 개선됐습니다.
Announcing Meteor 1.5 – Meteor Blog
blog.meteor.com/announcing-meteor-1-5-b82be66571bb
Meteor 1.5이 릴리즈됐습니다.
Code splitting, Dynamic import를 지원하고 bundle 분석 도구가 추가됐습니다.
아티클
Introduction to State Management in Angular v2+ – OlricDigital – Medium
medium.com/olricdigital/introduction-to-state-management-in-angular-v2-ef6f5144bade
Angular에서 @ngrx/store
를 사용한 상태 관리에 관해 소개돼 있습니다.
HTTP/2 push is tougher than I thought - JakeArchibald.com
jakearchibald.com/2017/h2-push-tougher-than-i-thought/
HTTP/2 Server Push에 관련한 브라우저 별 동작에 대해 요약/정리 돼 있습니다.
Whats new for streams in Node 8 – Calvin Metcalf – Medium
medium.com/@CWMma/whats-new-for-streams-in-node-8-736d431083df
Node.js 8.0.0의 Stream에 추가된 destroy
가 소개돼 있습니다.
Redux vs MobX: Which Is Best for Your Project? — SitePoint
www.sitepoint.com/redux-vs-mobx-which-is-best/
Redux와 MobX의 비교 글입니다. 각각의 특징이나 작성 방법의 차이점과 소소한 견해가 작성돼 있습니다.
Into the Great Unknown — Migrating from Mocha to Jest
ebaytech.berlin/into-the-great-unknown-migrating-from-mocha-to-jest-3baced083c7e
Mocha에서 Jest로 테스트 환경을 변경하면서 겪은 이야기가 작성돼 있습니다.
codemod를 사용한 마이그레이션 방법과 js 이 외의 파일(scss)을 불러올 때 hook 처리 방법 그리고 ESLint 설정 등을 소개하고 복잡한 테스트나 chai 확장을 사용하고 있는 경우에 기계적으로 변환할 수 없는 경우에 대해서 이야기합니다.
Announcing Storybook 3.0 – Storybook – Medium
medium.com/storybookjs/announcing-storybook-3-0-329748b8f4cd
React의 컴포넌트 개발 환경 도구인 Storybook 3.0이 릴리즈됐습니다.
개발 주체가 Kadira에서 커뮤니티로 이동했고 webpack2를 대응했습니다. 또, 스탭샷 테스트를 할 수 있는 storyshot
을 지원합니다.
슬라이드, 영상
Rails 엔지니어가 React를 시작해 SSR와 Redux와 TypeScript를 도입하기까지 | bitjourney Kibela(일본어)
bitjourney.kibe.la/shared/entries/5c77844d-9856-4f1c-b689-44b1ee3d450a
Rails 환경에 React + Redux와 서버 사이드 렌더링을 도입하기 까지의 과정을 이야기합니다. 추후 TypeScript를 도입한 과정도 소개돼 있습니다.
사이트, 서비스, 문서
WebAssembly and Friends Roadmap
Chrome의 wasm 관련한 로드맵이 공개돼 있습니다.
MIL WebDNN
WebGPU, WebAssembly, JavaScript의 Fallback을 이용해 구현한 DNN(Deep neural network)의 실행 환경이 소개돼 있습니다.
브라우저 상에서 고속으로 범용 연산을 처리하는 것이 목적.
소프트웨어, 도구, 라이브러리
picodom/picodom: 1kb Virtual DOM builder and patch algorithm.
작은 사이즈의 Virtual DOM 구현 라이브러리입니다.
Birdview
사이트 전체를 관망할 수 있도록 전환할 수 있는 라이브러리입니다.
도서
O'Reilly Japan - 서버리스 싱글 페이지 애플리케이션
www.oreilly.co.jp/books/9784873118062/
2017년 06월 23일 발매 예정인 aws lambda 등을 사용한 서버리스 SPA를 주제로 한 도서입니다.
기초부터 알아가는 Elm | 토리이 요우스케 | 책 | 통신판매 | Amazon
2017년 7월 14일 발매 예정인 Elm을 주제로 한 도서입니다.
Get Programming with JavaScript Next: New features of ECMAScript 2015, 2016, and beyond: J. D. Isaacks: 9781617294204: Amazon.com: Books
www.amazon.com/Get-Programming-JavaScript-Next-ECMAScript/dp/1617294209
2017년 12월 30일 발매 예정인 ES2015 이후에 대해서 다루는 도서입니다.