자바스크립트의 역사 — 모카에서 멀티 패러다임 언어까지
자바스크립트가 어떻게 지금의 모습이 되었는지 정리해 보았다. 단순한 브라우저 스크립트 언어가 어떻게 웹 전체를 지배하는 언어가 되었는지, 그 흐름을 따라가 보자.
자바스크립트의 탄생 (1995)
자바스크립트는 1995년 넷스케이프 커뮤니케이션즈(Netscape Communications)의 **브렌던 아이크(Brendan Eich)**가 개발했다. 처음부터 "자바스크립트"라는 이름이었던 것은 아니고, 다음과 같은 순서로 이름이 바뀌었다.
모카(Mocha) → 라이브스크립트(LiveScript) → 자바스크립트(JavaScript)
당시 큰 인기를 얻고 있던 자바(Java)의 유명세에 편승하기 위한 마케팅 목적의 개명이었기 때문에, 이름과 달리 자바스크립트와 자바는 전혀 다른 언어다. 그래서 나는 개발자와의 대화에서 근본 없는 언어라고 말을 할 때가 많다.(아는 분은 아시겠지만 신기한 코드들이 종종 작동한다.)
표준화의 시작 — ECMAScript
브라우저마다 자바스크립트가 서로 다르게 동작하는 크로스 브라우징 이슈가 심각해지면서, 자바스크립트를 표준화해야 한다는 수요가 생겼다. 이에 표준화 기구인 ECMA 인터내셔널이 자바스크립트의 표준 사양인 ECMAScript를 제정하게 된다.
ES6 (ECMAScript 2015) — 가장 큰 변화
특히 2015년에 공개된 **ES6(ECMAScript 2015)**는 자바스크립트 역사상 가장 큰 변화를 가져온 버전이다. 이때 추가된 기능들은 다음과 같다.
- let / const
- 화살표 함수(Arrow Function)
- 클래스(Class)
- 스프레드 문법(Spread Syntax)
- 심벌(Symbol)
- 프로미스(Promise)
- Map / Set
- 모듈 시스템 (import / export)
지금 우리가 "모던 자바스크립트"라고 부르는 코드 스타일의 대부분이 이 버전에서 시작되었다.
ES8 (ECMAScript 2017)
ES8에서는 비동기 처리를 동기 코드처럼 작성할 수 있게 해주는 **async / await**가 도입되어, 프로미스 기반 비동기 코드의 가독성이 크게 향상되었다.
Ajax — 웹의 동작 방식을 바꾸다
**Ajax(Asynchronous JavaScript and XML)**는 서버와 브라우저가 비동기 방식으로 데이터를 교환하며 통신하는 기능이다.
Ajax 이전에는 페이지가 조금만 바뀌어도 서버가 HTML 전체를 다시 내려주고 브라우저가 전체 페이지를 다시 렌더링해야 했다. Ajax의 등장으로 필요한 데이터만 주고받고, 브라우저는 변경된 부분만 렌더링하는 것이 가능해졌다.
💡 개인 생각: 이 지점이 CSR(Client Side Rendering)의 시작 가능성을 열어준 순간이라고 생각한다.
jQuery — DOM 조작의 대중화
jQuery는 복잡하고 브라우저마다 달랐던 DOM 조작을 훨씬 손쉽게 할 수 있게 해준 라이브러리다. 크로스 브라우징 문제를 상당 부분 해소해 주면서 오랫동안 프론트엔드 개발의 표준처럼 사용되었다.
V8 엔진 — 자바스크립트의 성능 혁명 (2008)
V8은 2008년 구글이 발표한 고성능 자바스크립트 엔진이다. V8의 등장으로 자바스크립트의 실행 속도가 비약적으로 빨라졌고, 무거운 로직을 클라이언트에서 처리하는 것이 현실적인 선택지가 되면서 프론트엔드 개발이 본격적으로 주목받는 계기가 되었다.
💡 개인 생각: V8의 성능 향상이 있었기에 CSR이 실제로 쓸 만한 수준이 될 수 있었다고 본다.
Node.js — 브라우저 밖으로 나온 자바스크립트 (2009)
Node.js는 2009년 **라이언 달(Ryan Dahl)**이 발표한 자바스크립트 런타임으로, V8 엔진을 기반으로 빌드되었다. Node.js의 등장으로 자바스크립트는 프론트엔드뿐만 아니라 백엔드 개발에서도 주력으로 사용되는 언어로 자리 잡게 되었다.
Node.js의 특징을 정리하면 다음과 같다.
- HTTP 등 서버 개발에 필요한 빌트인 API가 내장되어 있다.
- 싱글 스레드 이벤트 루프 기반으로 동작하기 때문에 I/O 집약적인 작업에는 강하다.
- 반대로 같은 이유로 CPU 집약적인 작업에는 권장되지 않는다.
SPA 프레임워크 — CSR의 대중화
**SPA(Single Page Application)**는 하나의 페이지에서 필요한 부분만 동적으로 갱신하며 동작하는 애플리케이션 구조다. 이를 구현하기 위한 프레임워크·라이브러리로 Angular, React, Vue.js 등이 등장했고, 이들이 CSR을 대중화시킨 주역이라 할 수 있다.
자바스크립트와 ECMAScript의 관계
두 용어는 자주 혼용되지만 엄밀히는 다르다.
자바스크립트 = ECMAScript + 클라이언트 사이드 Web API
- ECMAScript: 언어의 핵심 문법과 동작을 정의한 표준 사양
- 클라이언트 사이드 Web API: DOM, fetch, Canvas 등 브라우저가 제공하는 기능으로, ECMAScript와 별도로 **W3C(월드 와이드 웹 컨소시엄)**에서 사양을 관리한다.
자바스크립트는 어떤 언어인가
마지막으로 자바스크립트라는 언어 자체의 특징을 정리해 보면 다음과 같다.
- 웹 브라우저에서 동작하는 사실상 유일한 프로그래밍 언어다.
- 전통적으로 인터프리터 언어로 분류되지만, 현대의 자바스크립트 엔진은 컴파일러의 장점을 결합하여 인터프리터 언어의 단점을 상당 부분 해결했다. 이에 대해 더 알고 싶다면 JIT(Just-In-Time) 컴파일을 찾아보면 좋다.
- 명령형, 함수형, 프로토타입 기반 객체 지향을 모두 지원하는 멀티 패러다임 프로그래밍 언어다.
마치며
정리하고 보니 자바스크립트의 역사는 곧 웹의 역사와 맞닿아 있다. 크로스 브라우징 문제에서 표준화가 나왔고, Ajax에서 CSR의 가능성이 열렸으며, V8과 Node.js가 그 가능성을 현실로 만들었다. 2장에 대해서 완벽하게 동일한 정리는 아니고 필자가 중요하다고 생각하는 부분위주로 적었으니 자세한 내용은 책을 꼭 확인해보시길 권장한다.
'Javascript' 카테고리의 다른 글
| 모던 자바스크립트 Deep Dive 3장 자바스크립트 개발 환경과 실행 방법 (0) | 2026.07.07 |
|---|