자바스크립트 웹 페이지에 생동감을 주기 위해 만들어진 언어다.
따라서 웹 페이지에 내장된 자바스크립트 엔진에 의해서 동작한다.
엔진의 종류는 다양한데 특유마다의 코드를 가지고 있다.
V8 – Chrome과 Opera에서 쓰입니다.
SpiderMonkey – Firefox에서 쓰입니다.
IE는 버전에 따라 'Trident’나 'Chakra’라 불리는 엔진을 사용합니다. 'ChakraCore’는 Microsoft Edge에 사용되며, 'SquirrelFish’는 Safari에 사용됩니다.
엔진의 동작 순서
- 엔진(브라우저 내장 엔진)이 스크립트를 읽는다.(파싱)
- 파싱하면서 AST를 기반으로 바이크 코드를 생성한다.
- 인터프리터가 바이트 코드를 실행할때 자주 사용되는 함수 및 타입 정보등이 있는 프로파일링 데이터와 최적화된 컴파일러에게 보낸다.
- 최적화된 컴파일러는 프로파일링을 기반으로 최적화된 코드를 작성한다.
- 읽어드린 스크립트를 기계어로 전환한다.(컴파일)
- 기계어로 전환된 코드가 실행된다. 기계어로 전환되었기 때문에 실행 속도가 빠르다.
엔진은 각 단계마다 최적화를 진행한다. 이러한 과정을 거치면서 속도가 더 빨라진다.
더보기
이미지 출처
'Tech.log > 프론트엔드' 카테고리의 다른 글
[Javascript Event Loop] (0) | 2021.05.19 |
---|---|
로컬스토리지(Local Storage) VS세션 스토리지 (Session Storage) 그리고 쿠키(Cookie) (0) | 2021.05.09 |
[브라우저의 렌더링 원리] (0) | 2021.04.22 |
[React] Component와 Props 알아보기 (0) | 2021.04.16 |
Pre-rendring[SSR vs CSR _2] (0) | 2021.04.12 |
댓글