JavaScript 기초 정리 - 1. 역사와 현재, 미래

2020. 7. 30. 11:14Programming Languages/JavaScript

※ 이 글은 드림코딩 앨리님의 영상을 보고 정리한 글입니다. 정리가 아주 잘 된 영상이니 보시길 추천드립니다.

https://www.youtube.com/watch?v=wcsVjmHrUQg&list=PLv2d7VI9OotTVOL4QmPfvJWPJvkmv6h-2

 

   1993년 NCSA라는 팀에서 Mosaic Web Browser라는 웹 브라우저를 개발합니다. 이 팀을 이끌던 Marc Andreessen(이하 Marc)은 대학교를 졸업함과 동시에 Netscape라는 회사를 설립하고 이전에 만들었던 브라우저에서 조금 더 개선된 Netscape Navigator를 시장에 출시합니다. 이 브라우저는 하이퍼텍스트로 페이지 전환만 가능했던 매우 정적인 브라우저였습니다. NetScape는 80%의 시장 점유율을 차지하며 급격히 성장했고, Marc는 어떻게 브라우저에 동적인 기능을 추가해서 사용자들이 더 다이나믹하게 사용할 수 없을까를 고민했습니다. 고민에 대한 답은 브라우저에 스크립트 언어를 추가하는 것이었습니다. 이 후보로 당시 떠오르던 Java와 스크립트 언어인 Scheme가 제안되었고, Marc는 Brendan Eich라는 사람을 고용해서 두 언어를 잘 융합해서 독자적인 언어를 만들 것을 제안합니다(개발 기간 10일... 그는 도대체). 그렇게 탄생한 매우 유연한 스크립트 언어가 LiveScript Interpreter입니다. 그리고 당시 혜성처럼 떠오르던 Java와 함께 인기를 얻기 위해 JavaScript Interpreter라고 이름을 바꾸게 되죠.

 

   이렇게 승승장구하던 Netscape를 지켜보던 회사가 있었으니, 바로 Microsoft(이하 MS)였습니다. MS는 Netscape의 JavaScript를 리버싱해서(2진 코드를 분석해서 소스 코드를 복원해내는 작업을 말합니다) JScript라고 명명한 뒤 1995년 자신들이 제작한 Internet Explorer 브라우저(이하 IE)에 탑재해서 출시를 하게 됩니다. 이제부터 웹 개발자들이 고통받기 시작합니다. 사람들이 사용하는 브라우저가 너무나도 다르기 때문에 각 브라우저에 맞추어 개발을 따로 해야 했기 떄문이죠. 그래서 웹 페이지를 방문할 때 각 브라우저에 맞는 프로그램을 다운받아야 사용할 수 있게 됐습니다. 이를 참지 못한 Netscape는 ECMA International에 자신들이 만든 JavaScript로 웹 표준안을 만들어보자고 제안합니다. 그리하여 1997년 7월, ECMAScript 1 language specification이 시장에 출시됩니다. 그리고 2000년까지 매년 2, 3, 4 버전의 업데이트가 진행됐습니다. 그런데 2000년 IE의 시장 점유율은 95%에 육박했고, MS는 거만해지기 시작합니다. 자신들의 브라우저가 시장을 독차지하고 있으니 자신들이 표준이라며 새로운 표준안을 개발하는 데 협조하지 않은 것입니다. 그렇게 시간은 흘러가고 FireFox, Opera 등의 새로운 브라우저들이 속속들이 웹 시장에 참여하게 됩니다. 웹 시장이 점점 커져나감에 따라 개발자들의 커뮤니티도 거대해지기 시작했고 여기에서 API만 호출하면 여러 브라우저에서 같은 동작을 할 수 있게 해주는 라이브러리들(JQuery, dojo, mootools 등)이 만들어집니다. 이를 통해 개발자들은 한숨 돌릴 수 있게 됐죠.

 

   그리고 2008년, 웹 시장을 급격하게 바꾸는 브라우저가 등장합니다. 바로 Google의 Chrome 브라우저입니다. Chrome은 JIT(Just-in-time compilation)라는 매우 강력한 엔진이 포함되어 있었는데요, JavaScript의 동작을 매우 빨리 실행할 수 있다는 점이었습니다. 이를 보게 된 IE, Firefox, Netscape는 위기감을 느꼈고 드디어 Google을 포함한 4개의 회사가 새로운 웹 표준안을 협의합니다. 그리하여 출시된 것이 2009년 ECMAScript 5, 2015년 ECMAScript 6입니다. 6 이후로도 매년 업데이트가 되고 있지만 자잘자잘한 패치들이고 매우 큰 변동이 있었던 것은 5와 6 이었습니다. 이를 많은 브라우저가 준수했고, 이를 통해 개발자들은 더이상 JQuery나 dojo같은 라이브러리를 이용할 필요 없이 JavaScript와 웹 자체의 API를 통해 모든 브라우저에서 동작할 수 있도록 개발할 수 있게 됐습니다.

 

   현재 가고 있는 방향에는 SPA(Single Page Application)가 주축이 되고 있습니다. SPA는 하나의 페이지 안에서 필요한 부분만 업데이트하는 방식입니다. JavaScript만으로도 SPA를 충분히 만들 수 있지만 좀 더 쉽게 만들기 위해서 나온 것들이 React, Vue, Angular 등의 라이브러리들입니다. 

 

   JavaScript는 Frontend, Backend, mobile, desktop 등 매우 다양한 분야에서 활용할 수 있습니다. node js로 백엔드를 구축할 수 있고 react native를 통해 모바일 앱도 제작할 수 있으며 일렉트론을 활용하여 데스크탑 애플리케이션도 만들 수 있습니다. 그리고 꼭 JavaScript가 아니더라도 Web Assembly라는 기술을 통해 C, C++. C# 등을 통해 웹 개발을 할 수도 있습니다.

 

   JavaScript는 웹에서 HTML, CSS와 함께 없어서는 안 될 필수적인 언어이고, 현재도 빠르게 발전하고 있습니다. 웹에 관심이 있으신 분이라면 꼭 배우시는 것을 추천드립니다!