-
자바스크립트의 엔진은 무엇이며, 어떻게 작동되는 것일까?Study/JavaScript 2020. 4. 20. 15:11
자바스크립트는 브라우저뿐만 아니라 서버에서도 실행할 수 있습니다. 이 외에도 자바스크립트 엔진(JavaScript engine)이라 불리는 특별한 프로그램이 들어 있는 모든 디바이스에서도 동작합니다.
브라우저엔 "자바스크립트 가상 머신"이라 불리는 엔진이 내장되어 있습니다.
엔진의 종류는 다양한데, 엔진마다 특유의 코드네임이 있습니다. 아래처럼 말이죠.
- V8 – Chrome과 Opera에서 쓰입니다.
- SpiderMonkey – Firefox에서 쓰입니다.
- IE는 버전에 따라 "Trident"나 "Chakra"라 불리는 엔진을 사용합니다. "ChakraCore"는 Microsoft Edge에 사용되며, "SquirrelFish"는 Safari에 사용됩니다.
위의 코드네임은 개발 관련 글에서 종종 언급되기 때문에 기억해 두는 것이 좋습니다. 본 튜토리얼에서도 해당 코드네임을 사용할 예정입니다. "X라는 기능은 V8에서만 지원합니다."라는 식으로 말이죠. 이런 문장을 만나면 Chrome과 Opera에서만 이 기능을 지원한다고 이해하시면 됩니다.
엔진은 어떻게 동작하나요?
엔진이 어떻게 동작하는지 이해하려면 상당한 시간을 쏟아부어야 합니다. 하지만 기본 원리는 다음과 같이 간단합니다.
- 엔진(브라우저라면 내장 엔진)이 스크립트를 읽습니다(“파싱”).
- 읽어 들인 스크립트를 기계어로 전환합니다(“컴파일”).
- 기계어로 전환된 코드가 실행됩니다. 기계어로 전환되었기 때문에 실행 속도가 빠릅니다.
엔진은 프로세스 각 단계마다 최적화를 진행합니다. 심지어 컴파일이 끝나고 실행 중인 코드를 감시하면서, 이 코드로 흘러가는 데이터를 분석하고, 분석 결과를 토대로 기계어로 전환된 코드를 다시 최적화하기도 합니다. 이런 과정을 거치면 스크립트 실행 속도는 더욱 더 빨라집니다.
https://ko.javascript.info/intro
'Study > JavaScript' 카테고리의 다른 글
JS의 자료형 (0) 2020.04.20 변수 명명 규칙 (0) 2020.04.20 자바스크립트 데이터타입(1) (0) 2020.04.14 'use strict'; (0) 2020.04.14 조건문(5)__boolean의 대체제 (0) 2020.04.14