개발 무지렁이

[JavaScript] V8 자바스크립트 엔진과 브라우저 외부에서 실행 가능한 런타임 환경 NodeJS 본문

Frontend/JavaScript

[JavaScript] V8 자바스크립트 엔진과 브라우저 외부에서 실행 가능한 런타임 환경 NodeJS

Gaejirang-e 2023. 2. 20. 16:15

𐂂 자바스크립트 (JavaScript)
웹페이지의 보조적 기능을 수행하기 위한 경량 프로그래밍 언어로 시작
프론트엔드(front-end)백엔드(back-end)를 모두 다루는 '범용 프로그래밍 언어'로 성장

🦔 JavaScript의 표준화
모든 브라우저에서 동작하기 위한 버전관리

[🗿 ECMA: 컴퓨터 시스템 표준을 관리하는 기구]
ECMAScript6(ES6)
: 범용 프로그래밍 언어로써 갖춰야할 기능을 대거 도입한 표준화된 자바스크립트 버전

JavaScript = ECMAScript🦴 + 클라이언트사이드 Web API (브라우저 별도지원)

𖠃 V8 자바스크립트 엔진
자바스크립트 코드를 빠르게 컴파일 및 실행, JIT(Just-In-Time) 컴파일러 도입
(그 밖에도 옵티마이저[코드 실행패턴 분석 및 메모리 사용량 최적화]멀티 스레딩 지원)

🧸 JIT(Just-In-Time) 컴파일러
: 자바스크립트 코드를 기계 코드로 변환하는데,
자주 실행되는 코드 블록미리 컴파일하여, 캐시되어 반복실행되는 코드의 성능이 향상된다.

🚂 V8 자바스크립트 엔진을 구동시키는 런타임 환경 > Node.js
브라우저 외부에서 자바스크립트(JavaScript)실행할 수 있도록,
자바스크립트(JavaScript)브라우저에서 독립
(비동기 지원, 싱글 스레드 이벤트 루프 기반으로 동작)

🧸 이벤트 루프
: 사용자 입력, 타이머, 네트워크 요청과 같은 이벤트를 계속 감지하고,
이벤트 큐에 순차적으로 추가, 처리한다. 처리할 때, 각 이벤트에 대응하는 콜백함수 or 핸들러를 실행하여
싱글스레드 환경에서 비동기 작업을 처리하는 메커니즘을 말한다.
(동시성 문제를 피할 수 있다)
Comments