SlideShare une entreprise Scribd logo
1  sur  19
Next Javascript

ES2015 시작하기
FE-next Group

이진권
ES6? ES2015?
• 최초엔 ES5의 다음 버전이라고 하여 ES6로 지칭
• ES6, ES7 등의 명세 작업에 TC39가 착수하면서 

ES2015 라고 부르자는 커뮤니티 합의가 있었음

https://esdiscuss.org/topic/javascript-2015
• 둘다 명칭은 맞지만 ES2015로 부르는 추세
Technical Commitee:
TC39
• ECMA : European Computer Manufacturers
Association
• ECMA에 는 기술 위원회 (TC39)를 발족,



문법과 의미를 표 화,

일반적인 목 에 쓸 수 있고, 

플랫폼을 가리지 않으며,

제조사에 중립적인 스크립트 어를 만들기로 함
ES2015 Syntax
• 대다수 브라우저는 아직 ES5 만 해 할 수 있음

(최신 크롬도 마찬가지)
• ES2015의 문법을 이 할 수 있는 브라우저는 

극히 일부
• 과연 지금 공부해서 쓸모가 있을까?
Next Frameworks
• 그럼에도 최신 FE 프레임워크들은 차 ES2015

(혹은 ES2015명세를 포함하는 TypeScript) 

형태로 개발 되기 시작

근래 많은 오픈소스 라이브러리도 ES2015로 개발
• 트렌드나 택이 아니라 필수로 자리 매김 하는 분위기

(ECMAScript Standard)
• React.js
• Angular 2
• 기타 등등 (video.js)
So, can I use ES2015?
• 실제 서비스 사례

30여개 서비스를 대상으로 한 어느 모듈

Babel 변환을 기반으로 한 ES2015 로 100% 전환
• 필드에 8개월간 수많은 피드 을 받아본 과,

Polyfill을 이용했을 때 기본적인 문법들은 정상적으로 동작

(심지어 IE7-8, Android 2 OK)
• BUT, 기능에 따라 동작 여부 확인 필요

(Promise, WeakMap 등)
• Babel 6 을 사용하려면 좀 더 신중할 필요

(IE8에 syntax 오류가 발생하는 default 키워드 변환 > 이 참
고 > https://phabricator.babeljs.io/T2817)
Babel
• ES2015의 Syntax 에 대한 많은 화
• 거의 모든 브라우저에 100% 지원이 되지 않음
• 하지만, 문법은 언젠가 표 화 될 것이고, 지금 당장 사용
하려면 변환(transform to ES5) 프로세스가 필요함
• 그 변환을 도와주는 

node.js 기반의 Front-End 도구. Babel.js
• 기존의 여러 도구들과 통합해서 사용 가능

(gulp, grunt, webpack 등등)
Preset ES2015
• babel 만으로는 변환이 되지 않음
• preset 이라는 추가 node 모듈(패키지)을 설치하여 

babel 변환에 사용
• preset 은 여러가지가 재

stage-0,1,2, preset2015, react
• 여러 플러그인을 포함하는 일종의 패키지
일단 실행 & 실습 해보기
• babel에 제공하는 실시간 Transformer

http://babeljs.io/repl/
• 좌측 코드는,

브라우저에 

바로 실행 안됨
• 변환된 우측 코드는,

브라우저에 

바로 실행 가능
커맨드 실행
저 babel 도구 설치

(node.js 선행 설치 필요)
npm install -g babel-cli (babel cli 설치)
npm install babel babel-preset-es2015
그리고 babel 실행
RUN building
그리고, 고도화
• 입맛대로 골라쓰기

(빨간색은 작성자 선호 도구)
• gulp, grunt - task runner
• webpack, browserify - module bundler
imports?
• js 안에 추가로 파일 import를 할 땐 

module bundler가 필요. (webpack, browserify)


다양한 툴이 있기 때문에 기호에 맞춰서 사용됨
레퍼런스 모음
• 호환성 테이블

http://kangax.github.io/compat-table/es6/
• ES6 Features

http://es6-features.org/
• ES6 Features github

https://github.com/lukehoban/es6features
• Babel - learn ES2015

https://babeljs.io/docs/learn-es2015/
산출물 코드 저장
• https://github.com/FE-next/es2015/
Appendix1. 

Webstorm with ES2015
• Webstorm 이용시 에디터창에 

es2015인식을 못할땐,



설정에 Languages & Frameworks >
Javascript 의 Javascript language version 을
ECMAScript 6로 변경
Appendix2.

Sourcemap으로 디버깅을 편하게
• webpack 사용시 설정파일에 devtool:
‘sourcemap’을 하면 소스맵을 만들수 있음
• gulp 사용시 gulp-sourcemaps 이용 가능
Appendix3.

Live Coding
• webpack 을 써서 프로젝트를 만들다보면 transform 과
정에 시간이 많이 소요됨

(어느 프로젝트는 10초 내외)
• 매 코드를 갱신하려면 10초씩 기다려야 하지만,

webpack-dev-server를 이용하면 빠르게 변환이 가능함

http://webpack.github.io/docs/webpack-dev-server.html
• 작성해서 사용하고 있는 샘플 코드

https://github.com/FE-next/es2015/blob/master/jinkwon/spinbox/
webpack.dev-server.config.js
감사합니다.

Contenu connexe

Tendances

[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재NAVER D2
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석
[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석
[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석Junki Kim
 
JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기항희 이
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅JinKwon Lee
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문라한사 아
 
퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다정석 양
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔NAVER D2
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)NAVER D2
 
컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기우영 주
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN정호 전
 
[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation양귀 김
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 jeong seok yang
 
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화흥래 김
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Junsu Kim
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자지수 윤
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015sung yong jung
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYHyun-woo Park
 

Tendances (20)

[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
[네이버오픈소스세미나] egjs-view360 개발기 - 김희재
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석
[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석
[별천지 세미나] HTML5 is Ready: Fastbook 기술적 분석
 
JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기JavaScript 프레임워크 살펴보기
JavaScript 프레임워크 살펴보기
 
Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅Logcat과 함께 하는 모바일 웹 디버깅
Logcat과 함께 하는 모바일 웹 디버깅
 
Groovy 시작 입문
Groovy 시작 입문Groovy 시작 입문
Groovy 시작 입문
 
퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔[124] 하이브리드 앱 개발기 김한솔
[124] 하이브리드 앱 개발기 김한솔
 
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
 
컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기컴포넌트 관점에서 개발하기
컴포넌트 관점에서 개발하기
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
빠른 프로토타이핑을 위한 웹앱 자동화 툴 - YEOMAN
 
[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation[별천지 세미나] CSS3 Animation
[별천지 세미나] CSS3 Animation
 
프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트 프론트엔드 개발자의 자바스크립트
프론트엔드 개발자의 자바스크립트
 
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
 
Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)Web Framework (웹 프레임워크)
Web Framework (웹 프레임워크)
 
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자코드스쿼드 마스터즈세미나 - UI개발자가돼보자
코드스쿼드 마스터즈세미나 - UI개발자가돼보자
 
Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015Isomorphicspring Isomorphic - spring web seminar 2015
Isomorphicspring Isomorphic - spring web seminar 2015
 
Do not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDYDo not use Django as like as SMARTSTUDY
Do not use Django as like as SMARTSTUDY
 

Similaire à Next Javascript ES2015 시작하기

회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기Dexter Jung
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017devCAT Studio, NEXON
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!SangHoon Han
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원NAVER D2
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래cho hyun jong
 
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)Sang Don Kim
 
Eclipse basic(조현종)
Eclipse basic(조현종)Eclipse basic(조현종)
Eclipse basic(조현종)cho hyun jong
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐라한사 아
 
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기WhaTap Labs
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP FrameworkInseok Lee
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaLazy Ahasil
 
IT 서비스 개발 15년 _ IT service 15 years
IT 서비스 개발 15년 _ IT service 15 yearsIT 서비스 개발 15년 _ IT service 15 years
IT 서비스 개발 15년 _ IT service 15 years연지 김
 
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
Firebase for Web (웹개발을 위한 파이어베이스) 1 HostingFirebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting승빈이네 공작소
 
오픈소스가이드 win,c++
오픈소스가이드 win,c++오픈소스가이드 win,c++
오픈소스가이드 win,c++jdo
 
Concurrent programming 2
Concurrent programming 2Concurrent programming 2
Concurrent programming 2Byeongsu Kang
 

Similaire à Next Javascript ES2015 시작하기 (20)

회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기회사에서 새로운 기술_적용하기
회사에서 새로운 기술_적용하기
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
 
두근두근 ASP.NET 5!
두근두근 ASP.NET 5!두근두근 ASP.NET 5!
두근두근 ASP.NET 5!
 
131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원131 deview 2013 yobi-채수원
131 deview 2013 yobi-채수원
 
올챙이 현재와 미래
올챙이 현재와 미래올챙이 현재와 미래
올챙이 현재와 미래
 
[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)[Td 2015]두근두근 asp.net 5(한상훈)
[Td 2015]두근두근 asp.net 5(한상훈)
 
Eclipse basic(조현종)
Eclipse basic(조현종)Eclipse basic(조현종)
Eclipse basic(조현종)
 
구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐구글앱엔진+스프링+스프링datajpa+메이븐
구글앱엔진+스프링+스프링datajpa+메이븐
 
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
[WhaTap DevOps Day] 세션 6 : 와탭랩스 DevOps 이야기
 
Webpack&babel
Webpack&babelWebpack&babel
Webpack&babel
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
초고속 웹사이트 개발을 위한 Codeigniter PHP Framework
 
C++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & NanaC++ GUI 라이브러리 소개: Qt & Nana
C++ GUI 라이브러리 소개: Qt & Nana
 
IT 서비스 개발 15년 _ IT service 15 years
IT 서비스 개발 15년 _ IT service 15 yearsIT 서비스 개발 15년 _ IT service 15 years
IT 서비스 개발 15년 _ IT service 15 years
 
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
Firebase for Web (웹개발을 위한 파이어베이스) 1 HostingFirebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
Firebase for Web (웹개발을 위한 파이어베이스) 1 Hosting
 
오픈소스가이드 win,c++
오픈소스가이드 win,c++오픈소스가이드 win,c++
오픈소스가이드 win,c++
 
Concurrent programming 2
Concurrent programming 2Concurrent programming 2
Concurrent programming 2
 

Next Javascript ES2015 시작하기

  • 2. ES6? ES2015? • 최초엔 ES5의 다음 버전이라고 하여 ES6로 지칭 • ES6, ES7 등의 명세 작업에 TC39가 착수하면서 
 ES2015 라고 부르자는 커뮤니티 합의가 있었음
 https://esdiscuss.org/topic/javascript-2015 • 둘다 명칭은 맞지만 ES2015로 부르는 추세
  • 3. Technical Commitee: TC39 • ECMA : European Computer Manufacturers Association • ECMA에 는 기술 위원회 (TC39)를 발족,
 
 문법과 의미를 표 화,
 일반적인 목 에 쓸 수 있고, 
 플랫폼을 가리지 않으며,
 제조사에 중립적인 스크립트 어를 만들기로 함
  • 4. ES2015 Syntax • 대다수 브라우저는 아직 ES5 만 해 할 수 있음
 (최신 크롬도 마찬가지) • ES2015의 문법을 이 할 수 있는 브라우저는 
 극히 일부 • 과연 지금 공부해서 쓸모가 있을까?
  • 5. Next Frameworks • 그럼에도 최신 FE 프레임워크들은 차 ES2015
 (혹은 ES2015명세를 포함하는 TypeScript) 
 형태로 개발 되기 시작
 근래 많은 오픈소스 라이브러리도 ES2015로 개발 • 트렌드나 택이 아니라 필수로 자리 매김 하는 분위기
 (ECMAScript Standard) • React.js • Angular 2 • 기타 등등 (video.js)
  • 6. So, can I use ES2015? • 실제 서비스 사례
 30여개 서비스를 대상으로 한 어느 모듈
 Babel 변환을 기반으로 한 ES2015 로 100% 전환 • 필드에 8개월간 수많은 피드 을 받아본 과,
 Polyfill을 이용했을 때 기본적인 문법들은 정상적으로 동작
 (심지어 IE7-8, Android 2 OK) • BUT, 기능에 따라 동작 여부 확인 필요
 (Promise, WeakMap 등) • Babel 6 을 사용하려면 좀 더 신중할 필요
 (IE8에 syntax 오류가 발생하는 default 키워드 변환 > 이 참 고 > https://phabricator.babeljs.io/T2817)
  • 7. Babel • ES2015의 Syntax 에 대한 많은 화 • 거의 모든 브라우저에 100% 지원이 되지 않음 • 하지만, 문법은 언젠가 표 화 될 것이고, 지금 당장 사용 하려면 변환(transform to ES5) 프로세스가 필요함 • 그 변환을 도와주는 
 node.js 기반의 Front-End 도구. Babel.js • 기존의 여러 도구들과 통합해서 사용 가능
 (gulp, grunt, webpack 등등)
  • 8. Preset ES2015 • babel 만으로는 변환이 되지 않음 • preset 이라는 추가 node 모듈(패키지)을 설치하여 
 babel 변환에 사용 • preset 은 여러가지가 재
 stage-0,1,2, preset2015, react • 여러 플러그인을 포함하는 일종의 패키지
  • 9. 일단 실행 & 실습 해보기 • babel에 제공하는 실시간 Transformer
 http://babeljs.io/repl/ • 좌측 코드는,
 브라우저에 
 바로 실행 안됨 • 변환된 우측 코드는,
 브라우저에 
 바로 실행 가능
  • 10. 커맨드 실행 저 babel 도구 설치
 (node.js 선행 설치 필요) npm install -g babel-cli (babel cli 설치) npm install babel babel-preset-es2015 그리고 babel 실행
  • 12. 그리고, 고도화 • 입맛대로 골라쓰기
 (빨간색은 작성자 선호 도구) • gulp, grunt - task runner • webpack, browserify - module bundler
  • 13. imports? • js 안에 추가로 파일 import를 할 땐 
 module bundler가 필요. (webpack, browserify) 
 다양한 툴이 있기 때문에 기호에 맞춰서 사용됨
  • 14. 레퍼런스 모음 • 호환성 테이블
 http://kangax.github.io/compat-table/es6/ • ES6 Features
 http://es6-features.org/ • ES6 Features github
 https://github.com/lukehoban/es6features • Babel - learn ES2015
 https://babeljs.io/docs/learn-es2015/
  • 15. 산출물 코드 저장 • https://github.com/FE-next/es2015/
  • 16. Appendix1. 
 Webstorm with ES2015 • Webstorm 이용시 에디터창에 
 es2015인식을 못할땐,
 
 설정에 Languages & Frameworks > Javascript 의 Javascript language version 을 ECMAScript 6로 변경
  • 17. Appendix2.
 Sourcemap으로 디버깅을 편하게 • webpack 사용시 설정파일에 devtool: ‘sourcemap’을 하면 소스맵을 만들수 있음 • gulp 사용시 gulp-sourcemaps 이용 가능
  • 18. Appendix3.
 Live Coding • webpack 을 써서 프로젝트를 만들다보면 transform 과 정에 시간이 많이 소요됨
 (어느 프로젝트는 10초 내외) • 매 코드를 갱신하려면 10초씩 기다려야 하지만,
 webpack-dev-server를 이용하면 빠르게 변환이 가능함
 http://webpack.github.io/docs/webpack-dev-server.html • 작성해서 사용하고 있는 샘플 코드
 https://github.com/FE-next/es2015/blob/master/jinkwon/spinbox/ webpack.dev-server.config.js