글 작성자: 택시 운전사
반응형


Google V8

⚙ 자바스크립트 엔진(JavaScript Engine)

자바스크립트 엔진은 파싱과 JIT 컴파일을 하는 머신을 제공해야합니다.

자바스크립트로 쓰여진 스크립트로 기계가 실행가능한 과정을 만들어내는 과정을 할 수 있어야합니다. 대표적인 예시는 Google V8 엔진이 있습니다.


🗜 자바스크립트 런타임(JavaScript Runtime)

자바스크립트 런타임환경은 프로그램에 실행동안 사용 가능한 내장된 라이브러리를 제공합니다. 따라서 만약 당신이 브라우저 안에서 윈도우 오브젝트나 DOM API를 사용하고자한다면, 이 과정에 브라우저의 JavaScript 런타임 환경(Runtime Environment)이 포함될 것입니다. Node.js 런타임(runtime)은 Cluster와 FileSystem API들 같은 다른 라이브러리들을 포함합니다. 두 런타임(Runtime) 모두 내장된 데이터 타입들과 Console 오브젝트 같은 공통된 기능들을 포함하고 있습니다.


크롬(Chrome)과 Node.js는 따라서 같은 엔진(Google의 V8 엔진)을 공유하지만, 다른 런타임(runtime) 환경, 즉 크롬(Chrome)과 Node.js라는 다른 실행 환경을 가지고 있다고 할 수 있습니다.


만약 컴퓨터 내에서 프로그램이 가동되면, 컴퓨터가 그 프로그램의 런타임인 것입니다. 일부 프로그래밍 언어에서는, 어떤 재사용 가능한 프로그램이나 루틴들이 런타임 라이브러리로 만들어집니다. 이런 루틴들은 어떤 프로그램이 실행될 때 런타임에 연결되어 해당 프로그램을 사용할 수 있게합니다.


프로그래머들은 컴파일 시 프로그램 안에 삽입된 것과, 런타임 시 삽입된 것을 구분하는데, 전자는 컴파일 타임이라고 합니다.

오랫동안, 런타임은 전문 용어로 인정받지 않았지만, 점차 일반적인 용어로 포함되어 이제는 널리 쓰이고 있습니다.


즉, 런타임(runtime)과 엔진(Engine)의 관계는 전통적인 컴파일드 언어에서의 링커와 컴파일러의 관계와 같습니다.


참고


반응형