
브라우저의 엔진은 웹 페이지와 애플리케이션에서 동적인 상호작용과 기능을 실행하는 데 필수요소입니다. 우리가 쓴 텍스트(자바스크립트 코드)를 브라우저가 읽고 기계어로 변환하여 컴퓨터가 이해할 수 있도록 합니다.
자바스크립트 엔진은 현재 복잡하고 성능이 중요한 애플리케이션에서도 널리 사용될 수 있게 만들었습니다.
자바스크립트 엔진을 구현하는데 사용한 기반 언어(주로 C++)들의 특징 덕에 성능을 끌어올릴 수 있었습니다. 아래는 이러한 특징 덕에 구현할 수 있었던 대표적인 기능들입니다.
전통적으로 자바스크립트는 인터프리터 언어로 분류되곤 합니다. 하지만 현대의 자바스크립트 엔진은 JIT(Just-In-Time)컴파일을 사용하여 코드의 실행 속도를 향상시킵니다. 이로 인해, 자바스크립트는 인터프리터 언어의 특성과 컴파일 언어의 일부 이점을 모두 가지게 됩니다.
객체, 함수 등 우리가 만드는 모든 것은 메모리를 차지합니다. 그래서 엔진은 프로그램에서 더 이상 사용되지 않는 메모리를 자동으로 회수하여 메모리 효율성을 높입니다.
구글에서 개발한 엔진으로 Chrome, Node.js, Electron, 등등에서 이용됩니다. 자바스크립트의 실행 속도를 크게 향상시킨 것으로 유명하며, Node.js의 등장과 함께 서버 사이드 자바스크립트의 인기를 높이는 데 중요한 역할을 했습니다.
Mozilla Foundation에서 개발한 Firefox 브라우저를 위한 엔진입니다. 자바스크립트의 처음 구현체 중 하나입니다.
애플에서 개발한 Safari 브라우저를 위한 엔진입니다. Nitro라는 이름의 JIT컴파일러를 사용합니다. 애플 내부의 하드웨어와 소프트웨어 에코시스템 내에서 최적화되어 있습니다.
등등 각 환경에 따른 최적화 전략을 가지고 만들어져 자바스크립트 기반의 웹 페이지와 애플리케이션을 다양한 환경에서 실행할 수 있도록 지원합니다.