ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JS] 자바스크립트는 어떤 역사를 가지고 있을까? 자바스크립트와 브라우저의 역사
    카테고리 없음 2024. 2. 23. 14:16
    728x90

    [JS] 자바스크립트는 어떤 역사를 가지고 있을까? 자바스크립트와 브라우저의 역사

     

    내가 가장 많이 사용한 언어는 c언어도 java도 typescript도 아닌 아마 javascript일 것이다. 어떠한 언어나 혹은 기술을 공부할 때에는 기술의 사용 방법도 당연히 중요하지만, 기술의 탄생 배경이나 업그레이드 배경 또한 굉장히 중요하다고 생각한다.

    그래서 오늘은 자바스크립트의 역사에 대해 알아볼 것이다.

     

    ~1995

    1993년. 지금으로부터 30년 전. 컴퓨터를 잘 모르는 사람도 쉽게 사용할 수 있는 UI 요소가 더해진 최초의 상용 웹 브라우저가 등장한다. 바로 그 이름하여 "Mosaic" Mosaic은 일리노이 대학교의 마크 앤드리슨과 그의 팀에 의해 만들어졌다. Mosaic은 웹 브라우저들의 기초가 되었다.

    이후, 마크 앤드리슨은 넷스케이프라는 회사를 설립하였다. Mosaic은 최초의 상용 브라우저였지만 큰 인기를 얻지 못했는데, 이후 넷스케이프에서 출시한 Netscape Navigator가 큰 인기를 얻게 되었다. 당시에는 HTML과 CSS로 설계된 간단한 웹 페이지만 만들 수 있었다. 페이지와 페이지 사이에 이동이 가능한 순수하게 정적인 사이트인 것이다. 그럼에도 불구하고 무려 80%의 점유율을 달성하며 성공한 브라우저였다.

     

    하지만 정적인 웹사이트는 너무 단순했기 때문에 보다 동적인 요소를 추가할 수 있는 방법이 필요했다. 그래서 언어를 통해 동적인 요소를 추가하기로 하였다. 넷스케이프는 Brendan Eich라는 프로그래머를 영입하여 새로운 언어를 만들게 되는데 그것이 바로 자바스크립트이다.

    Brendan Eich는 정말 말도 안 되는 능력으로 1주일 정도의 시간 만에 자바스크립트의 프로토타입을 만들게 되고 초기에는 모카로 불리다가 이후 LiveScript라는 이름으로 명명된다. 이후 출시된 브라우저에는 live script 엔진이 추가되었고 정의된 script에 따라 DOM 요소 조작이 가능해졌다. 이 것은 재미있는 사실인데, 당시 자바의 인기가 굉장히 높아 자바의 이름을 본뜬 자바스크립트라는 이름으로 바꾸게 된다. 

     

    공식적으로 1995년에 자바스크립트와 자바스크립트 엔진을 포함한 브라우저가 출시된다. 마이크로소프트에서도 이를 베껴서 JScript라는 언어와 그 유명한 internet explorer를 만들게 된다.

     

     

    1995~2006

    마이크로소프트에서 internet explorer를 만듦으로써 개발자들의 일이 굉장히 늘어나게 된다. 넷스케이프의 브라우저와 인터넷 익스플로러에 모두 호환되는 웹사이트를 만들어야 하게 된 것이다. 그래서 넷스케이프에서는 ECAM International과 함께 자바스크립트 표준화를 추진한다. 그렇게 하여 1997년 ECMAScript1이 탄생한다. 이는 자바스크립트의 문법적인 사항들이 정리된 문서로 곧 표준이 된다. 이후 ECMAScript는 계속 업데이트되며 새로운 문법들이 정의된다.

     

    그런데 InternetExplorer의 점유율이 급상승하여 마이크로소프트는 ECMAScript를 무시하고 본인들이 표준이 된다. 때문에 2000년대부터 ECMAScript의 진전이 더뎌지게 되었다. 

    2004년도에는 드디어 모질라의 파이어폭스가 등장한다. 파이어폭스에서 그들의 엔진으로 다시 표준화를 진행해 보자 제의했지만, 그들의 엔진은 너무 호환성이 좋지 않았다. 따라서 표준화 전에 마이크로소프트, 넷스케이프, 모질라 3사의 경쟁 구도가 만들어지고 고통받는 것은 결국 개발자들이었다.

     

    여기서 엄청난!! AJAX가 등장한다. 비동기적으로 서버와 통신이 가능한 굉장히 획기적인 기술이었다. 이는 페이지의 일부를 업데이트하는데 사용자 경험을 혁신적으로 개선하였다. 그럼에도 브라우저 3사가 경쟁하는 동안 웹 시장은 계속 커지게 되고 개발자들의 유입이 많아짐에 따라 개발자 단체가 만들어진다. 뭉친 개발자들은 획기적인 라이브러리를 만들어내는데 그것들이 바로 jQuery와 같은 라이브러리다. jQuery는 HTML 문서를 탐색하고 조작하는 데 유용하였으며, 브라우저 간의 호환성 문제를 해결하였다.

     

    2006~2009

    2008에 엄청나게 획기적인 새 브라우저가 등장하였으니.. 그 유명한 크롬이다. 크롬은 구글이 개발한 웹 브라우저로, 시장에 새로운 기술과 경험을 제공하였다. V8 엔진으로 혁신적인 기술을 사용하여 자바스크립트의 속도를 향상했고, 단순하고 간결한 디자인은 사용자 경험을 높였다. 크롬은 각 탭을 별도의 프로세스로 처리하여 안정성과 보안을 향상했다. 개별 프로세스로 동작하기 때문에 문제가 발생하더라도 다른 탭에 영향을 끼치지 않는다. 이 V8엔진은 이후에 등장할 서버 측 도구인 Node.js와 데스크톱 애플리케이션 개발 도구인 electron에서도 사용된다.

     

    크롬의 등장으로 다른 브라우저들도 자극을 받았다. 그로 인해 다시 표준화를 논하는 자리가 만들어지고, 드디어 2009년 ECMAScript 5가 만들어진다.

     

    2009년에는 Node.js와 서버 측 자바스크립트도 탄생한다. 라이언 달이라는 기발자가 개발한 Node.js는 스크립트 언어인 자바스크립트를 브라우저 위가 아닌 서버 측에서도 사용할 수 있도록 하였다. 이로 인해 자바스크립트는 웹 어플리케이션의 전체 스택에서 모두 사용될 수 있는 것이다.

     

    2009~2015

    2012년. 웹 개발의 복잡성이 증가함에 따라 자바스크립트의 한계를 극복하기 위해 마이크로소프트에서 typescript를 개발한다. 타입스크립트는 자바스크립트의 상위 집합인 정적 타입 언어이다. 자바스크립트는 런타임에만 타입 검사를 수행하기 때문에 오류를 찾기가 어려웠다. 타입스크립트는 이러한 문제를 해결하고자 정적 타이핑 시스템을 도입하여 개발자들이 안전한 코드를 만들 수 있도록 지원했다.

    타입스크립트는 ECMAScript를 표준으로 하며 컴파일러 기능을 가지고 있다. 타입스크립트 컴파일러에 의해 개발자가 작성한 타입스크립트 코드는 자바스크립트로 변환되어 브라우저에서 동작한다.

     

    2014년에는 바벨이라는 것이 동작한다. Node.js를 개발한 라이언 달에 의해 개발되었는데, 최신 자바스크립트 코드를 이전 버전의 자바스크립트로 변환하는 데 사용된다. 최신 기능을 사용하면서도 구 버전 브라우저에서 동작할 수 있도록 지원한다.

     

    2015~

    2015년. ECMAScript5에 이어 ECMAScript6가 탄생한다. 주요 변경사항은 다음과 같다. let 및 const 키워드가 탄생하였다. arrow function이 탄생하였다. class 문법이 탄생하였다. 백틱을 사용한 템플릿 리터럴 문법이 탄생하였다. 함수의 디펄트 매개변수가 탄생하였다. 구조분해할당과 스프레드 문법이 탄생하였다. 모듈 시스템이 탄생하였다. 심볼 타입이 탄생하였다. 프로미스 객체가 탄생하였다. ECMAScript6(ES6)에서는 정말 엄청난 문법들이 자바스크립트 내에 탄생하였고, 이는 현재도 굉장히 많이 쓰이는 문법들이다.

    이후에도 자바스크립트는 꾸준히 업데이트되고있다. 모든 브라우저들이 자바스크립트의 표준을 따르고 있기 때문에 개발자들도 한결 수월해졌다.

     

    자바스크립트만 학습하더라도 기본적으로 웹 프론트엔드 개발. 노드로 백엔드 개발. 리액트 네이티브로 모바일 개발. 일렉트론으로 데스크톱 개발. 유니티로 게임개발. 너무나 다양한 것들을 할 수 있다.

     

    마치며

    프로그래밍 언어를 위인에 비유한다면? C언어는 알베르토 아인슈타인, 자바는 토마스 에디슨, 파이썬은 레오나르도 다 빈치, 자바스크립트는 칭기즈칸이 아닐까 싶다. 브라우저라는 말을 타고 결국에는 프로그래밍 세계의 전역을 누비며 영향력을 많은 곳에 펼쳤으니 말이다. 자바스크립트. 타입스크립트라는 훌륭한 보완재가 있지만 타입스크립트 보다도 매력적인 언어라고 생각한다.

     

     

     

    이 글에서 자주 소개된 크로스 브라우징에 대해 더 자세히 알아보고 싶다면 아래 글을 참고하자!

     

    [JS] 자바스크립트는 인터프리터 언어인데 컴파일러가 왜 필요할까?? 크로스 브라우징!

    [JS] 자바스크립트는 인터프리터 언어인데 컴파일러가 왜 필요할까?? 크로스 브라우징! 자바스크립트에 바벨과 같은 컴파일러가 필요한 이유는 좀 미뤄두고 크로스 브라우징에 대해 먼저 알아보

    frorong.tistory.com

     

    728x90
Designed by Frorong.