[JS 기초] 1. JavaScript의 역사

정현섭·2021년 4월 20일
0

Javascript 기초

목록 보기
1/6
post-thumbnail

드림코딩 by 엘리 님의 자바스크립트 기초 강의를 보고 정리한 글입니다.

탄생 배경

거의 최초의 상용 웹 브라우저인 Netscape Navigator가 처음에 생겼을 때는

HTML과 CSS로 그냥 정적인 웹사이트 밖에 만들 수 없었다.

어떻게 동적인 웹사이트를 만들수 있을지 고민하던 Marc는 script언어인 javascript를 만들었다. javascript는 사용자의 웹 브라우저 안에서 DOM요소들을 조작할 수 있어서 웹을 dynamic하게 만들어준다.

탄생 이후 역사

근데 이후에 마이크로소프트에서 Netscape Navigator를 리버스 엔지니어링으로 배껴와서 IE를 만들었다. IE의 엔진은 javascript대신 jscript라는 언어로 돌아가게 되는데

그래서 개발자들이 IE에 맞는 웹사이트 혹은 Netscape 에 맞는 웹사이트를 따로 만들어야 했다..

이후 Netscape사에서는 표준 단체인 ECMA를 찾아가서 javascript에 대한 표준안을 만들자고 제안했고 그게 ECMAscript다.

이후 IE, firefox, Netscape 가 서로 자신이 표준이 되기위해 싸웠는데 그 과정에서 개발자들만 힘들어지게 됐다. (세 브라우저에서 모두 동작하는 웹사이트를 만들어야 해서..)

그리고 2004년에 비동기적으로 데이터를 서버에서 받아오고 처리할 수 있는 AJAX라는 기술이 나왔다!

이 후 웹 시장이 더 커지고 여러 브라우저가 나오면서 여러 브라우저에 대한 호환성을 맞춰주는 jQuery같은 라이브러리들이 생겼다.

그리고 이후 2008년에 Google사의 Chrome 브라우저를 출시했는데 Chrome은 javascript를 실행하는 엔진이 JIT방식으로 엄청 빠르게 작동해서 그때서야 여러 브라우저들이 서로 표준안을 만들자는 제안을 하게되고

그래서 2009년에 ECMAscript5, 2015년에 ECMAscript6가 나오게 되고 여러 브라우저 엔진들이 그 표준안을 따르게 된다.

2019년까지 ECMAscript10이 나왔지만 ECMAscript6와 크게 다르지 않다.


ECMAscript 표준을 따르는 브라우저 엔진들

그러면서 Jquery같은 여러 브라우저의 script엔진 호환성을 위한 라이브러리는 사용할 필요가 없게 됐다.

참고로 chrome browser의 V8엔진은 microsoft에서 새로 나온 Edge브라우저에서도 쓰고

node js나 electron js의 엔진으로도 쓴다.

최근 개발자 동향

JS transcompiler

최근 개발자들은 ECMAscript의 최신 버전으로 개발하고

사용자에게 배포할 때만 BABEL 같은 javascript transcompiler 를 이용해서

ECMAscript6나 5으로 바꿔서 배포한다.

SPA

single page application으로 웹을 만드는 것이 뜨고있다.

하나의 페이지 안에서 필요한 부분만 업데이트 하는 방식이다.

vanilla js로도 할 수 있지만 이를 spa를 쉽게 구현하게 해주는

react, angular 등의 framework들이 나왔다.

V8엔진

강력한 V8엔진이 나오면서 js를 웹 뿐만 아니라 다른 분야에서도 사용하게 되었다.

backend를 구현하는 node js

mobile app을 구현하는 react native

desktop app을 구현하는 electron js

뜨고 있는 다른 기술

원래 브라우저에서 동작하는 유일한 언어는 js였는데

요즘은 Web Assembly가 등장해서

Rust, C, C++, C#, java, phython 같은 언어들로 web app을 만드는 것이 가능해졌다.

그래서 C++로 만들어진 게임같은 것들도 웹브라우저에서 동작할 수 있게 만들 수 있다.

(figma 도 Web Assembly를 이용해서 만든 web app의 좋은 예시다.)

0개의 댓글