자바스크립트 (JavaScript)는 웹 개발에서 가장 널리 사용되는 프로그래밍 언어 중 하나이다.
이 글에서는 자바스크립트 탄생에 대한 역사와 그 이름과 관련된 재밌는 이야기를 소개해보고자 한다.
1. 자바스크립트 (JavaScript)의 역사
* 1995년 : 넷스케이프 브라우저의 등장. 그리고 모카 (Mocha)의 탄생
- 마크 안드리센과 에릭 바이나어가 창립한 넷스케이프 커뮤니케이션즈는 넷스케이프 브라우저를 개발했다. 이 브라우저는 웹 페이지를 보다 동적으로 만들기 위한 스크립팅 언어가 필요했다. 이를 위해 넷스케이프에서는 브랜던 아이크에게 이 작업을 맡기게 되었고, 그 결과로 모카(Mocha)라는 언어가 만들어 졌다.
- 이 후 넷스케이프는 당시 자바(Java)의 인기에 편승하고자, 모카를 라이브스크립트 (LiveScript)로 이름을 변경했다.
- 그리고 자바스크립트의 최초버전이 넷스케이프 2.0B3에서 처음 소개되었다. 자바스크립트는 당시에는 라이브스크립트와 거의 동일한 언어였다.
* 1996년 : 마이크로소프트의 JScript
- 마이크로소프트는 자사의 인터넷 익스플로러용으로 JScript를 개발했다. JScript는 자바스크립트와 비슷하지만 일부 문법적인 차이는 있었다.
* 1997년 : ECMA 스크립트 표준화
- 자바스크립트는 ECMA 인터내셔널(전자기기와 정보 기술을 위한 국제 표준화 기구)에 의해 ECMA-262 표준으로 정의되었다. 이로써 자바스크립트는 벤더 중립적이고 표준화된 언어로써 다양한 환경에서 사용될 수 있게 되었다.
* 2005년 : AJAX 등장
- 제이슨 프리드가 AJAX (Asynchronous JavaScript and XML)라는 용어를 처음으로 사용하면서, 자바스크립트는 비동기적으로 데이터를 서버와 교환할 수 있는 기능을 부여받게 됬다.
* 그리고 현재 : HTML5, ES7(ECMAScript 2015)
- 이후에는 HTML5, ES6, 그리고 현재까지 지속적인 발전과 표준화가 이뤄져 왔다. 자바스크립트는 현재 웹 개발뿐만 아니라 서버 사이드 개발(Node.js)이나 모바일 앱 개발(React Native 등) 등 다양한 분야에서 활발하게 사용되고 있다.
2. 'Java'Script ? 'ECMA'Script ?
ECMA는 JavaScript를 표준으로 정의할 때 “JavaScript”라는 용어 대신 “ECMAScript’라는 용어를 선택했다. 아래 그 이유에 대해서 알아보도록 하자.
* 브라우저 벤더 중립성
- JavaScript는 초기에 넷스케이프에서 만들어진 언어였지만, 표준화 과정에서 다양한 기업과 개발자들이 참여했다. ECMA는 이 언어의 중립성을 강조하고자 “JavaScript”라는 특정한 상표 용어 대신 ‘ECMAScript’ 라는 제네릭한 용어를 선택했다.
* 상표권 문제
- ‘JavaScript’라는 용어는 넷스케이프와 썬 마이크로시스템즈(Sun Microsystems) 간에 상표 문제가 있었다. 넷스케이프는 자바 언어와 유사하게 보이도록 ‘JavaScript’라는 이름을 선택했지만, 자바와는 직접적인 연관성이 없었다. 따라서 ECMA는 이러한 상표 문제를 회피하고 범용성을 강조하기 위해 ‘ECMAScript’라는 용어를 채택했다.
* 확장성과 일반성
- ‘ECMAScript’는 언어의 코어 부분을 가리키는 용어로, 이 언어가 다양한 환경에서 사용될 수 있도록 일반적이고 확장 가능한 용어로 선택됐다. 이 용어는 웹 브라우저뿐만 아니라 서버 사이드 개발(예 : Node.js)이나 다른 환경에서도 사용될 수 있음을 나타낸다.
이렇게 선택된 용어 ‘ECMAScript’는 JavaScript의 표준화를 지원하면서도 언어 범용성과 중립성을 강조하는 역할을 한다. 자바스크립트는 이후에도 일반적으로 널리 사용되는 용어로 남아있지만, 표준 문서와 스펙에서는 주로 ‘ECMAScript’라는 용어가 사용된다.
'#IT 업무노트' 카테고리의 다른 글
모놀리식 아키텍쳐(Monolithic Architecture, MA)에 대해서 알아보자 (0) | 2024.01.07 |
---|---|
요구사항 정의서(Software Requirements Specification) (0) | 2024.01.06 |
EAI Inhouse 개발 VS 솔루션 도입 (0) | 2024.01.06 |
쿠버네티스란 무엇인가? (0) | 2024.01.06 |
JAVS VS C# (0) | 2024.01.05 |