Javascript는 인터프리터 언어라고 했는데... V8엔진은 왜 얘를 컴파일한다는 걸까?

Lisa Lee·2024년 5월 26일

초보의 자문자답

목록 보기
2/3
post-thumbnail

Javascript는 크롬의 V8엔진을 통해 컴파일 한다고 한다.

어? 어딘가의 초보자 개념에서 Javascript는 인터프리터 언어라고 들었던 것 같은데 왜 컴파일이 필요하지?

개념적으로는 인터프리터 언어지만, 현실에서는 컴파일해서 쓴다.

Javascript는 웹문서를 동적으로 나타내기 위함이라 인터프리터 언어로 태어났지만, 점점 웹페이지가 무거워지면서 성능 및 속도도 중요해져서 컴파일해서 사용하게 되었다고 한다.

Javascript에 사용하는 컴파일 방식은 JIT(Just-in-time) 컴파일 방식으로 요청받았을때 빠르게 컴파일해서 실행시킨다.

대략적인 컴파일 방식은 이런게 있다고 한다.

컴파일 종류

  1. AOT(Ahead-of-time)방식: 실행 전에 다 번역해둠 (예: C, C++, Rust)
  2. JIT(Just-in-time)방식: 필요한 곳만 번역함 (바로 이거!)
  3. 인터프리터: 한줄씩 바로 해석함
  4. 하이브리드: AOT랑 JIT 섞음
  5. 트랜트파일러: 한 언어를 다른 언어로 번역 (예: Typescript)

Javascript를 컴파일해서 사용할 때의 장점은 크게 3가지가 있다(고 한다)

  1. 성능 향상 (더 빠르게!)
  2. 코드 안정성 향상 (오류 사전 검사!)
  3. 코드 보안성 향상 (난독화해서 잘 모르게 하기!)

※ 개발 지식 초보자가 궁금한 것을 여기저기 찾아보고 AI챗봇이랑 이야기하면서 이해한대로 정리한 내용이라 정확하지 않을 수 있습니다.

※ 저 같은 초보자가 이 글을 보셨다면 '이런거구나!'하지 마시고 꼭!! 검증해보시길 바랍니다. 더 이해도가 높아지면 이 글을 업데이트 하겠습니다.

profile
개발 공부하고 있는 10+N 년차 기획자입니다

0개의 댓글