[JavaScript] 자바스크립트 성장과 미래
자바스크립트의 탄생
자바스크립트는 간단히 말하면 우리가 사용하는 브라우저를 제어하기 위한 스크립트 언어 입니다. 설명한 것 처럼 ‘브라우저’를 제어하기위해 탄생했습니다. 1995년 브라우저 시장의 선두주자인 넷스케이프 커뮤니케이션즈에서 SchemeScript라는 스크립트 언어를 제작한 Brendan Eich를 영입해 만들게 된 언어 입니다. 재미있는 사실은 당시 강세였던 Java언어 스러운 스크립트 언어를 만들고 싶었고 Java의 인기에 묻혀가고 싶어서 Javascript라는 이름을 지었다고 합니다. 97년에 ES1으로 초판이 나왔고 지금까지 성장했습니다. 현재는 ES11(ECMAScript 2020)을 표준으로 출시 되었습니다.
자바스크립트의 성장
Ajax 브라우저는 웹 서버로 요청을 보내고 웹 서버로부터 렌더링된 HTML을 주기도 하고 HTML, CSS, Javascrip 파일을 받아 렌더링했습니다. 그러나 Ajax는 서버에 요청을 보내긴 하지만 새롭게 HTML, CSS, Javascript 같은 파일을 받을 필요 없이 필요한 데이터만을 비동기적으로 받을 수 있게 해줍니다. 별것 아닌 것처럼 보이지만 당시에는 충격적이 였을 겁니다. 페이지의 내용이 바뀌는 데도 흰 화면이 깜빡이지 않았으니까요. 여담이지만 현재는 주로 Json형태로 데이터를 주고 받지만 당시에는 XML 형태로 데이터를 주고 받았다고 한다
JQuery
2000년대 당시에 브라우저 DOM을 제어하는 것에는 꽤나 문제가 있었습니다. ECMAScript라는 표준이 있었지만서도 브라우저 마다 약간씩 다른 부분도 있었구요. 하지만 난세에 영웅이 나듯이 JQuery가 등장 했습니다. Javascirpt보다 보기 쉽고 여러 브라우저에도 편하게 대처할 수 있도록 하기위해 JQuery라는 라이브러기가 개발되었고 이를 선호하는 개발자들이 양산되던 시기 였습니다.
V8 엔진과 Node.js
점점 브라우저들은 클라이언트와 상호작용이 많아지기 시작하던 시대였습니다. 그만큼 브라우저는 많은양의 자바스크립트를 감당해야 했고 브라우저 자체적으로 엔진의 필요성이 대두 되었습니다. 이때 등장한 것이 구글의 V8엔진 입니다. 이 엔진덕에 서버에서 처리하던 일을 클라이언트에서 처리해도 될 정도로 브라우저와 자바스크립트의 기능이 넓어지면서 프론트엔드 영역 슬슬 대두되기 시작하게 되고, 2009년에 Node.js가 나오게 되며 사실상 프론트 엔드 개발이라는 영역을 창조했다고 해도 무방합니다. Node.js는 보기에는 그냥 Javascript 라이브러리 이름처럼 생겨먹었지만. 이것은 바로 Javascript Runtime입니다. 무슨 의미 냐구요? 가장 첫 문단에 말씀 드렸던것 처럼 자바스크립트는 브라우저를 제어하기 위한 스크립트 언어 였습니다. 즉 브라우저 위에서만 실행이 가능하다는 것 이였죠. 그러나 Node.js는 V8엔진으로 빌드되어 Javscript를 브라우저가 아닌 이외의 환경에서도 동작할 수 있게 해줍니다. 이 뿐만이 아니라 NPM(Node Package Manager)이라는 패키지 관리자를 통해서 온라인 데이터베이스에서 원하는 라이브러리들을 쉽게 다운받을 수 있게 해주었습니다. 이 오픈소스 시스템을 바탕으로 Javascript는 또 한번 거대한 성장을 이뤄낼 수 있었습니다.
프레임워크, SPA,
‘React는 상호작용이 많은 UI를 만들 때 생기는 어려움을 줄여줍니다.’ 리액트 공식 홈페이지에 걸려있는 내용입니다. 사실 저는 2020년에 입문하게 되면서 위에서 말하는 복잡한 상호작용을 프로덕션 레벨에서 겪어본적이 없습니다. 무엇이 그들을 그렇게 힘들게 했을지는 짐작이 가지 않지만 위같은 복잡한 상황들로 인해 프론트 엔드 영역에서도 프레임워크라는 개념이 생겨나기 시작했으며, 확장의 유연함을 위해 컴포넌트 베이스 방법론을 기반으로 하는 SPA가 대중화 되고, 흔히들 말하는 리, 앵, 뷰 (React, Vue.js, Angular) 같은 다양한 SPA 프레임워크가 대세가 되었다. (현재는 SPA에서 다시 SSR쪽으로 넘가는 분위기인 것 같습니다.)