Node.js란?
Node.js is an open-source and cross-platform JavaScript runtime environment.
Node.js는 JS 런타임 환경이다.
Node.js runs the V8 JavaScript engine,
Node.js는 V8 JS 엔진을 실행한다.
JS 런타임이란?
- 런타임이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 뜻한다.
- 브라우저, Node.js, RN, 일렉트론 등이 있다.
- 따라서 Node.js는 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있게 하는 환경이다.
JS 엔진이란?
- 컴퓨터가 JS 언어를 이해할 수 있도록 기계어로 번역하고 실행시켜주는 엔진
JS 엔진의 코드 실행 과정
파싱(parsing) ⏩️ 컴파일링(compiling) ⏩️ 실행(executing)
- 컴파일링 방법에는 컴파일러(한번에 번역)를 사용하는 방법과 인터프리터(한줄한줄 번역)를 사용하는 방법이 있다.
V8 엔진의 실행 과정과 JIT compiler
- 그런데 V8 엔진은 JIT(Just-In-Time) compiler 방식을 취한다고 한다. 어떻게 실행되는 걸까?
파싱(parsing)
⏩️
JIT 컴파일링(compiling)
[ 인터프리터(JS를 바이트 코드로 변환)
⏩️ 컴파일러(기계어로 컴파일, 이 과정에서 자주 사용되는 바이트코드만 기계어 값을 캐싱)]
⏩️
실행(executing)
결론
- JS 언어를 실행시키기 위해서는 JS 엔진이 필요하다. V8은 이러한 JS 엔진 중 하나이다.
- 이 JS 엔진을 실행시키기 위해서는 JS 런타임 환경이 필요하다. Node.js는 이러한 JS 런타임 환경 중 하나이다.
- Node.js는 V8 JS 엔진을 실행한다.
- V8 JS 엔진은 JIT 컴파일링 방식을 이용한다.