자바스크립트 언어의 특징

dongwon·2021년 12월 8일
0

자바스크립트 언어의 특징

인터프리터 언어의 관점에서 정리했습니다.

인터프리터 언어

인터프리터 언어란 개발자가 작성한 코드들을 기계어로 변환하는 과정 없이 런타임에 한 줄 한 줄 해석하며 바로 명령어를 실행하는 언어를 말합니다.

특징

  1. 실행 파일을 생성하지 않는다.
  2. 인터프리터 단계와 실행 단계가 분리되어 있지 않다.
  3. 코드가 실행될 때마다 인터프리터 과정이 반복 실행된다.
  4. 코드 실행 속도가 비교적 느리다.

컴파일 언어와의 비교

컴파일 언어는 개발자가 작성한 코드들을 모두 기계어로 변환 후 실행하는 언어를 말합니다.

컴파일이란 인간이 작성한 프로그래밍 언어를 컴퓨터가 이해할 수 있는 언어로 변환시켜주는 작업입니다. 예를 들어, C언어에서 javascriptconsole.log()와 같은 비슷한 기능을 하는 printf() 함수를 실행시키면, 컴퓨터가 이해할 수 있는 01010010110과 같은 binary code로 변환하는 걸 컴파일이라고 합니다.

특징

  1. 실행 파일을 생성한다. ( .exe 파일과 같은 )
  2. 컴파일 단계와 실행 단계가 분리되어 있다.
  3. 실행에 앞서 컴파일이 단 한 번 수행된다.
  4. 코드 실행 속도가 비교적 빠르다.

코드를 이용한 비교

function sum() {
  let answer = 0;

  for (let i = 1; i <= 10; i++) {
    answer += i;
  }

  return answer;
}

sum();
sum();
sum();

위의 코드가 인터프린터 언어로 작동했을 때 다음과 같은 코드를 실행시킨다면, 한 줄 한 줄 실행하면서, sum 함수 내부에서 1부터 10까지 i 변수가 돌고 55임을 계산합니다.

sum(); // 1부터 10까지 실행 후 55 계산
sum(); // 1부터 10까지 실행 후 55 계산
sum(); // 1부터 10까지 실행 후 55 계산

컴파일 언어로 작동했을 때, 컴파일을 마치고 생성된 실행파일을 실행한다면 sum() 함수의 내부의 값이 계산이 된 55임을 알고 있어 바로 55임 알고있을겁니다.

sum(); // 55
sum(); // 55
sum(); // 55

현대 자바스크립트에선?

현대의 javascript는 Chrome의 V8 엔진 내부에서 컴파일 과정을 거치면서 인터프리터의 단점인 성능 개선을 비약적으로 향상시킬 수 있었습니다.
이를 통해 인터프리터 언어의 장점인 동적 기능 지원과 실행 속도가 느린 단점을 극복해 현재는 컴파일러와 인터프리터의 기술적 구분이 모호해져 가는 추세입니다.
따라서 정리하자면, 인터프리터 언어임과 동시에 내부 엔진에서 컴파일 과정을 거치는 언어라고 할 수 있습니다.

profile
데이원컴퍼니 프론트엔드 개발자입니다.

0개의 댓글