[번역] 자바스크립트의 역사 – 과거

Posted by in Books, Research, Review

이 글은 “The Past Present and Future of JavaScript”를 번역하여 작성한 글입니다.

이 책은 자바스크립트의 과거와 현재, 미래에 대해 간략히 설명하고 있습니다.

 

 

자바스크립트의 과거

 


 

 

1995년, 당시 네스케이프사의 네비게이터가 웹브라우저 시장을 지배하고 있었는데,

네스케이프는 HTML페이지에 경량의 프로그램 언어를 통하여 인터렉티브한 것을 추가 하기로 결정했다.

 

그래서 Brendan Erich를 고용했다., 그는 10일 만에 언어를 만들었다.

그 언어의 이름은 ‘모카’였고, 9월 ‘라이브스크립트’로 이름을 변경하였다.

그해 12월 네스케이프와 썬은 ‘라이브스크립트’를 ‘자바스크립트’라고 최종 이름을 결정하였다.

이 자바스크립트는 네비게이터 2.0B3에 포함되었다.

 

 

자바스크립트가 어떤 언어의 영향을 받았는지 살펴보자.

 

자바스크립트의 변수 스코프와 클로져등의 규칙은 Lisp dialect Scheme에서 가져왔다.

프로토타입 상속은 스몰토크에서 파생된 Self 프로그래밍 언어에서 영향을 받았다.

넷스케이프사는 자바와 밀접하게 연결된 자바스크립트가 자바의 문법과 유사하길 희망했다.

그래서 문법은 유사하지만, 둘은 다른 언어다.

 

 

 

자바스크립트는 왜 ‘ECMAScript’라 불리게 되었나?

 

자바스크립트가 나온 이후 , MS사는 IE 3.0에서 동작하는 ‘JSrcipt’라는 똑같은 언어를 만들어 냈다.

그러자 넷스케이프사는 자바스크립트를 표준화 하기 위해, 표준화 기구인 Ecma International에 요청을 했다.

 

1996년 11월, ECMA-262라 불리는 명세서에 대한 작업이 시작했고 그 버전은 1997년 7월에 완성되었다.

당시 Sun사가 ‘JAVA‘라는 단어를 상표 등록을 해 놨기에 ‘JavaScript’라고 부를 수 없었다.

 

따라서, 다음과 같이 이름이 결정되었다: 표준 언어의 이름은 ECMAScript이고,

대외적으로 알리기 위해서 자바스크립트나 J스크립트라고 불렀다. 나중엔 표준 이나 구현 모두 ‘JavaScript’라는 이름으로 불렸다.

ECMAScript의 현재 버전은 5.1이고, 이것은 ECMA-262, edition 5.1과 같은 의미다.

 

 

 

자바스크립트의 역사적으로 중요한 사건

 

이 파트에서는 자바스크립트 탄생 이후 어떠한 일들이 있었는지 설명하고 있다.

 

 

1997년 동적인 HTML

동적으로 변하는 컨텐츠와 웹페이지의 외관을 만들 수 있게 되었다.

따라서 페이지의 문서 객체 모델(DOM)을 다루어 컨텐츠와 스타일을 변화하고, 요소를 보여주거나 숨기는 것과 같은 것들을 가능하게 했다.

동적인 HTML은 IE4와 넷스케이프 네비케이터4에서 처음 등장하였다.

 

1999년 XMLHttpRequest

이 API는 클라이언트 측 스크립트를 http 또는 https로 서버에게 요청하고,

텍스트 형식으로(xml html json과 같은..) 데이터를 받는 것을 가능하게 했다.

그것은 ie5에서 소개되었다.

 

 

2001년 JSON, 자바스크립트 기반의 데이터 교환 포맷

2001년 더글라스 크락포드는 lisp에서 아이디어를 얻어 텍스트 형식으로 데이터를 저장하는 자바스크립트 문법을 ‘JSON’이라 이름 붙이고 문서화했다.

JSON은 객체, 배열, 문자열, 숫자들, 불린 등을 구조적인 데이터로 표현하기 위해 자바스크립트 리터럴로 사용된다.

 

예:

{

“first”: “Jane”,

“last”: “Porter”,

“married”: true,

“born”: 1890,

“friends”: [ “Tarzan”, “Cheeta” ]

}

 

수년 간, JSON은 마크업이 아닌 구조적인 데이터를 표현할 때 사용되며 XML의 대안으로 자바스크립트와 함께 대중적인 인기를 얻게 되었다.

 

 

2004년 Dojo Toolkit, 규모가 큰 자바스크립트 프로그래밍을 위한 프레임 워크

‘Dojo Toolkit’은 필요한 인프라를 제공하여, 규모가 큰 프로그래밍을 용이하게 했다.

예를 들어 상속 라이브러리, 모듈 시스템, 데스크탑 스타일의 그래픽 위젯 등에 사용되었다.

 

 

2005년 Ajax, 브라우저 기반의 어플리케이션

Ajax는 데스크탑 어플리케이션 수준으로 웹 페이지들 간 상호 작용을 하기 위한 기술들의 모음이다.

 

2005년 2월, Ajax를 통해 달성할 수 있는 인상적인 예로  구글 Maps’가 소개되었다.

이전에도 세계의 지도를  팬과 줌하는 것이 가능했지만 이는 브라우저를 통해 다운로드 된 지도만 보여졌었다.

구글 맵이 출시된 후, Jesse James Garrett은 구글 맵이 다른 대화형 웹사이트들과 어떤 특징들을 공유한다는 것을 알게 되었다.

그는 이러한 특성들을 비동기 자바스크립트와 XML의 약자로 “Ajax”라 불렀다.

 

Ajax의 두 가지 초석:

첫째, 컨텐츠 로딩을 백그라운드에서 비동기적으로 진행한다. (XMLHttpRequest)

둘째, 그 결과물을 가지고 현재 페이지에서 동적으로 업데이트를 한다.(dynamic HTML)

따라서 매번 전체 페이지를 다시 로드하는 것보다 많은 사용성 개선이 되었다.

 

Ajax는 자바 스크립트와 함께 동적 웹 어플리케이션의 주요 돌파구였다.

Ajax가 나온 이후, 이전과 다른 데이터 형식이 인기를 얻게 되었고(XML 대신 JSON),

다른 프로토콜들이 사용되게 되었고(HTTP뿐만 아닌 웹 소캣..),

양방향 통신 또한 가능하게 되었다.

 

 

2005년 Apache CouchDB, 자바스크립트 중심의 데이터베이스

대부분 CouchDB는 json 데이터 베이스이다. 사전에 스키마를 지정할 필요 없이  json객체로 제공하면 된다.

또한 맵 역할을 하거나, 작업을 줄여주는 자바스크립트의 함수들을 통해 뷰와 인덱스를 정의 할 수 있다.

따라서 CouchDB는 네이티브 데이터로 직접 일 처리를 할 수 있기 때문에 자바스크립트에 매우 적합하다.

관계형 데이터베이스와 비교하자면, CouchDB에는 매핑과 관련된 임피던스 불일치가 없다.

객체 데이터베이스와 비교해서 동작이 아닌 저장만 할 뿐이라 복잡함을 피할 수 있다.

CouchDB는 여러 유사한 NoSQL 데이터베이스 중 하나 일 뿐이다. 이들 대부분은 우수한 자바스크립트의 지원을 받고 있다.

 

 

2006년 jQuery, Dom조작을 도와주다.

브라우저 DOM은 클라이언트 사이드 웹 개발에서 가장 힘든 부분이다.

jQuery는 브라우저의 차이를 넘어선 추상화와 DOM의 쿼리 및 수정을 위한 강력하고 매끄러운 API를 제공하여 DOM조작을 쉽게 만든다.

 

 

2007년 WebKit, 모바일 웹의 기초

WebKit은 KDE에 의한 사전 작업을 바탕으로, 2003년 애플에 의해 소개된 HTML 엔진이며 2005년에 오픈소스가 되었다.

2007년에 아이폰의 소개와 함께  WebKit은 모바일 웹의 기초가 되었다.

WebKit은 안드로이드의 메인 엔진이면서 iOS의 유일한 엔진으로 모바일 시장을 지배하고 있다.

만약 크로스 플랫폼 모바일 앱을 만들고 싶다면, 웹 기술이 현재 가장 좋은 방법이 될 것이다.

 

 

2008년 V8, 더 빨라진 자바스크립트

구글이 크롬 웹브라우저를 소개했을 때, 많은 장점들 중 하나는 V8이라고 불리는 빠른 자바스크립트 엔진이었다.

이는 자바스크립트가 느리다는 인식을 바꾸고, 다른 브라우저 제조사들과의 속도 경쟁을 이끌 수 있게 되었다.

V8은 오픈 소스이면서, 잘 알려진 빠른 임베디드 언어가 필요할 때 사용 할 수 있는 독립형 컴포넌트이다

 

 

2009년 Node.js, 서버 사이드의 자바스크립트

Node.js로 많은 부하에도 잘 동작하는 서버를 구현하고자 한다면, 이벤트 방식의 non-blocking I/O 와 자바스크립트(V8)를 사용 해야 한다.

 

Node.js의 창시자인 Ryan Dahl는 자바스크립트를 선택한 몇 가지 이유를 언급했다:

“자바스크립트는 I/O APIs 없었다.” [Node.js는 유일한 non-blocking API들을 소개했다]

“웹 개발자들은 그것을 이미 사용하고 있다.” [자바스크립트는 특별히 웹 환경에서 잘 알려진 언어다]

“DOM API는 이벤트 기반이다. 모든 사람들은 스레드가 없고 이벤트 루프에서 실행하는 것에 이미 익숙하다.” [웹 개발자들은 콜백을 두려워하지 않는다]

 

자바스크립트 프로그래머를 위한 Node.js의 매력은 친숙한 언어로 프로그래밍을 할 수 있다는 것이다: 클라이언트와 서버를 같은 언어로 구현할 수 있다.

Node.js는 최신의 자바스크립트를 따라가지 못하는 브라우저에 대한 대책과 같은 똑똑한 기능을 제공한다.

예를 들면 자바스크립트를 사용하는 클라이언트와 동일한 코드의 서버 페이지들을 조합한다.(예, FunctionSource’s web server, Yahoo Cocktails)

 

 


 

 

자바스크립트가 어떻게 만들어졌고 어떤 역사적인 사건들로 변화했는지 알아보았습니다.

이번 번역을 통해 자바스크립트 상황과 의미에 맞게 활용해야겠다는 생각이 들었습니다.

 

‘현재’와 ‘미래’ 파트의 번역이 완료되면 또 공유 드리겠습니다!

긴 글 읽어주셔서 감사합니다^.^