ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 입문 책과는 다르게 굉장히 상세한 내용을 다루고 있어 살짝 당황스러웠지만 몰랐던 점들을 알수 있어 도움되었다. 글이 길다보니 요약하기가 어려운것같다. 지금까지 보던 책들은 소스위주의 책들이었는데.. 아직까지는 이해할만하다.



    반응형

    댓글

Designed by Tistory.