JSer.info #340 - WebGL 프레임워크 Babylon.js 3.0이 릴리즈됐습니다.
WebGL 2, WebVR 1.1, morph target을 지원하고 Babylon.GUI가 추가됐습니다 또, WebCam을 이용한 라이브 텍스쳐를 대응하는 등 다양한 변경이 이뤄졌습니다.
자세한 내용은 릴리즈 노트 등을 참고하세요.
Let's Dev: A Package Manager | Yarn Blog에는 Yarn과 같은 패키지 매니저를 만드는 방법이 작성돼 있습니다.
300행 정도의 코드로 어떻게 패키지를 다운로드 하고 의존 관계 문제를 해결하며 링크하는지 또, 의존 관계 최적화가 성능에 미치는 영향 등 Yarn과 관련된 디자인에 관해 작성돼 있습니다.
samccone/bundle-buddy: A tool to identify bundle duplication across splits.는 Code Splitting 했을 때 생성된 각 bundle(chunck)에서 중복된 모듈이 없는지 시각화 해줍니다.
최근, 초기 로드 시간을 줄이기 위해 Code Splitting을 하는 경우가 늘어나고 있습니다.
한편, 본래 하나였던 bundle을 분리하게 되면 코드 간 공통으로 사용하는 모듈이 여러 bundle에서 참조될 가능성이 생깁니다. 이때 분리된 각 bundle에 같은 모듈의 복사본이 포함되게 됩니다.
이 도구는 Source Map을 사용해 각 bundle에서 중복해 포함돼 있는 모듈이 있는지 조사할 수 있도록 관련 정보를 시각화 해줍니다.
헤드라인
Announcing Babylon.js 3.0 - Building Apps for WindowsBuilding Apps for Windows
blogs.windows.com/buildingapps/2017/07/12/announcing-babylon-js-3-0/
WebGL 프레임워크 Babylon.js 3.0이 릴리즈됐습니다.
WebGL 2, WebVR 1.1, morph target을 지원하고 Babylon.GUI가 추가됐습니다. 또, WebCam을 이용한 라이브 텍스쳐를 대응했습니다.
Release v2.4.0 Kill la Kill · vuejs/vue
github.com/vuejs/vue/releases/tag/v2.4.0
Vue 2.4.0이 릴리즈됐습니다.
SSR에서 async component를 지원합니다. 컴포넌트 옵션으로 inheritAttrs
, 인스턴스 프로퍼티로 $attrs
과 $listeners
가 추가됐습니다.
comments
옵션을 사용하여 템플릿 내에 HTML 코멘트를 유지할 수 있게 되는 등 다양한 변경이 이뤄졌습니다.
Release 0.21.0 · avajs/ava
github.com/avajs/ava/releases/tag/v0.21.0
AVA 0.21.0이 릴리즈됐습니다.
Buffer
를 사용하고 있어 Node.js 4.5 미만에서 동작하지 않는 문제와 flow 타입과 관련된 사항이 수정됐습니다.
Security updates for all active release lines, July 2017 | Node.js
nodejs.org/en/blog/vulnerability/july-2017-security-releases/
Node.js v4, 6, 7, 8의 보안 업데이트가 이뤄졌습니다. V8 Snapshots를 활성화 할 경우 문제가 있어 기본적으로 snapshots이 비활성화 됐습니다. 따라서 이 문제가 해결되기 전 까지 당분간 vm.runInNewContext
의 성능이 저하된 상태가 지속될 예정입니다.
Sass 3.5 is Released « Sass Blog
sass.logdown.com/posts/2026639-sass-35-is-released
Sass 3.5이 릴리즈됐습니다.
::slotted()
을 지원하고 CSS color function에 var()
를 전달(pass)할 수 있도록 변경됐습니다. 또, Dart Sass의 호환성 개선이 이뤄졌습니다.
Release 8.0.0 · stylelint/stylelint
github.com/stylelint/stylelint/releases/tag/8.0.0
stylelint 8.0.0이 릴리즈됐습니다.
Semver policy와 새로운 config인 stylelint-config-recommended
가 추가됐으며 일부 규칙이 삭제거나 비권장(deprecated) 됐습니다.
아티클
JavaScript Test-Runners Benchmark – DailyJS – Medium
medium.com/dailyjs/javascript-test-runners-benchmark-3a78d4117b4
여러개의 JavaScript 테스트 프레임워크를 벤치마크하여 소개한 글입니다.
동기 및 비동기 테스트를 jasmine, mocha, AVA, Jest 등 유명한 테스트 프레임워크에서 실행하고 각 속도를 비교 및 분석하고 있습니다.
What's New In DevTools (Chrome 61) | Web | Google Developers
developers.google.com/web/updates/2017/07/devtools-release-notes
Chrome 61 개발자 도구의 변경 사항이 정리돼 있습니다.
모바일 디바이스 시뮬레이트에 Throttling 설정이 추가됐고 Storage의 이용 현황이 표시됩니다. 또 Flamechart의 마우스 휠 동작을 설정 가능하도록 변경됐으며 ES Modules의 디버깅 기능이 추가됐습니다.
Let's Dev: A Package Manager | Yarn Blog
yarnpkg.com/blog/2017/07/11/lets-dev-a-package-manager/
Yarn 같은 패키지 관리 도구를 만들어보면서 그 디자인을 살펴볼 수 있는 튜토리얼입니다.
어떻게 패키지를 다운로드하고 의존 관계 문제를 해결하며 링크하는지 알 수 있습니다.
또, 의존 관계를 어떻게 최적화하는지에 대해서도 작성돼 있습니다.
사이트, 서비스, 문서
samccone/bundle-buddy: A tool to identify bundle duplication across splits.
github.com/samccone/bundle-buddy
webpack 등으로 Code Splitting한 경우에 각 bundle 파일에 중복돼 있는 모듈이 있는지 찾아볼 수 있는 도구입니다.
Learn Apollo | Hands-on GraphQL Tutorial
Apollo 클라이언트(GraphQL)를 학습할 수 있는 튜토리얼 사이트입니다.
Web 클라이언트 사이드의 성능 측정 항목 — Speed Index、Paint Timing、TTI etc... ::허브로그(일본어)
havelog.ayumusato.com/develop/performance/e744-performance_metrics.html
웹 클라이언트 사이드 성능에 있어 중요 지표가 되는 값이나 Performance Budget 등, 관련된 용어가 설명돼 있습니다.
Redux isn't slow, you're just doing it wrong - An optimization guide | React Rocket
reactrocket.com/post/react-redux-optimization/
Redux 기반의 애플리케이션의 성능 튜닝에 대해 작성돼 있는 글입니다. connect
옵션을 이용하고 컴포넌트에 필요한 최소한의 데이터를 전달하며 Reselect을 사용해 데이터를 플랫하게 운영하는 방법 등에 대해 소개돼 있습니다.
소프트웨어, 도구, 라이브러리
vadimdemedes/ink: 🌈 React for CLIs
React스러운 접근법과 문법을 이용해 커맨드 라인 애플리케이션을 만들 수 있는 라이브러리입니다.
커맨드 라인 결과를 컴포넌트로 출력할 수 있도록 디자인돼 있습니다.
azu/immutable-array-prototype: A collection of Immutable Array prototype methods(Per method packages).
github.com/azu/immutable-array-prototype
Array#push
와 같이 배열 관련 가변 메서드를 불변 메서드로 개발한 버전을 모아놓은 라이브러리입니다.
메서드를 개별 패키지로 설치하는 것도 가능합니다.
indutny/webpack-common-shake: CommonJS Tree Shaker plugin for WebPack
github.com/indutny/webpack-common-shake
CommonJS의 모듈을 대상으로 Tree Shaking하는 webpack 플러그인 입니다.
Atomic Lab - component guide generator based on partial templates
steelydylan.github.io/atomic-lab/
Custom Element, EJS 등의 HTML 프래그먼트를 실제로 출력해보고 확인할 수 있는 개발 환경 도구입니다.
glayzzle/php-parser: NodeJS PHP Parser - extract AST or tokens (PHP5 and PHP7)
github.com/glayzzle/php-parser
JavaScript로 작성된 PHP 5/7의 파서입니다.
Kornel / babel-preset-php · GitLab
gitlab.com/kornelski/babel-preset-php
PHP의 문법으로 작성된 코드를 JavaScript의 문법으로 변환할 수 있는 Babel presets 입니다.
도서
Practical Node.js: Building Real-World Scalable Web Apps: Azat Mardan: 9781484230381: Amazon.com: Books
2018년 3월 22일에 출간 예정인 Practical Node.js의 제 2 판입니다.