๋ชฉ์ฐจ
JavaScript 란 무엇인가?
JavaScript 는、Netscape가 개발한 오브젝트 스크립팅 언어로、많은 웹 페이지나 서버 애플리케이션으로 전세계에서 사용되고 있다. Netscape의 JavaScript는、ECMA-262 개정3판 (ECMAScript) 표준 스크립팅언어의 슈퍼셋(상위개념 또는 전체집합)으로、공포되어 있는 규격과 거의 차이가 없다.
흔히 있는 오해와는 반대로, JavaScript는 "인터프리터 가능한 Java" 가 아니다. 한마디로 JavaScript는 프로토타입 기반의 오브젝트 구문을 지원하는 동적인 스크립팅 언어이다. 기본적인 구문은 이 언어를 습득하기 위해 필요한 새로운 개념을 줄이기 위해 Java와 C++ 두언어와 비슷하도록 하여, if문, for, while 반복과 switch, try ... catch 블럭등의 언어요소는 같은(또는 그것과 가까운) 기능을 한다.
Javascript는 절차지향 (procedural) 언어와 객체지향 (object oriented) 언어 두가지로 기능지을 수 있다. 오브젝트는 JavaScript에서, C++ 과 Java와 같은 컴파일러형 언어에 있어서 일반적인 구문 클래스정의와 반대로, 실행시에 메소드와 프로퍼티를 그 이외로부터의 오브젝트에 더하는 것으로 프로그램에 근거해서 작성된다. 한번 오브젝트가 구축되면, 같은 오브젝트를 작성하는데도 프로토타입으로서 사용할 수 있다.
JavaScript의 동적인 성질은, 실행시의 오브젝트 구축, 가변 인수 리스트, 함수 변수, (eval 에 의한)동적 스크립트 작성, (for ... in 에 의한) 오브젝트의 내부참조, 또는 소스코드 복원 (JavaScript 의 프로그램은 함수본체를 소스텍스트에 역컴파일할 수 있다.) 을 포함하고 있다.
고유 오브젝트로는 Number, String, Boolean, Date, RegExp, 그리고 Math 가 있다.
JavaScript 프로그래밍에 관한 깊은 의논에 대해서 상세한 것은, 아래 표의 언어와 Scripting resources의 링크에서 얻을 수 있다.
어떻게 구현되어 있을까 ?
mozilla.org 는 두개의 JavaScript 구현을 호스트하고 있다. 최초로써의 JavaScript는 Netscape의 Brendan Eich가 작성하고, ECMA-262 개정3판 (JavaScript 1.5 와 같음) 에 적합하게 수정되어져왔다. 이엔진은, SpiderMonkey 라고 하는 코드네임으로, C로 구현되어져있다. Rhino 엔진은, Norris Boyd ( 이 사람도 Netscape 회원) 에 이해 작성되었으며, Java에 의해 JavaScript를 구현된다. SpiderMonkey처럼, Rhino도 ECMA-262 개정 3판에 준거한다.
mozilla.org의 각 JavaScript 엔진은, 애플리케이션이 JavaScript를 지원하기 위해 부를 수 있는 공개 API를 공개하고 있다. JavaScript 를 지원하는 가장 일반적인 호스트환경은 웹브라우저이다. 웹브라우저는 주로 DOM의 JavaScript로의 구현을 담당하는 "호스트 오브젝트" 를 작성하는데 공개 API를 사용하고 있다.
JavaScript 에 있어서 또 하나의 일반적인 애플리케이션은, (웹) 서버사이드 스크립팅 언어이다. JavaScript 를 사용하는 웹 서버에서는, 실제 HTTP 요청/응답 오브젝트를 대신하는 것으로서, 호스트 오브젝트를 다른 프로그램으로부터 보이는 형태로 두게 된다. JavaScript 프로그램은, 그 오브젝트를 조작해서 동적으로 웹 페이지를 생성할 수 있다.
JavaScript 를 당신의 애플리케이션에 삽입하는 것에서부터 상세한 정보에 대해서까지는 아래의 SpiderMonkey 나 Rhino 링크를 참조하던, netscape.public.mozilla.jseng 뉴스 그룹에서 우리를 참조하길 바란다.
JavaScript 리소스
- SpiderMonkey
- C 엔진의 JavaScript (SpiderMonkey 라고 불리어짐) 의 삽입에 대해서의 상세정보.
- Rhino
- Java 엔진의 JavaScript (Rhino 라고 불리어짐) 의 삽입에 대해서의 상세정보
- Language resources
- 공포되고 있는 JavaScript의 표준, LiveConnect의 문서, JavaScript 2.0의 작업을 설명
- A re-introduction to JavaScript
- Core JavaScript 1.5 Guide 와 Core JavaScript 1.5 Reference
- Scripting resources
- 추천하는 읽을거리, 온라인 레퍼런스와 튜토리얼, 예제코드를 포함, JavaScript의 스크립팅 리소스를 가리킨다.
- Projects page
- 오픈소스의 JavaScript 엔진을 사용한 다른 프로젝트 목록
- Test library page
- core JavaScript의 테스트에 관한 정보
- mozilla.dev.tech.js-engine
- netscape.public.mozilla.jseng 뉴스그룹은, JavaScript 엔진에 대해서 의논하기 위한 것이다. 브라우저 스크립팅의 문제는, mozilla.dev.tech.javascript 포럼에 보낼 수 있다.

