곰돌이 놀이터
[JavaScript] 자바스크립트란? 본문
자바스크립트 란?
자바스크립트가 처음 등장했을 때는 웹 브라우저(클라이언트측)에서 데이터 유효성검사등을 담당하는 스크립트 언어에 불과했다.
그러나 현재는 브라우저 창과 그 컨텐츠의 거의 모든 부분에 상호작용을 하며, 클로저나 익명(람다)함수 및, 메타프로그래밍 까지 처리하며 복잡한 계산과 상호작용을 하는 완전한 프로그래밍 언어가 되었다.
또한 JQuery의 등장으로 쉽게 DOM을 핸들링 할 수 있고, 특히 Node.js의 등장으로 인해 자바스크립트를 이용한 서버개발도 가능하게 되었다.
■ 역사
- 1995년 입력 유효성 검사를 위해 처음 등장. ( 모뎀시절 서버 왕복 비용때문)
- 네스케이프와 선 마이크로시스템즈가 함께 1.0을 만듦.
- 마이크로소프트도 IE3와 함께 JScript 를 만듦.
- 표준을 위해 ECMAScript라는 이름의 스크립트 언어를 정의.
- 지금은 클로저, 익명함수, 메타프로그래밍 까지 가능한 프로그래밍 언어로 자리잡음.
■ 특징
1. 자바스크립트는 객체 기반의 스크립트 언어입니다.
2. 자바스크립트는 동적이며, 타입을 명시할 필요가 없는 인터프리터 언어입니다.
3. 자바스크립트는 객체 지향형 프로그래밍과 함수형 프로그래밍을 모두 표현할 수 있습니다.
※ 인터프리터 언어
C언어와 같은 언어는 소스 파일을 작성한 후, 해당 파일을 컴파일(compile)하여 사용자가 실행할 수 있는 실행 파일(.exe)로 만들어 사용한다.
하지만 인터프리터 언어는 이러한 컴파일 작업을 거치지 않고, 소스 코드를 바로 실행할 수 있는 언어를 의미한다.
자바스크립트는 웹 브라우저에 포함된 자바스크립트 인터프리터가 소스 코드를 직접 해석하여 바로 실행해준다.
■ 자바스크립트 구현은 다음 세가지로 나뉜다.
1. 코어( ECMAScript )
2. 문서 객체 모델( DOM )
3. 브라우저 객체 모델( BOM )
※ Javascript = ECMAScript + DOM + BOM
■ 코어( ECMAScript )
- 자바스크립트의 핵심 기능
문법, 타입, 선언문, 키워드, 예약어, 연산자, 객체등 언어의 저수준에 해당하는 부분이다.
'ECMAScript' 언어는 웹 브라우저에 종속되지 않으며, 브라우저는 ECMAScript를 구현하는 '호스팅환경'일 뿐이다.
이러한 호스트환경(브라우저, Node.js, 어도비 플래시)은 ECMAScript를 기본적으로 구현하고 DOM, BOM등과 같은 확장을 제공한다.
■ 문서 객체 모델( DOM, Document Object Model )
- 웹 페이지 콘텐츠를 조작하는 메서드와 인터페이스
XML을 HTML에서 사용할 수 있도록 확장된 애플리케이션 프로그래밍 인터페이스다.
DOM은 전체페이지를 노드 계층 구조로 변환하며, HTML페이지의 각 부분은 각기 다른 데이터를 포함하는 다양한 타입의 노드로 표현된다.
■ 브라우저 객체 모델( BOM, Browser Object Model )
- 브라우저와 상호작용하는 메서드와 인터페이스
BOM을 이용하면 브라우저 창에 접근하고 조작할 수 있다.
ex)
- 브라우저 창을 새로 띄움
- 브라우저 창을 움직이거나 크기를 조절
- 브라우저의 실제 정보를 반환하는 navigator 객체
- 사용자의 화면 해사동에 대한 정보를 반환하는 location 객체
- 쿠키 지원
- XMLHttpRequest 와 같은 커스텀 객체
■ 자바와 자바스크립트
자바와 자바스크립트는 그 이름만 놓고 보면 서로 관련이 있는 언어로 생각되기 쉽다.하지만 두 언어는 서로 직접적인 관련은 없으며, 비슷한 점보다는 다른 점이 훨씬 많다.
문법상 비슷한 부분은 두 언어의 문법이 모두 C언어를 기반으로 만들어졌기 때문이다.
자바 | 자바스크립트 |
컴파일 언어 | 인터프리터 언어 |
타입 검사를 업격하게 함 | 타입을 명시하지 않음 |
클래스( class ) 기반의 객체 지향 언어 | 프로토타입( prototype ) 기반의 객체 지향 언어 |
참고
http://boycoding.tistory.com/2
http://tcpschool.com/javascript/intro
http://seojeee.tumblr.com/post/79965313038/1%EC%9E%A5-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80