JSer.info #366 - 코드 포맷팅 도구 Prettier 1.10이 릴리스됐습니다.
Vue Single File Components(.vue
)와 Plugin API를 지원합니다.
Plugin API는 Python 지원이나 Prettier 2.0 관련 의논 중 컴포넌트 분리 문제를 고민하는 과정에서 개발됐습니다.
현재 이 API를 이용해 Python과 PHP, Swift 포맷팅도 개발 중입니다.
- prettier/prettier-python: Prettier Python Plugin
- prettier/prettier-php: Prettier PHP Plugin
- prettier/prettier-swift: Prettier Swift Plugin
Secure Contexts Everywhere | Mozilla Security Blog에는 차후 Firefox에서 지원하는 새로운 웹 플랫폼 API를 Secure Contexts 에서만 동작하게 하는 정책에 대해서 작성돼 있습니다.
Secure contexts는 간단히 말해 HTTPS/TLS로 전송되고 있는 컨텐츠의 실행 컨텍스트로, window.isSecureContext로 판단할 수 있습니다.
예를들어, 이 사이트는 HTTPS로 전송하고 있으므로 Secure Contexts의 컨텐츠로 판단됩니다.
console.log(location.origin); // => "https://jser.info/"
console.log(window.isSecureContext); // => true
앞으로 Firefox의 새로운 기능(JavaScript, CSS, HTTP, 미디어 포맷 등)을 사용 시 Secure Contexts 환경을 필수로 요구한다는 점에 대해 소개합니다.
Web-exposed means that the feature is observable from a web page or server, whether through JavaScript, CSS, HTTP, media formats, etc. A feature can be anything from an extension of an existing IDL-defined object, a new CSS property, a new HTTP response header, to bigger features such as WebVR.
Secure Contexts 정책에 의한 기능 사용 가능 여부는 @supports나 Feature Detect를 이용할 것을 권장하고 있으며, 이미 릴리스된 기능에 대한 정책 적용에 대해서도 작성돼 있습니다.
Firefox 외의 브라우저 포함 Secure Contexts가 필요한 API는 아래 문서에 정리돼 있습니다.
헤드라인
Release 2.5.0 · qunitjs/qunit
github.com/qunitjs/qunit/releases/tag/2.5.0
QUnit 2.5.0이 릴리스 됐습니다.
assert.rejects
, QUnit.onUnhandledRejection
이 추가됐습니다.
Node v9.4.0 (Current) | Node.js
nodejs.org/en/blog/release/v9.4.0/
Node v9.4.0이 릴리스 됐습니다.
npm 5.6.0으로 업데이트됐고 zlib 모듈의 ArrayBuffer
지원 등이 이뤄졌습니다.
Release Notes for Safari Technology Preview 47 | WebKit
webkit.org/blog/8060/release-notes-for-safari-technology-preview-47/
Safari Technology Preview Release 47이 릴리스 됐습니다.
Storage Access API를 시범 지원하고 Service Worker 개선이 이뤄졌습니다. 또, Web Inspector의 Canvas 탭을 기본적으로 활성화합니다.
Prettier 1.10: One Year of Prettier 🎂 · Prettier
prettier.io/blog/2018/01/10/1.10.0.html
Prettier 1.10이 릴리스 됐습니다.
Vue Single File Components를 지원하며 Prettier Plugin API가 추가됐습니다. 또, 플러그인 기반 Python, PHP, Swift에 대한 포맷팅도 지원합니다.
Announcing Storybook 3.3 – Storybook – Medium
medium.com/storybookjs/announcing-storybook-3-3-9972c4bc87ac
Storybook 3.3이 릴리스 됐습니다.
Angular 프로젝트와 viewport 시뮬레이터를 지원하며 storyshots 테스트가 추가 됐습니다.
Release v0.63.0 · facebook/flow
github.com/facebook/flow/releases/tag/v0.63.0
Flow 0.63.0이 릴리스 됐습니다.
Strict mode에서 함수의 인자를 const
로 다루도록 변경됐습니다.
Secure Contexts Everywhere | Mozilla Security Blog
blog.mozilla.org/security/2018/01/15/secure-contexts-everywhere/
Firefoxs는 앞으로 새로운 기능(JavaScript, CSS, HTTP, 포맷 등)을 사용할 때 Secure Contexts(HTTPS) 에서만 동작하게 하는 정책에 대해서 작성돼 있습니다.
CSS color keyword와 같이 기존 기능에 새로운 값을 추가하는 변경은 예외로 하는 부분도 소개돼 있습니다.
Release v6.0.0 · epoberezkin/ajv
github.com/epoberezkin/ajv/releases/tag/v6.0.0
JSON Schema Validator의 ajv 6.0.0이 릴리스 됐습니다.
JSON Schema Draft-07를 지원합니다.
아티클
But really, what is a JavaScript test? – kentcdodds
blog.kentcdodds.com/but-really-what-is-a-javascript-test-46fe5f3fad77
JavaScript 환경에서의 테스트란 무엇인지 이야기합니다.
if와 throw를 사용한 경우에서 assert
를 사용한 경우, 테스트 프레임워크를 사용해 구조화한 경우를 순서대로 살펴볼 수 있습니다.
Introducing Immer: Immutability the easy way – Michel Weststrate – Medium
medium.com/@mweststrate/introducing-immer-immutability-the-easy-way-9d73d8f71cb3
Immutable하게 객체를 갱신하는 immer
를 소개합니다.
Proxy를 사용해 실제로 변경된 경우에만 객체 자신을 갱신하는 구조를 갖고 있으며 개발 모드에서는 Object.freeze
을 사용해 자동으로 모든 데이터 구조를 불변화 시키는 기능도 제공합니다.
Redux의 Reducer와 비슷한 패턴을 Mutable한 API에서 사용합니다.
HTTP/2의 내막(일본어)
www.ibm.com/developerworks/jp/web/library/wa-http2-under-the-hood/index.html
HTTP/2의 역사와 특징 등 개요에 대해 요약 정리한 글입니다.
낮은 대역폭 및 높은 지연 시간 이해 | Web | Google Developers(일본어)
developers.google.com/web/fundamentals/performance/poor-connectivity/?hl=ja
네트워크 대역이나 레이턴시를 시뮬레이터하는 도구나 lie-fi로 불리는 네트워크의 문제에 대해서 작성돼 있습니다.
Service Worker를 사용한 간헐적인 연결 처리에 대해서도 작성돼 있습니다.
Learn TDD in React
Cypress를 사용한 E2E 테스트를 작성하면서 컴포넌트를 구현하는 방법을 튜토리얼로 소개한 글입니다.
data-test
속성을 사용하여 테스트 컴포넌트를 지정하여 기능을 구현하는 일련의 과정에 대해 작성돼 있습니다.
What’s new in Vue Devtools 4.0 – The Vue Point – Medium
medium.com/the-vue-point/whats-new-in-vue-devtools-4-0-9361e75e05d0
Vue DevTools 4.0의 변경 사항에 대해 정리돼 있습니다.
컴포넌트의 데이터 편집, 아이템의 추가나 삭제, Quick Edit, 에디터에서 컴포넌트의 파일을 바로 열기 기능을 지원하고 이벤트 필터 기능이 개선됐습니다.
사이트, 서비스, 문서
How to Read the ECMAScript Specification
ECMAScript 사양 문서를 읽는 방법에 대해 작성돼 있습니다.
2017 JavaScript Rising Stars
2017년의 JavaScript 관련 프로젝트의 Star 증가 추이를 기반으로 랭킹한 문서입니다.
소프트웨어, 도구, 라이브러리
React Studio
React 기반의 사이트를 만들 수 있는 GUI 에디터입니다. 페이지 간 상호 작용도 다룰 수 있습니다.
russellgoldenberg/scrollama: Scrollytelling with IntersectionObserver.
github.com/russellgoldenberg/scrollama
IntersectionObserver 기반의 스크롤에서 Sticky 효과 등을 다룰 수 있는 라이브러리입니다.
스크롤 시 디자인이나 효과가 바뀌는 구현을 조금 더 쉽게 보조하는 역할을 합니다.
NervJS/nerv: A blazing fast React alternative, compatible with IE8 and React 16.
React 스러운 API를 제공하는 라이브러리로 저용량, 다양한 브라우저 지원을 추구하며 React와의 호환성을 갖고 있습니다. 또, IE8을 지원하고 devTools이나 Redux와 연동을 위한 패키지도 제공합니다.
zouhir/jarvis: A very intelligent browser based Webpack dashboard
빌드 현황 대시보드를 제공하는 webpack 플러그인 입니다.
도서
React 본격 입문 도입부터 테스트까지, 빠르게 렌더링하기 위한 개발 방법(아나이 히로유키, 시바타 카즈키, 이시이 나오야, 미미야 하지메) | 사영사(일본서적)
www.shoeisha.co.jp/book/detail/9784798153353
2018년 02월 19일 출간 예정인 React를 주제로 한 서적입니다.