자바스크립트는 기본적으로 인터프리터 언어로 분류되지만 현대 자바스크립트 해석 엔진(V8 엔진 등)에서 컴파일이 되는 언어이다. 전통적으로 인터프리터 방식으로 동작하였지만 자바스크립트 실행 성능을 높이기 위해 Just-In-Time(JIT) 컴파일을 사용한다. 이 방식은 실행 중에 필요한 부분만 바이트코드나 기계어로 컴파일 된다. 예를 들면 console.log(); 와 같은 코드는 컴파일이 필요하지 않다.
인터프리터 언어란? (Interpreter Language)
- 코드를 작성하면 한 줄씩 읽고 즉시 실행하는 언어
- 컴파일 과정이 없으며 코드가 작성되면 바로 실행 가능
- 코드 실행 중에 발생하는 오류를 즉시 확인 가능
- 코드가 실행될 때마다 매번 해석을 해야하기 때문에 컴파일된 언어에 비해 실행 속도가 느릴 수 있다
컴파일 언어란? (Compiled Language)
- 소스 코드를 실행하기 전에 전체 코드 또는 실행하려는 코드를 기계어로 번역
- 기계어로 변환되어 있어 실행 속도가 빠름
- 컴파일 단계에서 코드의 오류를 미리 잡을 수 있음
- 컴파일 과정이 필요하기 떄문에 코드 수정 후 프로그램을 실행하기까지 시간이 걸림
현대의 자바스크립트는?
인터프리터 방식뿐만 아니라 위에서 말했던 JIT 컴파일 기술을 사용한다. 즉각적인 실행 방식과 컴파일러의 최적화된 기계어 생성 방식을 결합한 하이브리드 언어이다.
'JAVASCRIPT' 카테고리의 다른 글
[Javascript] requestAnimationFrame과 setInterval의 차이 (0) | 2024.10.22 |
---|---|
[Javascript] 비동기 작업을 처리하는 방법 (2) | 2024.09.11 |
[Javascript] 자바스크립트의 비트 연산자 (Bitwise Operators) (0) | 2024.09.04 |
[Javascript] 자바스크립트의 논리 연산자 (Logical Operators) (0) | 2024.08.30 |
[Javascript] 자바스크립트의 데이터 타입(원시형, 참조형) (1) | 2024.04.18 |