[JSer.info#번역] 2014-12-30 자바스크립트 주요 소식

Posted by in Research

jsdom 2.0.0 릴리즈

DOM을 자바스크립트로 구현(Node.js에서도 동작하는 DOM 구현)한 jsdom 2.0.0이 릴리즈 됐습니다.  특별히 기능을 추가한 것이 아닌데도 2.0.0을 발표한 이유는 지금까지는 DOM Level 1, 2, 3로 나눠 구현하고 있었지만 향후는 Living Standard 모델로 구현해 나간다는 방침을 표하기 위해서라고 합니다. 버전 번호를 붙이는 것은 장점보다 단점이 많다고 판단하고 있으며 jsdom 내부에서도 level 별로 나누기가 힘든 수준에 이르렇기 때문에 Living Standard 모델로 바꾸는 듯 합니다. 따라서  내부적인 구조를 크게 변경하는 리팩토링을 하고 있다고 합니다. 하지만 사용자 인터페이스에는 큰 변화가 없을것으로 보입니다.

6to5 2.0.0 릴리즈

ES6 코드를 ES5로 변환하는 도구인 6to5 2.0.0(현 시점 2.2.0 까지 나와있습니다만)이 릴리즈됐습니다. Flow의 타입 어노테이션이 작성돼 있어도 패스하고 제거하도록 반영됐으며 ES5, 6의 Polyfill 라이브러리를 Core.js로 변경했습니다. 그리고 성능 개성 등이 이루어지고 있습니다. 자세한 내용은 CHANGELOG를 참고해주세요.

HTMLBars-A Feature-by-Feature Review

위 아티클에는 Ember가 차기 템플릿 엔진으로 채용한 HTMLBars 템플릿 엔진의 구조를 소개하고 있습니다. 현재 Ember는 Handlebars를 사용하고 있는데 이 엔진은 렌더링되기 까지 아래와 같은 흐름으로 동작합니다.

  • Teamplte -> AST -> HTML String -> DOM

HTMLBars는 Handlebars의 문법과 거의 흡사하지만 렌더링되기 까지의 흐름이 다릅니다.

  • Templatre(HTMLBars 컴파일)-> JavaScript 함수 -> DOM

React가 JSX(Template)에서 React.createElement와 같은 함수로 변환하는 것과 비슷하다고 생각하면 됩니다. 이와 같은 방식은 “HTML String” 파싱 작업을 제차 안해도되므로 성능 개선에 효과가 있다고 합니다.

릴리즈 소식

  • Node v0.10.35 (Stable) : Node v0.10.35가 릴리즈됐습니다. 2014년 12월 23일자 소식에서 전해드렸던 루트 인증서 문제가 수정됐습니다.
  • Ember.js – Ember.js 1.9.1 Released : Ember.js 1.9.1이 릴리즈됐습니다. 태그의 이스케이프는 자동으로 되고 있었지만 javascript: 등을 지정한 경우에도 XSS이 될 가능성이 있기 때문에 자동적으로 이스케이프 되도록 변경됐습니다.
  • Release v1.5.0 · eslint/espree : esprima를 fork한 espreee의 1.5.0이 릴리즈됐습니다. JSX의 파싱을 지원합니다.
  • Brackets 1.1 and Extract for Brackets 0.6 Now Available : Brackets 1.1이 릴리즈 됐습니다. 크로스 브라우저 라이브 프리뷰 기능을 시범적으로 지원합니다.

읽을거리

라이브러리

  • JSVerify : QuickCheck를 시행하는 라이브러리입니다. Mocha와  Jasmine을 지원합니다.
  • azu/textlint : 텍스트나 마크다운 문법을 검증하는 도구입니다. ESLint 처럼 규칙을 자바스크립트를 이용해 확장할 수 있습니다.
  • mapbox/pbf : protocol buffers를 구현한 경량 라이브러리입니다.

도서

JSer.info를 번역하여 공유드리고 있습니다.

JSer.info는 JavaScript Weekly, Badass JavaScript, JsMag, A Minute With Brendan, The Changelog를 참고, 자바스크립트의 주요 소식을 공유하는 사이트입니다.

감사합니다.