-
자바스크립트의 역사와 현재 그리고 미래!(드림코딩)Study/JavaScript 2020. 4. 1. 22:13
https://www.youtube.com/watch?v=wcsVjmHrUQg
개인을 위한 요약정리입니다:) 더 자세한 내용은 영상을 이용하세요!!
1993년.
컴퓨터도 잘 모르는 사람들도 쉽게 쓸 수 있는 ui 요소가 더해진 첫번째 Mosaic Web Browser가 나온다.
Mosaic Web Browser 의 개발팀을 이끌던 Marc Andreessen은 대학교를 졸업함과 동시에 Nescape라는 회사를 설립.
1994년.
회사에서 이 전에 만들었던 Mosaic Web Browser 기술을 더해
조금 더 ui요소가 더해진 Netscape Navigator를 만든다.
이당시에는 html와 css로 간단하게 웹페이지를 만들 수가 있었다.
page와 page 에 링크를 걸어서 페이지 이동만 가능한 정말 정적인 웹사이트만 가능했다.
Marc는 이후에도 "어떻게 하면 동적인 웹사이트를 만들 수 있을까?" 계속 고민한다.
그래서 그는 Scripting 언어를 추가하기로 한다!
이렇게 이미 사용자들에게 보여지는 웹사이트 안에서 DOM 요소들을 조작하면서 다이나믹한 요소들을 만들기 위해
MARC는 새로운 언어를 추가하기로 한다.
새로운 언어 후보자.
1) JAVA - 그 때 당시 한창 뜨고 있던 자바 언어. 하지만 웹사이트를 주로 개발하던 개발자들이 쓰기엔 다소 무거운 언어이기에 패스
2) Scheme - Brendan Eich 라는 사람을 스카웃해와서 기존에 있던 Scheme언어를 조금 변형해서 사용하는 방법.
->> marc는 Brendan과 Scheme언어의 컨셉은 유지하며 문법을 좀 더 자바스럽게 만들기로 함.
1994년 9월.
그리하여 Brendan은 내부적으로는 Mocha 라고 불리었던 새로운 언어를 탄생시킴.
추후 LiveScrpt로 이름이 바뀌게 되고 Netscape Navigator 브라우저 안에는 LiveScript를 이해하고 실행할 수 있는
LiveScript 엔진, 즉, interpreter가 포함되어 출시되게 된다.
그 말인 즉슨, 웹개발자들이 LiveScript를 이용해 웹페이지를 만들게 되면 Netscape Navigator 가 그 언어를 이해하면서 그 언어가 실행하고자 하는 것과 알맞게 dom 요소들을 조작하는 것이 가능해짐.
+
당시에 java언어가 엄청난 인기를 끌고 있엇는데,
Netscape 회사는 이 자바 언어 인기에 동승하고자 LiveScript 이름을 JavaScript로 변경!
1995년
브라우저의 무한한 가능성을 엿본 Microsoft회사에서 브라우저를 개발해야한다는 위기감을 느낌.
그래서 이들이 선택한 방법은. Netscape 에서 출시한 브라우저(Netscape Navigator) 를
reverse engineering 하게 된다.
reverse engineering이란, 만들어진 프로그램에 코드를 분석해서 소스코드를 복원해내는 과정을 이야기한다.
그래서 결국은 Netscape사에서 만든 자바스크립트의 그 엔진과 소스코드를 고대로 복원해서 (배껴와서)
자신들만의 언어인 척 하나만들게 된다. 그리고 이 이름을 JScript라고 살짝 변경해서 출시한다.
두둥. 그래서 Microsoft사에서도 Internet Explorer라는 브라우저를 내놓게 된다. (이것은 웹개발자들 고통의 시작점..)
왜냐규??
웹개발자들은 너무나 다른 이 두 웹브라우저에서도 동작할 수 있는 웹사이트들을 만들어야 했다.
그래서 이용시 어디 웹브라우저에서 더 잘보이니 이 웹브라우저를 다운받아~~ 이런 알람 사태들이 발생함.
1996년 11월
더이상 참지 못한 Netscape회사는 ECMA international 이라는 단체에 찾아가서
"우리가 JavaScript라는 언어를 만들었는데 이걸로 표준안을 한번 만들어보자"! 라고 제안함.
1997년 7월
드디어,
첫번째 ECMA Script1 language specification 이 시장에 등장함!
이크마스크립트는 브라우저에서 동작하는 언어를 만들떄, 그리고 그 언어를 이해할 수 있는 엔진이 이해하기 위해서
문법적인 사항들을 잘 정리한 문서이다. 그리고 계속 추가적인 시리즈가 나옴.
이렇게 다양한 것들이 논의되는 동안,
2000년
Microsoft사에서 만든 Internet Explorer이 사용률 95%까지 시장점유율이 높아짐.
조금씩 건방져진 Microsoft사는
"야, 우리가 개발자들이 쉽게 사용하게 하려고 스크립트언어를 만들었지,
클래스를 추가하면 더이상 스크립트 언어가 아니야" 하면서 점점 불만을 표시하더니,
더이상 ECMA Script 표준안에 참가하지 않았음.
그래서 2000년도부터는 표준안 진행이 뎌뎌짐.
2004년
moz://a에서 Firefox 브라우저 출시!
모질라 사는 이크마 스크립트 단체에 찾아가서
"야, 우리가 actionScript3라는 멋진 언어가 있고, 이 언어를 해석할 수있는 Tamarin이라는 엔진이 있는데,
이걸로 우리 다시한번 표준화를 검토해보자." 제안함.
하지만 이크마스크립트에서는 이미 자바스크립트와 그에 맞는 엔진이 있었기에 다시 새롭게 표준안을 작성하기엔 무리라고 판단.
그래서 표준안을 앞에 두고 Netscape / Microsoft / moz://a 3사의 치열한 신경전이 있었음.
그런데 그해..
Jesse James Garrett가 나와서 "AJAX(Asynchronous JavaScript and XML)" 을 들고옴. (아작스)
비동기적으로 데이터를 서버에서 받아서 처리할 수 있도록 도와주는 정말 획기적인 아작스가 도입이된다.
더보기비동기적이란?
우리가 흔히 동기적이라고 말하는건 A라는 행위를 하고 그 다음에 바로 B라는 행위를 하게 되면
A라는 행위를 하는동안은 아무것도 못하고 A의 결과가 나오고 나서야 B의 행위를 할 수 있습니다.
하지만 비동기적 처리를 하게 된다면 A의 행위를 실행시키고 나서 A의 결과값이 어떻든간에
B의 행위를 할 수 있습니다.
이런 아작스의 도입에도 불구하고 3사의 치열한 신경전은 계속 되었다.
그동안 개발자들은 다양한 브라우저와 그에 따른 다양한 방식에 대해 힘들어함.
동시에 점점 웹개발시장이 커지면서 웹개발자들의 커뮤니티가 강력하게 됨.
이런 커뮤니티에서 드디어,
"JQuery" "dojo" "mootools"와 같은 라이브러리들이 많이 나오게 된다.
이런 라이브러리들이 해결하고자 했던 공통된 문제점은 딱 하나!
개발자들이 더이상 다른 브라우저의 구현 사항을 신경쓰지 않아도 되게 만드는 것!!!
(("야, 너네 이제 딴거 신경쓰지마, 우리가 제공하는 APIs만 써. 우리가 제공하는 함수들만 호출하면,
밑에 알아서 다른 브라우저 상에서 동작할 수 있게 하는 건 우리가 신경써줄게."))
그 중에서도 write less, do more 이라는 철학을 가진 제이쿼리가 제일 인기를 끌게 된다.
더보기여기서 잠깐!
우리가 배울 수 있는 좋은 프로그래밍의 철학은,
이렇게 서비스레이어나, 프레젠테이션 레이어, 비지니스 레이어를 만들 때,
APis들을 잘 작성해서 나중에 구현사항이 변경되더라도 이 인터페이스들을 사용하고 있는 사용자의 코드는
수정하지 않도록 만드는 것이 정말 좋은 연습이다.
2008년
Google사의 Chrome 브라우저 출시!!
크롬브라우저는 JIT (just-in-time comilation) 이라는 굉장히 강력한 엔진이 포함된 브라우저이다.
바로, 자바스크립트를 실행하는 속도가 엄청나게 빠른 강력한 엔진이 포함된 브라우저이다.
다른 브라우저들은 좋은 자극을 받게됨..
2008년 7월.
4사가 모여 표준화를 만들어보자, 서로 윈윈의 관계를 형성해보자 얘기함.
그래서
2009년 ECMA Script 5, 2015년 ECMAScript6 등장!
현재, 2019년 ECMAScript 10 !!
자바스크립트는 이제 성숙하고 잘 정착된 언어이다.
그리고 모든 브라우저들이 이제는 이크마스크립트의 표준화를 잘 따르고 있기 때문에
이제는 더이상 라이브러리의 도움없이도 충분히 자바스크립트와 웹 APIs에서 제공하는 APIs들 만으로도
모든 브라우저에서 잘 동작할 수 있는 웹사이트나 웹어플리케이션을 만들 수 있음.!!
그리고 각 브라우저들 마다 이크마스크립트의 표준안을 잘 따라가는 다양한 엔진들이 존재함.
크롬브라우저에서 쓰이는 V8 자바스크립트 엔진은
node.js와 electron에서도 많이 이용되어 진다.
2020년도 2월 경에는 MS Edge사에서도 V8 엔진으로 대체해서 사용하고 있다.
**개발할때는 최신 버전의 이크마 스크립트를 사용하고, 사용자에게 배포할 때만
Javascript transcompiler를 이용해 이크마스크립트의 최신버전을 5,6등으로 변환해서
변환된 코드를 생산해주는 곳이 BABEL이다.
**요즘 일어나는 동향,
SPA (Single Page Application)이 굉장히 뜨고 있음.
웹사이트를 만드는 것은 더이상 충분하지 않다. 하나의 페이지 안에서 데이터를 받아와서 필요한 부분만 부분적으로 업데이트 하는 것이 굉장히 유행하고 있다. 물론 자바스크립트만으로도 충분히 구현이 가능하겠지만
이 SPA를 조금 더 쉽게 만들기 위해서 REACT, ANGULAR, VUE 같은 아이들이 나오게 됨.
이런 라이브러리나 프레임 워크들을 이용해 SPA를 조금 더 쉽게 구현해 낼 수 있음.
**그리고 이런 자바스크립트는 브라우저를 위한, 브라우저에서 동적인 요소를 추가하기 위해서 만들어진 언어.
이런 이크마 스크립트의 활발한 표준화를 통해서, 그리고 강력한 V8 엔진을 통해서
node.js가 등장하게 됨.
node.js는 V8 자바스크립트 엔진을 이용한 백엔드에서 서비스를 구현할 수 있도록 만들어진 아이.
react 네이티브나 콜더와 같은 아이들을 이용해서 모바일 어플리케이션도 만들 수 있음.
electron을 이용해 데스크탑 어플리케이션도 만들 수 있음.
**자바스크립트를 배운다면, 이용할 수 있는 분야는 정말 무궁무진하고 앞으로의 잠재력도 무궁무진하다.
**브라우저에서 동작할 수 있는 언어는 자바스크립트 하나였는데,
요즘에는 WA (Web Assembly) 가 등장해서 c, c++, c샵, 파이썬 등 다양한 언어를 이용해 웹어플리케이션을 만드는 것이 가능해짐. (굉장히 가능성이 무궁무진해짐)
c++과 같은 언어로 만들어진 게임같은 것도 이제 웹브라우저에서 동작할 수 있도록 쉽게 만들 수 있음.
**자바스크립트는 가장 많이 사용되어진 언어에서 7년동안 1위를 차지하고 있음.
자바스크립트를 배우면 평균 5천정도의 연봉과 + 타입스크립트를 배우면 더 높은 연봉을 기대할 수 있음.
'Study > JavaScript' 카테고리의 다른 글
변수 (0) 2020.04.14 숫자와 문자(2)__문자의 표현 (0) 2020.04.14 숫자와 문자(1)__수의 표현과 연산 (0) 2020.04.14 자바스크립트 오리엔테이션 (생활코딩) (0) 2020.04.13 HTML과 JavaScript의 만남 3 (콘솔) (0) 2020.04.08