자바스크립트_기초_3.6

HwiJeongLee·2021년 9월 6일
0

자바스크립트

목록 보기
23/28

폴리필

자바스크립트는 끊임없이 진화하는 언어입니다.
새로운 제안들이 정기적으로 등록, 분석되고 가치가 있는 제안들은 명세서에 등록됩니다.

자바스크립트 엔진을 만드는 각 조직은 일정한 우선순위를 매겨 명세서 내 어떤 기능을 먼저 구현할지 결정합니다.
명세서에 등록된 기능보다 초안에 있는 제안을 먼저 구현하기도 합니다.
(구현 난이도가 높아서도 있지만 구미가 당기지 않아서 이기도 합니다.)

바벨

명세서에 등록된 지 얼마 안 된 기능을 사용해 코드를 작성하면 특정 엔진에서 우리가 작성한 코드를 지원하지 않는다는 것을 알게 됩니다.
명세서 내 모든 기능을 모든 엔진이 구현하고 있지 않기 때문입니다.

이때 바벨을 사용합니다.

바벨의 주요 역할

1. 트랜스파일러

바벨은 코드를 재작성해주는 트랜스파일러 프로그램입니다.
바벨은 개발자의 컴퓨터에서 실행됩니다. 여기서 기존 코드가 구 표준을 준수하는 코드로 변경됩니다. 변경된 코드는 사용자에게 전달됩니다.

웹팩(webpack)과 같은 모던 프로젝트 빌드 시스템은 코드가 수정될 때마다 자동으로 트랜스파일러를 동작시킵니다.

이런 과정이 없다면 코드를 통합하는 데 큰 어려움이 있을 수 있습니다.

2. 폴리필

명세서에 새로운 문법이나 기존에 없는 내장 함수가 추가되기도 합니다. 새로운 문법을 사용해 코드를 작성하면 트랜스파일러는 이를 구 표준을 준수하는 코드로 변경합니다.
새롭게 표준에 추가되는 함수의 경우 명세서 내 정의를 읽고 이에 맞게 직접 함수를 구현해야 사용할 수 있습니다.

자바스크립트는 동적인 언어이므로 원하는 어떤 함수라도 스크립트에 추가할 수 있습니다. 또 기존 함수를 수정하는 것도 가능합니다. 개발자는 스크립트에 새로운 함수를 추가하거나 수정하여 스크립트가 최신 표준을 준수 할 수 있게 작업 가능합니다.

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

폴리필은 구현이 누락된 새로운 기능을 매꿔주는 역할을 합니다.

폴리필의 대표적인 것
core js : 다양한 폴리필을 제공합니다. 특정 기능의 폴리필만 사용하는 것도 가능합니다.
polyfill.io : 기능이나 사용자의 브라우저에 따라 폴리필 스크립트를 제공해주는 서비스입니다.

profile
초보 개발자의 개발 공간

0개의 댓글