자바스크립트

자바스크립트의 역사

funnyjs 2022. 2. 15. 02:34

⭐ 탄생

넷스케이프 커뮤니케이션즈 코퍼레이션 브렌던 아이크(Brendan Eich)가 웹페이지의 보조적인 기능을 수행하기 위해 브라우저에서 동작하는 경량 프로그래밍 언어로 개발해 처음에는 모카라는 이름이었으며 그 후에 라이브 스크립트를 거쳐 최종적으로 자바스크립트라는 이름이 되었다.

 

 크로스 부라우징 이슈

마이크로소프트가 자바스크립트의 성공에 자극받아 자바스크립트의 파생 버전인 "JScript"를 인터넷 익스플로러 3.0에 탑재했다. 이는 자사 브라우저의 점유율을 높이기 위해 자사 브라우저 외에는 동작하지 않도록 만들어져 브라우저에 따라 웹페이지가 정상적으로 동작하지 않는 크로스 브라우징 이슈가 발생하기 시작했다. (IE에서의 자바스크립트의 사용은 실제로는 J스크립트의 사용을 의미하는 것이었다..!)

 

 ECMA스크립트

JavaScript와 ECMAScript의 관계

모든 브라우저에서 정상적으로 작동하는 표준화된 자바스크립트가 필요성이 두드러지게 되면서 넷스케이프는 표준화를 위한 자바스크립트 기술 규격을 컴퓨터 시스템의 표준을 관리하는 비영리 표준화 기구인 ECMA 인터내셔널에 제출한다. 이렇게 표준화된 자바스크립트는 상표권 문제로 "ECMAScript"로 명명되었다.

 

 자바스크립트의 성장

초기 자바스크립트는 서버에서 받아오는 HTML과 CSS를 렌더링하는 보조적인 기능만을 수행할 수 있었다.

🧷 Ajax(Asyncronous Javascript and XML)

Ajax의 등장 전 웹페이지는 완전한 HTML 코드를 서버로부터 전송받아 전체를 렌더링하는 방식으로 일부만 변경될 때도 전체를 받아와야 해 불필요한 데이터 통신이 발생하고, 성능면에서도 불리했다. Ajax는 이러한 단점들을 보완하고 페이지 이동 없이 고속으로 필요한 데이터만을 웹서버에 요청해 받은 후 클라이언트에서 처리할 수 있게 해 주는 웹 개발 기법이다. 1999년 등장해 2000년대 중반 구글에서 G메일, 구글 맵스 등의 웹 어플리케이션에서 사용하며 인기를 끌기 시작했다.

🧷 jQuery

2006년 뉴욕 시 바캠프에서 공식적으로 소개된 jQuery(제이쿼리)는 HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 자바스크립트 라이브러리로 DOM을 쉽게 제어할 수 있고 크로스 브라우징 이슈도 어느 정도 해결할 수 있으며 자바스크립트보다 배우기 쉬워 인기를 끌었다.

 

🧷 V8 자바스크립트 엔진

웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 자바스크립트 엔진으로 구글 크롬 브라우저와 안드로이드 브라우저에 탑재되어 있으며 독빌적으로도 실행이 가능하다. V8 자바스크립트 엔진의 발전으로 웹 서버에서 수행되던 로직들이 대거 클라이언트로 이동하게 되었다.

 

🧷 Node.js

확장성 있는 네트워크 애플리케이션의 개발에 사용되는 소프트웨어 플랫폼으로 자바스크립트를 활용해 논블로킹 I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 HTTP 서버 라이브러리를 포함하고 있어 별도의 소프트웨어 없이 웹 서버에서 동작한다. Node.js의 등장으로 자사브크립트는 크로스 플랫폼을 위한 가장 중요한 언어로 주목받게 되었다!

 

🧷 SPA 프레임워크

서버로부터 완전한 새로운 페이지를 불러오지 않고 현재의 페이지를 동적으로 다시 작성함으로써 사용자와 소통하는 웹을 말한다. 이는 연속되는 페이지들 간의 사용자 경험의 간섭을 막아주고 웹이 데스크톱 애플리케이션처럼 동작하도록 만들어준다. Angular, React, Vue, Svelte 등 다양한 SPA 프레임워크/라이브러리가 있다.

 

 자바스크립트의 특징

자바스크립트는 HTML, CSS와 함께 웹을 구성하는 기본 요소 중 하나로 웹 브라우저에서 동작하는 유일한 프로그래밍 언어이다. 개발자가 별도로 컴파일 작업을 수행하지 않는 인터프리터 언어이며 프로토타입 기반의 객체지향 언어이다.

 

🧷 실행환경

자바스크립트는 웹 브라우저에서 동작하는 유일한 프로그래밍 언어이므로 모든 브라우저에서 자바스크립트를 해석하고 실행할 수 있다. Node.js도 자바스크립트 엔진을 내장하고 있어 브라우저에서 동작하는 코드를 동일하게 동작할 수 있다.

 

🧷 브라우저와 Node.js 비교

  웹 브라우저 Node.js
용도 웹페이지 렌더링 자바스크립트 실행환경 제공
기능 DOM API 제공 파일 시스템 제공
API 클라이언트 사이드 Web API 제공 Node.js 고유 API 제공
공통점 ECMAScript 사양 준수

 

 

'자바스크립트' 카테고리의 다른 글

자바스크립트의 this  (0) 2022.02.27
var, let, const 비교  (0) 2022.02.24
자바스크립트 연산자  (0) 2022.02.20
자바스크립트 데이터 타입  (0) 2022.02.18
변수(variable)  (0) 2022.02.17