본문 바로가기
Blockchain

Transpile VS Compile 차이점?

by 개발자 염상진 2022. 10. 9.

Babel, Typescript는 Javascript를 컴파일하는 도구입니다. 웹 브라우저가 이해할 수 있는 이전 버전의 Javascript로 트랜스컴파일러로 Babel을 사용합니다. 또한 Typescript는 정적 타입 기능을 추가해 Javascript로 트랜스파일 한다고 합니다. 사실 대부분의 개발자들이 Transpile과 Compile을 혼용해서 사용하고 있는데, 키워드가 2개인걸 보면 분명한 차이점이 있다는 겁니다.

 

 

 

Compile이란?

 

컴파일이란 한개의 언어로 작성된 Code를 다른 언어로 변환하는 작업을 의미합니다. 대표적으로 Java로 작성된 파일을 컴파일하면 JVM이 이해할 수 있도록 bytecode로 구성된 class 파일이 생성됩니다.

C 언어로 작성된 코드를 컴파일 하면 assembly 언어로 된 파일이 생성됩니다. 이 처럼 완전히 다른 언어로 변환하는 작업을 컴파일 한다고 합니다.

 

Transpile이란?

 

트랜스파일이란 한 개의 언어로 작성된 Code를 유사한 수준의 추상화를 가진 다른 언어로 변환하는 작업을 의미합니다. 그럼 추상화란 무엇일까요? 컴퓨터 사이언스에서 굉장히 중요한 개념이지만 막상 말로 표현하려니 입이 떨어지지 않습니다. 

 

 

 

 

Computer Science에서 추상화(Abstraction)은 복잡한 기능을 간추려 일반화 시키는 작업을 의미합니다. 예를 들어 console.log() 를 많이 사용하지만 내부 적으로 폰 노이만 아키텍처의 Data Bus, Address Bus를 이해하고 I/O를 정확하게 구현하는 것을 생각하지 않습니다. 그냥 print기능이 있고, 뭘 출력하지만 생각하면 됩니다.

트랜스파일이 되는 경우는 아래와 같습니다.

  • Babel(ES6->ES5)로 버전을 낮추는 작업
  • C++ > C
  • Typescript > Javascript

 

정리

 

컴파일 트랜스파일 차이는 뚜렷하게 구분되지 않습니다. 다만 추상화 수준에 따라 구분할 수 있는 개념이고, 적절한 상황에 맞는 개념을 사용하는 것이 맞다는 생각이 듭니다. 최근에는 컴파일과 트랜스파일을 섞어 트랜스컴파일러라는 개념이 등장하기도 했습니다.


🚀️ 도움이 되셨다면 구독좋아요 부탁드립니다 👍️

 

 

Markdown code block language 선택하는 방법💡️

Markdown형식으로 글을 작성할 때 코드 블럭을 삽입할 수 있습니다. 여기서 언어를 선택해서 Markdown에 삽입이 가능합니다. Markdown code block language 선택하는 방법 예를 들어 javascript로 아래 코드를 작

about-tech.tistory.com

 

 

Django 프로젝트 시작하는 방법 💡️

Django는 python을 사용하는 서버 제작 프레임워크 입니다. 프로젝트를 시작해 간단하게 서버 프로그램을 돌릴 수 있습니다. Django 프로젝트 시작하는 방법 💡️ Django 프로젝트를 시작하기 앞서, 의

about-tech.tistory.com

 

 

[회고록] 코드스테이츠 블록체인 파이널 프로젝트 완수 후기

코드스테이츠 블록체인 파이널 프로젝트 완료 한달의 기간이 주어졌던 파이널 프로젝트가 드디어 완료되었습니다. 프로젝트 주제는 4주동안 퍼블릭 블록체인을 활용한 DID 서비스를 제작했습니

about-tech.tistory.com

 

댓글