[JS] deepDive(3) 자바스크립트 탄생
FrontEnd/Deep Dive

[JS] deepDive(3) 자바스크립트 탄생

728x90

자바스크립트는 1995년 90%의 시장 점유율로 시장을 지배하고 있던 넷스케이프 커뮤니케이션즈란 회사에서 웹페이지의 보조 기능을 수행하기 위해 만든 경량 프로그래밍 언어이다.

 

 

브래던 아이크가 개발하였다.

 

 

이름도 꽤나 많이 바뀌었는데

 

모카 -> 라이브 스크립트 -> 자바스크립트

 

순서로 이름도 바뀌었다.

 

 

꽤나 단출해보인다

 

 

자바스크립트는 이렇게 생성되었지만 1년후 마이크로소프트에서 JScript를 익스플로러에 탑재해서 나왔다.

 

 

가장 큰 문제는 JScript와 자바스크립트가 표준화되지 않고 각 회사의 점유율을 높이기 위해서 자사 브라우저에서만 동작하는 기능을 경쟁적으로 추가했다는 것이다.

 

 

즉, 모든 브라우저에서 정상적으로 동작하는 웹페이지를 만드는게 매우 어려웠다. (ㅠㅠ)

 

 

이를 크로스 브라우징 이슈 라고 한다.

 

 

따라서 그해말 (1996년 11월) 넷스케이프에서 컴퓨터 시스템의 표준을 관리하는 ECMA 인터내셔널에 자바스크립트 표준화를 요청했고 표준화된 자바스크립트 초판 사양이 만들어졌다.

 

 

상표권 문제덕분에 명명된 이름이 바로 ECMAScript이다.

 

 

 

https://github.com/tc39/proposals/blob/main/finished-proposals.md

 

 

ECMAScript 버전은 계속 업데이트 되었는데 그 특징은 위 문서에서 확인해 볼 수 있다.

 

 

 

 

초창기 자바스크립트는 웹페이지의 보조적 기능을 수행하기 위해 만들어졌고 이시기 웹페이지의 로직은 대부분 서버에서 실행되고 브라우저에는 단순히 HTML,CSS를 렌더링하는 수준이었다.

 

 

 

 

 

 

 

 

Ajax

 

 

1999년, 자바스크립트를 활용해 서버,브라우저간 비동기 데이터 교환을 가능하게 하는 방식인 AjaxXMLHttpRequest란 이름으로 등장하였다.

 

 

Ajax이전에는 브라우저가 완전한 HTML 코드를 서버로부터 받아서 이를 렌더링하고 화면이 전환될때마다 새로운 HTML을 전송받았다.

 

이는 변경할 필요가 없는 부분까지 항상 서버로부터 받기 때문에 불필요한 데이터 통신이 많이 발생하게 된다. Ajax의 등장으로 이런 문제를 해결하고 화면이 순간적으로 깜박이는 문제 등을 해결할 수 있게 되었다.

 

 

이를 가장 획기적으로 보여준 예시가 구글 맵이였다. JS,Ajax를 기반으로 만든 구글맵스가 데스크톱 애플리케이션에 비해서 손색없을 성능과 부드러운 화면 전환을 보여줌으로 프로그래밍 언어로서 JS의 가능성을 보여주었다.

 

 

 

 

 

 

 

jQuery

 

현재는 점점 사라지는 추세지만, jQuery의 등장으로 DOM을 보다 직관적으로 다룰 수 있는 방법이 제시되었다.

 

 

 

 

 

 

 

 

 

Ajax , jQuery 등 다양한 시도들이 계속 나오면서 브라우저에서 더욱 더 빨리 JS를 실행시킬 수 있는 브라우저 엔진의 필요성이 대두되었으며 이런 환경에서 나온게 2008년 V8 자바스크립트 엔진이다.

 

이 엔진의 등장으로 인해 JS는 웹 애플케이션 프로그래밍 언어로 정착할 수 있게 되었다.

 

 

 

 

 

Node.js

 

V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 환경이며 브라우저의 엔진에서만 동작하던 자바스크립트를 이 외 환경에서도 동작할 수 있게 만든 JS 실행 환ㄱ녕이다.

 

 

Node.js는 다양한 플랫폼에 적용할 수 있지만 주로 서버 사이드 애플리케이션 개발에 활용되는데 FE와 BE 양 영역에서 JS를 활용할 수 있다는 장점을 가질 수 있게 되었다.

 

 

비동기 I/O와 단일 스레드 이벤트 루프 기반을 가지고 있에 SPA(Single Page Application)에 적합하다.

 

 

 

 

 

javaScript 와 ECMAScript

 

 

좀 전에 javaScript와 ECMAScript이야기가 잠깐 나왔었다. 조금 더 자세히 알아보자.

 

ECMAScript는 자바스크립트의 표준 사양을 말하며 프로그래밍 언어의 핵심 문법을 규정한다. 즉 각 브라우저 제조사들은 이 사양에 준수해서 브라우저에 내장되는 엔진을 구현해야 한다.

 

 

 

 

 

좀더 포괄적인 개념으로 설명하자면

 

 

 

자바스크립트란 ECMAScript와 브라우저가 지원하는 클라이언트 사이드 Web Api 즉 DOM,BOM,Canvas,XMLHttpRequest,fetch 등등 기능들을 모두 아우르는 개념이다.

 

 

 

결국 위와같은 역사를 걸어오면서 현재 자바스크립트는 웹 브라우저에서 동작하는 유일한 프로그래밍 언어로 자리잡게 되었다!

 

728x90

'FrontEnd > Deep Dive' 카테고리의 다른 글

[JS] DeepDive(8) 제어문  (0) 2023.07.22
[JS] DeepDive(7) 연산자  (0) 2023.07.21
[JS] DeepDive(6) 데이터 타입  (0) 2023.07.21
[JS] DeepDive(5) 표현식과 문  (0) 2023.07.19
[JS] DeepDive(4) 변수  (0) 2023.07.18