-
[JavaScript] 01. 자바스크립트란 무엇인가?프로그래밍/JavaScript 2014. 3. 21. 23:58반응형
< 프론트엔드 개발자를 위한 자바스크립트>>(2013 인사이트, 한선용 옮김) 의 책을 요약한 내용으로 자바스크립트 제대로 배우기 스터디 그룹(페이스북) 의 글입니다.
1.2 자바스크립트 구현
자바스크립트 구현은 다음 세가지로 나뉜다.
- 코어 (ECMAScript)
- 문서 객체 모델 (DOM : Document Object Model)
- 브라우저 객체 모델 (BOM: Browser Object Model)
1.2.1 ECMAScript
- ECMA-262에서 정의한 'ECMAScript' 언어는 웹브라우저에 종속되지 않을 뿐만 아니라 입력이나 출력을 담당하는 메서드가 전혀 존재하지 않는다.
- ECMA-262에서 정의한 언어는 더 견고한 스크립트 언어를 만들기 위한 기반언어이며 웹 브라우저는 ECMAScript를 구현하는 '호스트 환경'일 뿐이다.
- 호스트 환경은 ECMAScript를 기본적으로 구현하고 이 환경 자체의 인터페이스 구실을 하도록 디자인된 확장을 제공. 여기서 확장이란 문서 객체 모델 (Document Object Model : DOM) 과 같은것을 의미. (이러한 확장은 ECMAScript의 핵심 타입과 문법을 이용해 환경에 밀접한 기능을 제공)
- 다른 호스트 환경에는 서버사이드 자바스크립트 플랫폼인 NodeJS와 어도비 플래시 등이 존재.
* ECMA-262의 정의
- 문법
- 타입
- 선언문
- 키워드
- 예약어
- 연산자
- 객체
ECMAScript는 위에서 정의한 부분을 구현한 언어를 부르는 말이다. 자바스크립트 또한 ECMAScript를 구현한 것이며 어도비 액션스크립트도 마찬가지.
* ECMAScript '판'
- ECMAScript의 여러버전을 '판' 이라 부르며 이는 ECMA-262의 개별 구현을 가르킨다.
- ECMA-262에서는 국제화를 위해 유니코드 표준을 지원해야 하며 객체는 플랫폼에 독립적이길 요구.
- ECMA-262의 2판은 교정본이라 부를수 있으며 ISO/IEC-16262와 완전히 일치하도록 업데이트 했으며 기능을 추가하거나 변경, 제거한 내용은 전혀 없다. 이러한 이유로 어떤 언어가 ECMAScript를 구현했는지 판단할 때는 보통 2판 기준으로 하지 않는다.
- ECMA-262 3판이 표준에 대한 첫번째 업데이트이다. 여기에서 문자열을 다루는 방법과 에러 정의 , 숫자형 출력을 업데이트 하였으며 정규 표현식과 새로운 제어문, try-catch를 이용한 예외 처리를 지원하기 시작했으며 국제화 표준을 더욱 준비하기 위해 노력하였다. 이러한 이유로 3판부터 진정한 프로그래밍 언어로 간주한다.
* ECMAScript 표준 준수란?
- 모든 타입과 값, 객체, 프로퍼티, 함수, 프로그램 문법과 시맨틱을 ECMA-262에 설명한 그대로 구현해야한다.
- 유니코드 문자 표준을 지원해야한다.
* 웹 브라우저의 ECMAScript 지원
- 2008년 부터 주요 웹 브라우저(IE, 파이어폭스, 사파리, 크롬, 오페라) 모두 ECMA-262 3판을 준수하였다.
1.2.2 문서 객체 모델 (DOM)
- 문서 객체 모델 (DOM : Document Object Model)은 XML을 HTML에서 사용할 수 있도록 확장한 애플리케이션 프로그래밍 인터페이스 (Application Programming Interface : API) 이다.
- DOM은 전체 페이지를 노드의 계층 구조인 다이어그램로 변환 가능
- DOM은 문서를 표현하는 트리를 생성하고 개발자는 이를 통해 구조를 자유롭게 수정가능
* DOM이 필요한 이유
- 넷스케이프와 마이크로소프트가 개발한 DHTML이 서로 달라 웹 통신 표준을 만들던 W3C에서 DOM 관련 작업을 시작하였다.
1.2.3 브라우저 객체 모델 (BOM)
- 브라우저 창에 접근하고 조작할 수 있게 하는 인터페이스인 브라우저 객체 모델 (BOM : Browser Object Model) 도입
- BOM을 이용하면 브라우저에 표시된 페이지와는 별개의 컨텍스트에서 브라우저와 상호작용 가능, 이는 BOM의 고유 특징인 동시에 BOM을 주관하는 JS 표준이 존재하지 않아 문제를 일으켰지만 HTML5의 등장으로 개선되고 있다.
1.3 자바스크립트 버전
- 현재로서는 자바스크립트의 급격한 발전으로 2.0 버전이라 부를만한 구현이 존재하지 않는다.
1.4 요약
- 자바스크립트는 웹페이지와 상호작용하도록 디자인된 스크립트 언어이며 다음 세가지 부분으로 구성
- ECMA-262에서 정의하는 ECMAScript. 핵심 기능을 제공
- 문서 객체 모델 (DOM). 웹페이지 콘텐츠를 조작하는 메서드와 인터페이스를 제공
- 브라우저 객체 모델 (BOM). 브라우저와 상호작용하는 매서드와 인터페이스를 제공
* ECMAScript 5에 대한 지원은 나아지는 중이지만 DOM 지원은 편차가 브라우저별로 심하다. BOM은 최근에 HTML5에서 표준화되고 있으므로 일부 공통된 점이 있지만 다르다고 생각해야한다.
후기
JavaScript+jQuery 입문 책과는 다르게 굉장히 상세한 내용을 다루고 있어 살짝 당황스러웠지만 몰랐던 점들을 알수 있어 도움되었다. 글이 길다보니 요약하기가 어려운것같다. 지금까지 보던 책들은 소스위주의 책들이었는데.. 아직까지는 이해할만하다.
반응형'프로그래밍 > JavaScript' 카테고리의 다른 글
[JavaScript] 06-1. 객체 지향 프로그래밍 - 객체에 대한 이해 (0) 2014.04.09 [JavaScript] 04. 변수와 스코프, 메모리 (0) 2014.04.03 [JavaScript] 03. 언어의 기초 (0) 2014.03.24 [JavaScript] 02. HTML 속의 자바스크립트 (0) 2014.03.22 [JavaScript] 00. 개요 (0) 2014.03.21