- 트랜스파일러는 컴파일러의 한 종류이다.
컴파일러 (compiler) | 트랜스파일러 (transpiler) |
컴파일의 경우는, 한 언어로 작성된 소스 코드를 다른 언어로 변환하는 것을 의미 합니다. | 트랜스파일 의 경우는 한언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것을 말합니다. |
컴파일러 vs. 트랜스파일러
(1) CPU-level (actual logic gates on the CPU)
(2) machine code
(3) assembly code
(4) [C/C++, JVM/bytecode]
(5) [JavaScript, Python]
여기서, 컴파일러는 한단계 아래로 코드를 변환 한다
- 예) 5번을 4번의 코드로
- Java >> bytecode
- C >> assembly code
하지만 트랜스파일러는 코드를 다른 방식/언어를 같은 레벨에서 변환한다.
- 예) 5번의 코드를 다른 5번의 언어로
- ES6+ 문법을 ES5 문법으로 변환
- C++ >> C
그래서 바벨(Babel) 은 무엇일까?
- 자바스크립트의 ES6+ 문법을 하위호환 ES5 문법으로 변환 ? 이거 컴파일러이네?
- 하지만 자바스크립트 에서 다른 자바스크립트 문법으로 바뀌는거니까 트랜스파일러네?
결론은....
컴파일러이며, 자바스크립트 트랜스파일러 둘다이다.
그래서 뭐가 맟냐고 따지지는 말자!
'이력서 질문' 카테고리의 다른 글
Redux (0) | 2022.06.08 |
---|---|
상태관리 (0) | 2022.06.08 |
Context API란? (0) | 2022.06.07 |
ES6에 추가된 것은 무엇인가? (0) | 2022.06.07 |
ES6의 호환성 해결방법은? (0) | 2022.06.07 |