Compile vs Transpile

메론맛캔디·2021년 11월 15일
2

기술면접

목록 보기
28/30

트랜스파일과 컴파일 두 용어를 헷갈렸던 적이 있어서 다시 정리해보려고 한다.


Copmpile

한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것이 컴파일이다.

  • C -> Assembly
  • Java -> bytecode

Transpile

한 언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것이 트랜스파일이다.

  • ES6 -> ES5 (Babel로 가능)
  • C++ -> C
  • coffeescript -> Javascript

Typescript는 트랜스파일링

거의 같은 수준의 추상화가 되는 것이기 때문에 엄밀히 말하면 트랜스파일링이 된다.


Babel 트랜스파일링

한 언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하기 때문.


sass 트랜스파일링(컴파일)

sass는 웹에서 동작할 수 없어서 전처리기로 작성한 후 css로 컴파일하는 과정을 거쳐서 사용한다. 자바스크립트 환경에서는 node-sass를 활용하여 컴파일을 한다.
scss -> css 일괄로 트랜스파일링을 해준다.
scss 파일이 변경된 후 저장될 때마다 자동적으로 컴파일 시킬 수 있다.


정리

컴파일이 조금 더 큰 범주고, 그 안에 트랜스파일 개념이 있다고 생각하면 된다.
Transpile : 한 언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것
Compile : 다른 언어로 변환하는 것

0개의 댓글