본문 바로가기
Tech/Javascript

자바스크립트 프로그래밍 1장

by uyoo 2020. 4. 23.
「프론트엔드 개발자를 위한 자바스크립트 프로그래밍」 서적을 참조했으며, 1장에 대한 요약 및 정리를 진행하려고 한다.

 

Javascript

  • 클라이언트 단에서 데이터 유효성 검사를 목적으로 1995년 처음 등장
  • Javascript(넷스케이프) vs JScript(마이크로소프트)
    • 이 당시엔 스크립트에 대한 표준안이 없었고, 이로 인해 많은 개발자들이 각각의 웹 브라우저에 맞는 스크립트로 제작
    • 번거로움들로 인해 표준화 제안 (ECMA)
    • 스크립트의 표준 명세서인 ECMAScript 정의
  • javascript의 구현으로는 크게 3가지로 나뉜다
    • 코어(ECMAScript)
    • DOM(Document Object Model)
    • BOM(Browser Object Model)

 

ECMAScript

  • 스크립트의 표준 명세서 (문법, 타입, 객체, 선언문, 연산자 등)
  • 웹 브라우저에 종속되지 않는다
  • 웹 브라우저는 ECMAScript를 구현하기 위한 호스트 환경(런타임)이다

 

DOM

  • XML을 Html에서 사용할 수 있도록 확장한 API이다
  • 전체 페이지에 대한 노드의 계층 구조(트리)를 생성한다
  • DOM API를 통해 노드 생성, 제거, 수정 등이 가능하다
  • 웹 페이지 콘텐츠를 조작하는 메서드와 인터페이스 제공

 

BOM

  • 브라우저 창에 접근하고 제어할 수 있는 인터페이스
  • 브라우저 창을 새로 띄움, 브라우저의 상세 정보를 반환(navigator), 불러온 페이지의 상세 정보 반환(location) 등
  • 브라우저와 상호작용하는 메서드와 인터페이스 제공

 


초기엔 Javascript를 참고하며 ECMAScript가 제안되었지만, 이후 ECMAScript 라는 표준 명세서를 기반으로 Javascript가 개선되어지고 있기 때문에 서로의 연관성은 매우 밀접하다는 생각이 들었다.

 

번외로, 각각 브라우저마다 ECMAScript를 반영하는 버전이 다르기 때문에 엔진의 성능도 차이가 존재할 수 있다는 점을 알게되었다. 다시 말해, 프로젝트 또는 서비스를 만들고자 할 때 어떤 브라우저를 사용할지, 그 브라우저는 ECMAScript를 어디까지 반영했는지에 대한 고려사항이 중요함을 깨달았다.

 

물론 이러한 호환성 문제를 해결해 줄 수 있는 방안으로 Babel이 존재한다.

 

Babel

  • ES6 사양으로 코드를 작성했을지라도 ES5로 변환시켜 브라우저의 호환성 문제를 해결