• Blog
  • Projects
  • Resume
profile_image

모던 자바스크립트 Deep Dive - 2장 자바스크립트란?

StudyJavaScript

2024.01.15

2.3 자바스크립트 성장과 역사

  • 렌더링: HTML, CSS, JS로 작성된 문서를 해석해서 브라우저에 시각적으로 출력하는 것.


2.4 자바스크립트와 ECMAScript

  • 자바스크립트는 일반적으로 프로그래밍 언어로 기본 뼈대를 이루는 ECMAScript와 브라우저가 별도 지원하는 클라이언트 사이드 Web API를 아우르는 개념
    • Web API

      DOM, BOM, Canvas, XMLHttpRequest, fetch, requestAnimationFrame, SVG, Web Storage, Web Component, Web Worker 등..


2.5 자바스크립트의 특징

  • 컴파일러 언어와 인터프리터 언어

    컴파일러 언어인터프리터 언어
    코드가 실행되기 전 단계인 컴파일 타임에 소스코드 전체를 한번에 머신 코드로 변환 후 실행코드가 실행되는 단계인 런타임에 문 단위로 한 줄씩 중간 코드인 바이트코드로 변환한 후 실행
    실행 파일 생성실행 파일을 생성하지 않음
    컴파일 단계와 실행 단계가 분리되어 있음.
    명시적인 컴파일 단계를 거치고, 명시적으로 실행 파일을 실행
    인터프리트 단계와 실행 단계가 분리되어 있지 않음.
    인터프리터는 한 줄씩 바이트코드로 변환하고 즉시 실행
    실행에 앞서 컴파일은 단 한번 수행코드가 실행될 때 마다 인터프리트 과정이 반복 수행
    컴파일과 실행 단계가 분리되어 있으므로 코드 실행 속도가 빠름인터프리트 단계와 실행 단계가 분리되어 있지 않고 반복 수행되므로 코드 실행 속도가 비교적 느림
    • 머신 코드: CPU가 바로 실행할 수 있는 기계어
    • 바이트코드: 특정한 하드웨어가 아니라 가상 머신에서 실행하도록 만든 바이너리 코드
  • 모던 브라우저에서 사용되는 인터프리터는 전통적인 컴파일러 언어처럼 명시적인 컴파일 단계를 거치진 않음
    ⇒ 복잡한 과정을 통해 일부 소스코드를 컴파일하고 실행

    • 자바스크립트는 런타임에 컴파일되며 실행 파일이 생성되지 않고, 인터프리터의 도움 없이 실행할 수 없기 때문에 컴파일러 언어라고 할 수 없음!