본문 바로가기

Fun,Fun,Fun

자바 스크립트(Java Script)에 대해서

자바 스크립트(JavaScript)


확장자. js
등장시기 1995 년
설계자 브렌든 아이크
개발자 넷스케이프, Mozilla Foundation
영향을 받은 언어 C언어, Java, Perl, Python, Scheme, Self
영향을준 언어 Dart , Objective- J

JavaScript (자바 스크립트)는 프로그래밍 언어의 하나이다. Java와 이름이 비슷하지만 다른 프로그래밍 언어이다.

객체 지향 스크립트 언어인 것을 특징으로한다. 주로 웹 브라우저에 구현된 동적 웹 사이트 구축및 리치 인터넷 애플리케이션등 고급 사용자 인터페이스 개발에 사용된다.


JavaScript라는 말은 Mozilla가 사양을 책정하고 구현하는 스크립팅언어를 가리킨다. 이 스크립트 언어는 Ecma 인터내셔널에서 ECMAScript (ECMA-262)로 표준화되어 많은 Web브라우저등이 표준화된 ECMAScript를 구현하고있다. 예를 들어, Microsoft의 구현은 JScript라고 부른다.


일반적으로 JavaScript라는 말이 사용될 때는 이러한 다양한 ECMAScript 구현도 포함한 폭넓은 의미로 사용되기 때문에 어느 의미에서 JavaScript라는 말이 사용되고 있는지는 맥락에서 판단할 필요가있다.


ECMAScript 사양에 자체 확장을 조건부로 현재 주요 브라우저가 구현하는 스크립트 언어는 ECMAScript 에 부합 하게된다. 넓은 의미에서 이것을 JavaScript라고 부르는 경우 주요 브라우저에서 구현하는 스크립트 언어는 마이크로 소프트와 Google, Apple의 구현을 포함한 JavaScript이다.


또한, Web브라우저에서 잘 구현된 API인 DOM ( Document Object Model )은 ECMAScript 사양의 일부가 아니기 때문에, DOM의 준수 여부는 ECMAScript 준수 여부와는 관계 없다.




프로그래밍 언어로서의 특징

JavaScript 는 프로토 타입 기반의 객체 지향 프로그래밍 언어이다. 많은 경우 C언어와 비슷한 절차적 언어 와 같은 스타일로 작성 되지만, 일류 함수를 지원하는(함수를 일급 객체로 취급) 함수형 언어의 성격도 가지고 있다. 그런 유연한 설계에 여러 응용 프로그램에서 매크로 언어로도 채용되고 있다.


Aptana나 Eclipse, NetBeans, IntelliJ IDEA같은 통합 개발 환경은 JavaScript를 지원 하고 있으며, 대규모 개발이 가능하게되어 있다. 또한 각 처리계의 구현의 차이에 의한 호환성 문제는 Prototype JavaScript Framework등의 JavaScript 라이브러리를 흡수함으로써 해결되고 있다. 또한 Ext JS등의 본격적인 GUI 라이브러리의 등장으로 데스크톱 응용 프로그램과 손색없는 사용자 인터페이스의 구축이 가능하게 되었다.


또한 Direct Web Remoting ( DWR )등의 기술의 발달로 클라이언트와 서버간의 통신이 크게 쉬워진 것이나, Jetty등의 응용 프로그램 서버가 Comet이용시 메모리 사용량을 절감 했기 때문에 서버에서 클라이언트 에 정보 푸시, 배달등이 실용적으로 되었다.


JavaScript는 스레드 제어 명령을 지원하지 않기 때문에 멀티 스레드 코드를 쓰기 어렵지만 WHATWG에 의해 Web Workers API의 개발이 진행되고 있으며, 백그라운드 처리및 비동기 입출력 제어가 쉽게 실현할 수있게 된다.




자바 스크립트 역사

탄생

JavaScript는 넷스케이프의 브렌든 아이크에 의해 개발 되고 Netscape Navigator 2.0에서 구현 되었다. 개발 당초는 LiveScript라고 했지만, 1995년에 마이크로 시스템(현 오라클)이 개발한 프로그래밍 언어 Java는 당시 큰 주목을 받고 있으며 넷스케이프와 썬 마이크로 시스템즈가 업무 제휴하고 있던일도 있었기 때문에, JavaScript로 이름이 변경 되었다.


1996년에 마이크로 소프트의 Internet Explorer 3.0에 탑재되게 되면서 그 간편함에서 JavaScript가 급속히 보급해 나간다. 1997년 통신에 관한 표준을 개발하는 국제 단체 Ecma인터내셔널에 의해 JavaScript의 핵심 적인 사양이 ECMAScript로 표준화되며 많은 웹 브라우저에서 사용할 수있게 되었다.


넷스케이프는 웹 애플리케이션 개발 언어로 자사의 서버 제품에 구현한 LiveWire JavaScript도 발표했지만, 그다지 보급되지 않았다.


JavaScript의 등장 초기에는 브라우저 벤더간의 언어 사양의 독자 확장이 이루어지고 있었기 때문에, 브라우저간 호환성이 매우 낮았다. 그러나 현재는 ECMAScript의 개발에의해 구현간의 호환성이 향상, DOM등 관련 사양 구현에 대한 호환성도 상대적으로 높아지고있다. 다만, 현재에도 특정 브라우저에서 실행할수없는 ECMAScript 이전 구문과 브라우저 자체의 DOM을 사용하는 코드가 사용되는 경우가있어, 호환성 문제 가 완전히 해소된 것은 아니다.


현재
시장의 브라우저 간의 호환성이 어느 정도 확립된 2000 년경에는 Google과 Amazon등의 대기업도 JavaScript를 적극적으로 이용하기 시작했다. 2005년, 마이크로 소프트가 개발한 JavaScript의 비동기 통신을 이용한 기술로 Ajax라는 이름이 붙은 강력한 웹 응용프로그램 개발 언어의 하나로서 다시 주목을 모았다. Ajax를 이용하고있는 대표적인 응용 프로그램으로 Google지도및 Amazon Diamond Search등이있다.


또한 최근에는 Mozilla Firefox용 애드온 Greasemonkey와 Opera의 표준 기능, Google Chrome의 확장등 에서 "사용자 스크립트" 라는 웹 페이지 로딩시에 수행 할 수있는 JavaScript 응용 프로그램이 등장 하고있다.


이전에는 인터프리터 방식으로 실행되는 것이 일반적 이었기 때문에 실행 속도는 그다지 빠르지 않았지만 현재는 JIT컴파일등을 이용한 다양한 최적화가 이루어지고 있으며, 각 웹브라우저 벤더 모두 빠르게 도모하고 격전을 벌이고 있다.




JavaScript 2.0
2000년부터 2003년까지 현재의 JavaScript의 후속 버전이 될 JavaScript 2.0을 만드려는 움직임이 있었지만, 넷스케이프와 마이크로 소프트의 대립으로 결정되지 않았다. 당시 넷스케이프가 제안 했던 방안은 어도비의 ActionScript 2.0에 인계되어 마이크로 소프트 방안은 JScript . NET으로 인수되었다.

ECMAScript 4책정이 진행되고, 2006년 시점에서 Mozilla Foundation은 이에 따라 JavaScript 2.0을 창조하는것을 표명 했다. Mozilla는 ECMAScript 4의 책정에 있어서는 Python 문법을 일부 가져온 방안을 제안하고, 자신도 구현 하고있다.


그러나 그후, ECMAScript의 표준화 작업이 Mozilla, Adobe, Opera, Google 들이 추천하는 ECMAScript 4와 Microsoft, Yahoo!들이 추천하는 ECMAScript 3.1에 사실상 분열해 버린 영향으로 2008년 8월에 큰 방침 전환이 JavaScript 2.0의 기반을 마련하는 프로젝트로서 새롭게 'ECMAScript Harmony'가 발족했다. 이 프로젝트는 ECMAScript 3.1을 기반으로 하면서도, ECMAScript 4에 들어갈 예정이었던 기능의 일부를 캡처 형태로 기준을 책정할 예정 이다. 또한, ECMAScript 4에서 도입된 네임 스페이스 패키지등의 기능은 도입 되지 않는다.