MZCBootCamp

JS_CH01_AboutJavaScript

dding-shark 2025. 9. 6. 12:11
728x90

CH01_AboutJavaScript

  • 자바스크립트란?
    • 동적인 웹 페이지를 위해 만들어진 객체 기반의 스크립트 언어입니다.
    • 원래는 웹 브라우저에서 주로 사용되었지만, Node.js의 등장으로 서버 및 다양한 환경에서 사용되는 범용 언어가 되었습니다.
  • 스크립트 언어란?
    • 전통적으로는 인터프리터 방식으로 동작하지만, 현대 런타임은 JIT(Just-In-Time) 컴파일을 병행하여 성능을 높입니다 (예: V8, PyPy).
    • "사전 컴파일 없이 바로 실행"된다는 표현은 개발자가 별도의 빌드 단계에서 플랫폼용 네이티브 바이너리를 만드는 과정이 없다는 의미입니다. 런타임에서 바이트코드나 머신 코드로의 동적 변환이 발생할 수 있습니다.
  • JS의 동작 원리 (개요)
    1. 파싱: 소스 코드를 파싱하여 AST(Abstract Syntax Tree)를 생성합니다.
    2. 바이트코드/인터프리팅: AST로부터 바이트코드나 인터프리터용 내부 표현을 생성하여 빠르게 실행을 시작합니다.
    3. 프로파일링: 실행 중에 핫스팟(자주 실행되는 코드)을 감지하기 위해 실행 정보를 수집합니다.
    4. JIT 컴파일: 수집된 프로파일을 기반으로 핫스팟에 대해 머신 코드로 컴파일하고 최적화를 적용합니다.
    5. Deoptimization: 런타임 가정(예: 타입 일관성 등)이 깨지면 최적화된 코드를 비활성화하고 안전한 코드 경로로 되돌립니다.
    • 참고: 따라서 "컴파일을 전혀 하지 않는다"보다 "컴파일은 런타임에 필요에 따라 동적으로 수행된다"가 더 정확한 표현입니다.
  • 주요 JS 엔진 (브라우저/런타임 별)
    • Chrome / Node.js: V8 (예: Ignition, Turbofan)
    • Firefox: SpiderMonkey
    • Safari: JavaScriptCore (JSC, Nitro 계열)
    • Internet Explorer: JScript
    • Edge(구버전): Chakra

728x90

'MZCBootCamp' 카테고리의 다른 글

JS_CH05_BINDING  (0) 2025.09.07
JS_CH04_Function  (0) 2025.09.06
JS_03_OPERATOR  (0) 2025.09.06
JS_CH02_Variable  (0) 2025.09.06