2015년 1월 12일 월요일

[JavaScript] 자바스크립트란 무엇인가?

부제 : ECMAScript와 자바스크립트


비공식 자바스크립트(Javascript) 로고


자바스크립트(Javascript)는 1995년 넷스케이프(Netscape) 웹 브라우져에서 웹페이지에 동적인 요소를 구현하기 위해서 발명 되었다. 그 후 많은 다른 웹 브라우져들 또한 이 언어를 탑재하기 시작했고, 그 결과로 현대의 웹 어플리케이션의 구현을 가능하게 만든 언어이다. 이 언어로 인해 웹 어플리케이션에서 더 이상 사용자가 페이지 새로고침 또는 페이지를 새로 불러오지 않고도 웹과 직접적인 연결이 가능하게 되었다.


우선 자바스크립트(Javascript)를 시작하기 전에 처음 알아야 할 것은 이 자바스크립트(Javascript)라는 언어는 Sun System이 개발하여 지금은 Oracle에서 관리되고있는 자바(Java)라는 프로그래밍 언어와는 전혀 관계가 없다는 것이다. 둘다 자바(Java) 라는 단어를 이름에 가지고 있으니 비슷해 보일 수도 있겠지만, 전혀 그렇지 않다. 몇몇 소스들에 따르면 이 자바스크립트(Javascript)라는 이름은 자바(Java)의 유명세를 등에 업기 위해서 이리 이름 지어졌다고도 한다. 자바스크립트(Javascript)가 처음 나왔을 때는 1995년, 바로 자바(Java)라는 프로그래밍 언어가 유명세를 타며 세상을 휩쓸고 있을 때였다. 아마 이 유명세를 등에 업으려 그렇게 한게 아닐까?


어쨋든, 자바스크립트(Javascript)가 넷스케이프(Netscape) 브라우져만이 아니라 다른 웹 브라우져들의 지원까지 받기 시작하면서 다양한 웹 브라우져에서 자바스크립트(Javascript)가 공통되게 잘 작동하기 위해서 표준 규격이 필요해졌는데, 이 때문에, ECMA 국제 기구에서 "ECMAScript Standard"라 불리는 스크립트 표준이 만들어지게 된다. 자바스크립트와 비슷한 뜻으로 많이 들어본 사람들이 있을텐데, Javascript는 ECMAScript와 BOM(Browser Object Model) 와 DOM(Document Object Model)이라는 1개의 코어와, 2개의 모델로 이루어져 있다. ECMAScript 와 Javascript 는 비슷한 뜻으로 자주 쓰이나 작은 차이를 가지고 있다는 걸 알아두자.

앞서 말했듯 흔히 우리가 자바스크립트(Javascript)라 부르는 것은 정확히 말하면 3가지가 합쳐서 만들어진것인데 그것들은 바로 ECMAScript 와 DOM(Document Object Model) 와 BOM(Browser Object Model) 이다.

ECMAScript는 자바 스크립트를 이루는 코어(Core) 스크립트 언어로, 웹 환경에서만 호스트 되는 언어가 아니다. 웹 환경은 ECMA 스크립트가 호스트되는 환경들 중 하나일 뿐이다. EMCA 스크립트 호스트 환경은 ECMA 스크립트 실행 환경이 구현되있고, 각각 그 환경에 알맞는 확장성을 가지고 있다. 예를들어 웹 브라우져 환경에서는 BOM(Browser Object Model)과 DOM(Document Object Model)이 그 확장성이 되겠다. 이러한 확장성들은 EMCA 스크립트의 문법과 기능에 맞춰 기능의 확장을 가능게 한다. 자바스크립트의 document 객체가 좋은 예이다. 다른 호스트 환경으로는 node.js, Adobe Flash, MongoDB, CouchDB  등이 있다

ECMA 스크립트는 기본적으로 언어의
  • 문법(Syntax)
  • 데이터 타입(Type)
  • 구문(조건문, 반복문 등)(Statement)
  • 키워드(Keyword)
  • 예정 키워드(Reserved Word)
  • 연산자(Operator)
  • 객체(Object)
등을 규정짓는다. 이는 어떤 ECMA 스크립트 호스트 환경에서든 동일하다.

자바스크립트(Javascript)의 코어 스크립트인 ECMAScript 에는 몇가지 버젼들이 있는데, 2000년부터 2010년까지는 "ECMAScript 버젼 3"이 가장 대중적으로 지원되었다. 그리고 이 동안 언어에 근본적인 변화, 발전, 그리고 확장을 꾀한다는 야심을 가지고 "ECMAScript 버젼 4"의 개발이 진행되었다. 매우 대중적으로 쓰이고, 거의 모든 웹에서 쓰이는 언어를 바꾼다는게 쉽지는 않았는지, 원래 2008년 발표로 계획되었던 "ECMAScript 버젼 4"는 2008년에 엎어져 버렸고(ECMAScript Harmony(버젼 6)라는 다른 프로젝트로 이름을 바꿨다, 현재 진행 중), "ECMAScript 버젼 5"라는 이름으로 원래 계획된 거에는 미치지 못하지만 그래도 작은 발전을 가진 다섯번째 ECMAScript 에디션이 발표되었다. 참고로 내가 앞으로 포스트 할 자바스크립트가 바로 요즘 잘 쓰이고 있는 "ECMAScript 버젼 5"이다. 현재 "ECMAScript 버젼 6", 즉 버젼 4에서 엎어졌던 기능들을 이어가는 "ECMAScript Harmony" 프로젝트가 거의 완성단계에 있으며, 몇몇 웹 브라우져들은 미리 발표된 기능들을 지원하기도 한다.  어쨋든  "ECMAScript 버젼 6"은  2015년 6월 발표를 앞두고 계속 개발되고 있는 중이다.

이 ECMAScript 언어는 다른 언어에 비해 매우 높은 자유도를 가졌는데. 이는 왜냐하면 초기 자바스크립트(Javascript)가 초심자들의 접근을 용이하게, 더 쉽게 하는데 목적을 두고 개발된 언어이기 때문이다. 하지만 실제 개발 상황에서는, 시스템이 문제가 뭔지 제대로 알려주지 않아 개발을 더 어렵게 만들기도 한다. 그렇지만 이런 자유도에 따라오는 몇가지 장점들이 있는데, 그건 바로 자유도가 낮은 다른 프로그래밍 언어들이 구현하기 거의 불가능한 기능들을 자바스크립트(Javascript)로 구현할 수 있다는것이다. 이러한 이유에서 ECMA 스크립트는 몇년전 부터 소프트웨어 산업에서 많은 관심을 받고 있다.

댓글 없음:

댓글 쓰기