22. 10. 14 자바스크립트) 트랜스파일과 폴리필

divedeepp·2022년 10월 14일
0

JavaScript

목록 보기
4/11

자바스크립트는 끊임없이 진화하는 언어로, 명세서에 계속해서 기능들이 추가된다.

등록된 지 얼마 안 된 기능을 사용해 코드를 작성하다 보면 특정 엔진에서 해당 기능들을 지원하지 않을 수도 있다.

이 때 사용할 수 있는 것이 바벨이다.

바벨(Babel)

바벨의 주요 역할은 다음과 같다.

트랜스파일(transpile)

명세서엔 새로운 문법이나 기존에 없던 내장 함수에 대한 정의가 추가되곤 한다.

새로운 문법을 사용해 코드를 작성하면 트랜스파일러는 이를 구 표준을 준수하는 코드로 변경해준다.

바벨은 이렇게 코드를 재작성해주는 트랜스파일러 프로그램이다.

변경된 코드는 웹사이트 형태로 사용자에게 전달된다.

참고로, 웹팩같은 모던 프로젝트 빌드 시스템은 코드가 수정될 때마다 자동으로 트랜스파일러를 동작시켜준다.

폴리필(polyfill)

반면, 새롭게 표준에 추가된 함수는 명세서 내의 정의를 읽고, 이에 맞게 직접 함수를 구현해야 사용할 수 있다.

자바스크립트는 매우 동적인 언어라서 원하면 어떤 함수라도 스크립트에 추가할 수 있다.

물론 기존 함수를 수정하는 것도 가능하다.

개발자는 스크립트에 새로운 함수를 추가하거나 수정해서 스크립트가 최신 표준을 준수할 수 있게 작업할 수 있다.

이렇게 변경된 표준을 준수할 수 있게 기존 함수의 동작 방식을 수정하거나, 새롭게 구현한 함수의 스크립트를 폴리필이라 부른다.

쉽게 말해, 웹 개발에서 기능을 지원하지 않는 웹 브라우저 상의 기능을 구현하는 코드가 폴리필이다.

말 그대로 구현이 누락된 새로운 기능을 메꿔주는(fill in) 역할을 한다.

예시를 들자면, map 함수를 지원하지 않는 브라우저에서 다른 방법으로 map 함수의 기능을 구현하는 것을 말한다.


참고 문헌

https://ko.javascript.info/code-quality

profile
더깊이

0개의 댓글