JS_basic1
본 내용은 Dream Coding Academy의 강의 내용입니다 Go to Dream Coding
1. 자바스크립트의 역사/현재/미래
- 해당내용은 유튜버 드림코딩 by엘리 님의 영상을 정리한 내용입니다 https://youtu.be/wcsVjmHrUQg
언어의 역사를 파악하는 이유!
- 공부의 방식을 명확하게 하여 시간을 단축할 수 있다.
- 해당 언어가 어떻게 탄생했으며, 어떤 문제를 해결하기 위해 만들어 졌으며,이 언어를 배움으로써 어떤 능력을 얻을 수 있는지 생길 수 있는 이득은 무엇인지 알게 되면 어떻게 공부를 해야 하는지 명확해 진다.
- 1993년 Mosaic Web Browser 등장 (by Marc Andressen )
- 1994년 Netscape Navigator (by Marc Andressen // Netscape 설립)
- HTML에 링크를 건 단순한 정적인 웹사이트간 이동만 가능한 구조
- 시장의 80% 점유, 동적인 웹사이트를 만들기 위해 노력⇒Script언어 제작을 결심
- Java(Sun//웹 개발에 다소 무겁고 어려움)와 Scheme(Brendan)중 Scheme와 새로운 언어 개발을 결심⇒기존의Scheme의 개념을 가져오면서 문법은 Java 스럽게 만들게 됨
1994년 9월 단기간에 새로운 언어 탄생 Mocha(내부적) ⇒ LiveScript
- 따라서 Netscape Navigator에 LiveScript Interpreter엔진을 포함 시켜 출시 - 즉, 웹 개발자들이 LiveScript언어를 이용해서 웹페이지를 만들게 되면 브라우저가 그 언어를 이해하면서 실행하고자 하는 것에 알맞게 DOM요소들을 변경시키는 것이 가능하게됨. - 당시 유행이던 Java의 유명세를 빌려 유명해지기 위해 이름을 JavaScript로 변경하게됨. ### 1995년 Microsoft사가 NetscapeNavigator를 Reverse Engineering해 자신만의 언어인 것처럼 J Script를 만들고 IE를 만들어 출시함 - (Reverse Engineering : 만들어진 프로그램의 바이너리코드를 분석해서 소스코드를 복원) - 새로운 브라우저가 생기면서 웹 개발자들은 브라우저에 따른 개발을 해야하기 때문에 어려움이 생겨 Netscape사가 ECMA에 표준을 만들자고 제의를 하게됨.
1997년 7월 ECMAScript1 탄생
1998년 ECMAScript2
1999년 ECMAScript3 ⇒error handling방식,관계연산자 등 추가
2000년 ECMAScript4 ⇒class 등 다양한 아이디어 반영
- IE 점유율이 95%가되며 이러한 표준안에 참가하지 않게 된다
2004년 Firefox 출시(mozilla) ActionScript3/Tamarin엔진으로 표준안 작성제안
- 하지만 기존에 사용하던 JavaScript, J Script와 너무 달라 표준안에 제한됨,따라서 개발자들의 스트레스가 증폭됨
- AJAX기술 명세서 표기(Asychronous JavaScript and XML)발표 (Jeames Garrett)
- AJAX: 비동기적으로 데이터를 받아오고 처리 할 수 있는 기술
개발자들 사이에서 강력한 커뮤니티가 형성됨
- jQuery, dojo, mootools 등의 라이브러리가 출범
- 출범이유: 브라우저에 제한적이지 않게 개발하기 위함 이 중에서 jQuery 가 각광받음
- 좋은프로그래밍의 철학: servic 계층, presentation계층, bussiness계층을 만들때 APIs를 잘만들어서 프로그램 변경시 사용자가 이용하는 인터페이스를 수정하지 않고 변경하는 것!
2008년 Google에서 Chrome브라우저를 출시 JIT엔진(just-in-time compilation)
- javaScript를 실행하는 속도가 엄청나게 빠름
2008년 7월 각 브라우저들 간 협의가 시작됨
2009년 ECMAScript5 출시 ⇒주요 사용되는 기능들
2015년 ECMAScript6 출시 ⇒주요 사용되는 기능들
- (class,const,let,arrowFunction 등)
- 그 후에도 매해 새로운 버전 출시 조금씩 추가됨
이제는 JavaScript는 성숙하고 잘 정착된 언어임을 인정받음
모든 브라우저들이 ECMA의 표준안을 잘 따르고 있으므로 더이상 jQuery등의 라이브러리의 도움이 필요없게됨
- 각 브라우저별 다양한 엔진들이 있으며 특히 Chrome 브라우저의 V8엔진은 node.js와 ELECTRON에서 이용됨
- 하지만 모든 사용자들이 최신 ECMA표준안을 설치해서 사용하지는 않음 따라서 개발자들은 최신버전을 이용해 개발을 하고 배포 할 때만 JavaScript trannscompiler(BABEL)를 이용해서 배포
현재 트렌드 SPA(Single Page Application)필요한 부분만 업데이트해서 바꿈
- (이것을 쉽게 하기 위해 React,vue,Angular 등장)
- 또한 V8엔진을 이용해 back-end를 만들 수 있는 Node.js등장/react.native를 이용해 모바일/ELECTRON을 이용해 Desktop 프로그램을 만들 수도 있음