02 자바스크립트란?

2.1 자바스크립트의 탄생

1995년 약 90%의 웹 브라우저 시장을 점유하던 넷스케이프 커뮤니케이션즈는 웹페이지의 보조직인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어를 도입하기로 결정했으며, 그래서 탄생한 것이 브렌던 아이크가 개발한 자바스크립트다.

2.2 자바스크립트의 표준화

자바스크립트가 탄생하고 얼마 뒤, 파생버전인 Jscript가 출시되었는데 Jscript와 JavaScript가 표준화되지 못하고 적당히 호환되는 문제가 발생했다. 이에 크로스 브라우징 이슈가 발생하자, 비영리 표준화 기구인 ECMA 인터네셔널에 자바스크립트 표준화를 요청했다. 그 결과로 1997년 ECMA-262라 불리는 표준화된 자바스크립트 초판이 출시되었으며 ECMAScript로 불리게 되었다.

2.3 자바스크립트의 성장의 역사

초창기 자바스크립트는 웹페이지 보조적인 기능을 수행하기 위해 한정적인 용도로 사용되었다. 하지만 1999년 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능인 [Ajax]Asynchronous JavaScript and XMLXMLHttpRequest라는 이름으로 등장했다.

Ajax의 등장으로 화면 일부 변경시 전체 화면을 다시 전송받았던 이전과 다르게 변경되는 부분만 한정적으로 렌더링 하는 방식이 가능해졌으며 웹 브라우저에서도 데스크톱 애플리케이션과 유사한 빠른 성능과 부드러운 화면 전환이 가능해졌다.

2.3.2 JQuery

2.3.3 V8 자바스크립트 엔진

2008년 구글의 V8 자바크스립트 엔진의 등장으로 자바스크립트의 동작이 더욱 빨라지게 되었고 이로 인해 과거 웹 서버에서 수행되던 로직들이 대거 클라이언트(브라우저)로 이동했다.

2.3.4 Node.js

Node.js는 2009년 발표된 구글의 V8 자바크스립트 엔진으로 빌드된 자바스크립트 런타임 환경이다. Node.js는 브라우저의 자바스크립트 엔진에서만 작동하던 자바스크립트를 브라우저 이외의 환경에서 동작할 수 있도록 JS 엔진을 브라우저에서 독립시킨 자바스크립트 실행 환경이다. Node.js의 등장으로 JS는 브라우저를 벗어나 서버 사이드 애플리케이션 개발에서도 사용할 수 있는 범용 프로그래밍 언어가 되었다.

2.3.5 [SPA]Single Page Application 프레임워크

복잡한 개발환경을 수행하기 위해서 변경에 유연하면서 확장하기 쉬운 애플리케이션 아키텍쳐 구축을 위해서 프레임워크가 등장하게 되었다. [CBD 방법론]Component Based Development을 기반으로 하는 SPA가 대중화 되면서 Angler, React, Vue.js, Svelte 등 다양한 SPA 프레임워크, 라이브러리가 출시되었다.

2.4 자바스크립트와 ECMAScript

2.5 자바스크립트의 특징

자바스크립트는 HTML, CSS와 함께 웹을 구성하는 요소 중 하나로 웹 브라우저에서 동작하는 유일한 프로그래밍 언어다.

자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 [인터프리터 언어]다.

[컴파일 언어]는 컴파일 단계와 실행 단계가 분리되어 있으며 실행 이전에 명시적인 컴파일 단계를 단 한 번 수행한다. 컴파일과 실행 단계가 분리되어 있으므로 코드 실행 속도가 빠르다.

[인터프리터 언어]는 인터프리트 단계와 실행 단계가 분리되어 있지 않고 한 줄씩 바이트 코드로 변환하고 즉시 실행한다. 코드가 실행될 때마다 인터프리트 과정이 반복되므로 코드 실행 속도가 비교적 느리다.

하지만 대부분의 모던 브라우저에서 사용하는 인터프리터는 명시적인 컴파일 단계는 없지만 복잡한 과정을 거치면서 일부 소스코드를 컴파일하고 실행한다. 이를 통해 동적 기능 지원 장점을 살리면서 실행속도가 느리다는 단점을 극복한다.

자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어다.

Last updated