Javascript와 컴파일 방식

gongyoon·2023년 11월 27일
0

JS

목록 보기
5/5

우선 컴파일 방식에 대해 알아보자.

Compiler vs Interpreter vs JIT

컴파일은 3가지의 종류가 있다.
실행중인 소스 코드를 한줄씩 읽어가면서 바로 실행하는 인터프리터 방식과, 실행 전에 컴파일하는 정적 컴파일 방식, 그리고 동적 번역이라고도 불리며, 실행하는 시점에 바이트 코드를 기계어로 번역하는 JITC 컴파일 기법이 있다.

Javascript는 기본적으로 인터프리터 언어이다.

Compiler와 Interpreter의 차이

컴파일러와 인터프리터는 소스 코드를 기계어로 번역하는 동일한 기능을 하지만 실행하는 방법이 다르다는 차이점이 있다.

인터프리터의 경우 한줄씩 코드가 번역되면 컴퓨터로 전달되어 바로 실행이 되지만 컴파일러는 먼저 디스크에 번역이 완료된 코드를 저장한다. 저장된 코드는 언제든 실행이 가능하다.

이런 차이점으로 인터프리터는 프로그램을 실행할 때 필요하므로 프로그램을 실행시키기 위해서 인터프리터가 반드시 설치되어 있어야 한다. 다른 운영체제에서도 실행할 수 있다는 점이 있다.
반면 컴파일러는 프로그램이 한번 컴파일이 되었다면, 컴파일 된 프로그램만 있으면 실행이 가능하므로 컴파일러나 원본 소스코드는 필요가 없다. 하지만 다른 운영체제에서 컴파일 된 프로그램은 재 컴파일 해야한다.

Compiler, Interpreter의 장/단점

컴파일러는 개발 편의성은 떨어지지만, 실행 속도는 빠르다. 컴파일러는 한꺼번에 컴파일을 하기 때문에 컴파일 시간은 오래 걸리지만 실행 단계에서 이미 기계어로 변환된 목적 파일을 실행만 하면 되므로 속도가 월등히 빠르다.

단점은 전체 코드를 컴파일 후에 에러를 알려주므로 수정이 용이하지 않다는 것이다. 수정 사항이 발생하면 다시 컴파일을 해야 되는데, 컴파일이 몇 시간씩 걸리는 큰 프로그램에서는 문제가 된다.

컴파일 오류발생 -> 코드 수정 -> 컴파일 -> 실행 후 확인

인터프리터는 개발 편의성이 높지만, 실행 속도는 느리다. 인터프리터는 바이너리 파일만 실행시키면 되는 컴파일러와 달리, 변환과 실행을 동시에 진행해야 하므로 프로그램 자체 속도는 느리다. 소스 코드 한 줄을 변환해서 바로 실행하기 때문에 실행 시작 시간은 빠르지만 전체 실행 속도는 컴파일러가 훨씬 빠르다.

장점은 소스 코드를 한줄씩 실행하므로 에러를 바로 알려줘서 실시간 코드 수정이 가능하다.

인터프리터 오류발생 -> 코드 수정 -> 실행 후 확인

profile
공부하며 성장하는 사람이 되고 싶은 개발자.

0개의 댓글