새롭게 개발된 이유새롭게개발된 이유
기존언어채택할수도있었지만,기존언어채택할수도있었지만,
'Java'스럽게보여야함과'Java'를돋보이게하는'Java'스럽게보여야함과'Java'를돋보이게하는
마케팅적측면(Netscape과Sun간의협정)압력마케팅적측면(Netscape과Sun간의협정)압력
Mocha→LiveScript→JavaScriptMocha→LiveScript→JavaScript
10.
History of ReleaseHistoryof Release
1996/11표준화작업시작1996/11표준화작업시작
상표권이슈로'Java'를사용하지못함
표준화진행을위해ECMA(EuropeanComputer
ManufacturersAssociation)선택→ECMAScript
표준을위한식별자'ECMA-262'부여
담당위원회는TC39: tobecome'standard'5stages
Vanilla is notcommonVanilla is not common
Vanilla개발은일반적이지않음
Framework+toolchains(transpiler,bundling)
실작업코드는브라우저에서직접적인실행어려움실작업코드는브라우저에서직접적인실행어려움
최종적결과물은transpile을통해JS로변환최종적결과물은transpile을통해JS로변환
19.
오늘날의 JS 개발은?오늘날의JS 개발은?
프레임워크 + 개발도구프레임워크 + 개발도구
대다수 '기능'들은대다수 '기능'들은
npm 패키지를 사용, '조립'npm 패키지를 사용, '조립'
20.
개발 방식의 진화개발방식의 진화
Library → FrameworkLibrary → Framework
직접적인DOM핸들링필요성감소
DOMAPInative지원향상(ex.CSSselector엔진불필요)
컴포넌트단위의기능에집중,DOM은프레임워크에맡김
→프레임워크에따라보다효율적인DOM(VirtualDOM등)
처리제공
[참고][참고]RemovingjQueryfromGitHub.comfrontendRemovingjQueryfromGitHub.comfrontend
버전 구분 중요성감소버전 구분 중요성 감소
ES20xx/ESxES20xx/ESx
Annualrelease로인해해마다릴리스
새로운명세의릴리스까지너무오래소요
단일릴리스모델의한계
Transpiler(Babel)는최신스펙사용이슈해결
과거와같이버저닝에큰변화가아닌feature단위
는스펙을빠르게구현Evergreen브라우저
[참고][참고]JavaScript—WTFisES6,ES8,ES2017,ECMAScript…?JavaScript—WTFisES6,ES8,ES2017,ECMAScript…?
지속적 복잡도 증가지속적복잡도 증가
이미필수적인도구들도넘쳐나는상황에서이미필수적인도구들도넘쳐나는상황에서
무언가를하나추가할때마다비례하는도구들의증가무언가를하나추가할때마다비례하는도구들의증가
xxx-loader-xxx,xxx-plugin-xxx,...xxx-loader-xxx,xxx-plugin-xxx,...
2018/09기준,플러그인수:2018/09기준,플러그인수:
webpack
plugin: 개
loader 개
babel 개
3,319
3,502
3,142
60.
최신 업데이트최신 업데이트
항상정답인가?항상 정답인가?
도구들의업데이트에따라코드수정이필요한모순적상황도구들의업데이트에따라코드수정이필요한모순적상황
이러한작업은때에따라많은리소스수반이러한작업은때에따라많은리소스수반
메이저업데이트후,수많은플러그인들은메이저업데이트후,수많은플러그인들은
대비되지않거나대체제가없기도대비되지않거나대체제가없기도
[참고][참고]Babel7:Babel7:
Webpack4:Webpack4:
MajorBreakingChangesMajorBreakingChanges
Breakingchangesforplugins/loadersBreakingchangesforplugins/loaders
각자의 사정은 모두다르다.각자의 사정은 모두 다르다.
'무엇'이 정답이라 할수 없다.'무엇'이 정답이라 할수 없다.
과거jQuery,AngularJS가답처럼여겨졌지만,과거jQuery,AngularJS가답처럼여겨졌지만,
지금React가대세적인흐름의상태에서지금React가대세적인흐름의상태에서
Angular가정답이라고할수있을까?Angular가정답이라고할수있을까?
그때는맞고,지금은틀리다.그때는맞고,지금은틀리다.
63.
모든 것을 다알아야 할까?모든 것을 다 알아야 할까?
누군가는'특정'영역에보다관심을쏟을수있고,누군가는'특정'영역에보다관심을쏟을수있고,
더'많이'알고있을수도있다.더'많이'알고있을수도있다.
그것이모범적인'답변'일까?그것이모범적인'답변'일까?
64.
모든 것을 알수있을까?모든 것을 알수 있을까?
LinusTorvalds가모든Linux의모든생태계의변화들을,LinusTorvalds가모든Linux의모든생태계의변화들을,
BrendanEich가모든JS생태계의변화들을BrendanEich가모든JS생태계의변화들을
알고 있을거라고알고 있을거라고
생각하시나요?생각하시나요?
결국은 적당한 밸런스결국은적당한 밸런스
너무많은것을알려고하지않아도된다.너무많은것을알려고하지않아도된다.
그러나,적당한'호기심'은가져야하며,'지속적'인꾸준함은필요그러나,적당한'호기심'은가져야하며,'지속적'인꾸준함은필요
세상은 할게 너무 많다.세상은 할게 너무 많다.
영화도봐야하고,음악도들어야하고
게임,연애,여행...