7. The purpose of BirthThe purpose of Birth
MarcAndreessenMarcAndreessen
당시웹은정적,DOM인터렉션을통해당시웹은정적,DOM인터렉션을통해
다이내믹한웹을만들고자하는비전다이내믹한웹을만들고자하는비전
Java와JavaApplets큰인기,비개발자에겐덩치가크고복잡
작고단순한작업을대상,비개발자(ex디자이너)도쉽게접근가능한언어필요
9. 새롭게 개발된 이유새롭게 개발된 이유
기존언어채택할수도있었지만,기존언어채택할수도있었지만,
'Java'스럽게보여야함과'Java'를돋보이게하는'Java'스럽게보여야함과'Java'를돋보이게하는
마케팅적측면(Netscape과Sun간의협정)압력마케팅적측면(Netscape과Sun간의협정)압력
Mocha→LiveScript→JavaScriptMocha→LiveScript→JavaScript
10. History of ReleaseHistory of Release
1996/11표준화작업시작1996/11표준화작업시작
상표권이슈로'Java'를사용하지못함
표준화진행을위해ECMA(EuropeanComputer
ManufacturersAssociation)선택→ECMAScript
표준을위한식별자'ECMA-262'부여
담당위원회는TC39: tobecome'standard'5stages
18. Vanilla is not commonVanilla 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
39. npm vs yarnnpm vs yarn
초기yarn의장점(속도)점점퇴색초기yarn의장점(속도)점점퇴색
[참고][참고]https://github.com/thomaschaaf/npm-vs-yarnhttps://github.com/thomaschaaf/npm-vs-yarn
58. 무엇을 사용하던간에무엇을 사용하던간에
결국 JavaScript 아닌가?결국 JavaScript 아닌가?
Transpiling:결국실행되는JS코드생성필요Transpiling:결국실행되는JS코드생성필요
‐DouglasCrockford‐DouglasCrockford
TSaddssweetness,butataprice.TSaddssweetness,butataprice.
[참고][참고] JavaScriptvs.TypeScriptvs.ReasonMLJavaScriptvs.TypeScriptvs.ReasonML
HereiswhyyoumightNOTwanttouseTypeScriptHereiswhyyoumightNOTwanttouseTypeScript
59. 지속적 복잡도 증가지속적 복잡도 증가
이미필수적인도구들도넘쳐나는상황에서이미필수적인도구들도넘쳐나는상황에서
무언가를하나추가할때마다비례하는도구들의증가무언가를하나추가할때마다비례하는도구들의증가
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
62. 각자의 사정은 모두 다르다.각자의 사정은 모두 다르다.
'무엇'이 정답이라 할수 없다.'무엇'이 정답이라 할수 없다.
과거jQuery,AngularJS가답처럼여겨졌지만,과거jQuery,AngularJS가답처럼여겨졌지만,
지금React가대세적인흐름의상태에서지금React가대세적인흐름의상태에서
Angular가정답이라고할수있을까?Angular가정답이라고할수있을까?
그때는맞고,지금은틀리다.그때는맞고,지금은틀리다.
63. 모든 것을 다 알아야 할까?모든 것을 다 알아야 할까?
누군가는'특정'영역에보다관심을쏟을수있고,누군가는'특정'영역에보다관심을쏟을수있고,
더'많이'알고있을수도있다.더'많이'알고있을수도있다.
그것이모범적인'답변'일까?그것이모범적인'답변'일까?
64. 모든 것을 알수 있을까?모든 것을 알수 있을까?
LinusTorvalds가모든Linux의모든생태계의변화들을,LinusTorvalds가모든Linux의모든생태계의변화들을,
BrendanEich가모든JS생태계의변화들을BrendanEich가모든JS생태계의변화들을
알고 있을거라고알고 있을거라고
생각하시나요?생각하시나요?
66. 결국은 적당한 밸런스결국은 적당한 밸런스
너무많은것을알려고하지않아도된다.너무많은것을알려고하지않아도된다.
그러나,적당한'호기심'은가져야하며,'지속적'인꾸준함은필요그러나,적당한'호기심'은가져야하며,'지속적'인꾸준함은필요
세상은 할게 너무 많다.세상은 할게 너무 많다.
영화도봐야하고,음악도들어야하고
게임,연애,여행...