๐ฃ ๋ฐ๋ฒจ(babel)? ํด๋ฆฌํ(polyfill)?
๋ฐ๋ฒจ์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํ๋ค๋ณด๋ฉด ํด๋ฆฌํ์ด๋ ๊ฐ๋
์ ๋ํด์ ์์ฐ์ค๋ ์ ํ๊ฒ ๋๋๋ฐ, ์ผํ ๋ค์ด์๋ ๋์ด ๋น์ทํด๋ณด์ด์ง๋ง ์ฐจ์ด์ ์ด ๋ช
ํํ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ํ๋ฒ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. ๊ผฌ์ฐ๊ผฌ์ฐ!
https://img.freepik.com/free-photo/top-view-arrangement-with-white-cotton_23-2148446610.jpg?w=996&t=st=1718612496~exp=1718613096~hmac=0909707d593deb68c0c9dbb5c3d70fec8d3d1487d0efc5610e86689caf518f0b
์ฐธ๊ณ ๋ก bebel ์ ๋ํ ๊ฐ๋
์ ์๋ ๊ฒ์๋ฌผ์ ์ ๋ฆฌํด๋์ผ๋ ์ฐธ๊ณ
๋ฐ๋ฒจ(Babel)์ ๋ํด์ ์์๋ณด์!
๐ฃ ์ด๋ฒ ์๊ฐ์๋ !์ง๋ ์๊ฐ์๋ ์นํฉ(Webpack)์ ๋ํด์ ์ดํด๋ดค๋ค. ์ง๋ ๊ฒ์๋ฌผ ์์๋๋ก ์ดํด๋ณด๋ฉด, '๋ฒ๋ค๋ง · ๋ชจ๋ ๋ฒ๋ค๋ฌ > ์นํฉ(Webpack) > ๋ฐ๋ฒจ(Babel)'์ ์์๋๋ก ์ ๋ฆฌ๋ฅผ ํ๊ณ ์๋ค. ๋ค๋์์๋ฉด
haileyham.tistory.com
๐ฃ ํด๋ฆฌํ(polyfill)
1. ๊ฐ๋
Polyfill์ ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ ํธํ์ฑ์ ํ๋ณดํ๋ฉฐ, ์๋ก์ด ๊ธฐ๋ฅ์ด๋ ์์ฑ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ตฌ ๋ฒ์ ๋ธ๋ผ์ฐ์ ์์๋ ์ ์์ ์ผ๋ก ์๋ํ๋๋ก ๋์์ค. ๊ฐ๋ฐ์๊ฐ ํน์ ๊ธฐ๋ฅ์ด ์ง์๋์ง ์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํด ์ฌ์ฉํ ์ ์๋ ์ฝ๋ ์กฐ๊ฐ์ด๋ ํ๋ฌ๊ทธ์ธ์ ์๋ฏธ ํจ. polyfill์ ์ถฉ์ ์์ด๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ๋ค์ ๋ํ ํธํ์ฑ ์์
์ ์ฑ์ ๋ฃ๋๋ค๊ณ ํด์ polyfill ์ด๋ผ๊ณ ํจ.
2. ์? ๋ฐ๋ฒจ์ด ๊ตฌ๋ฒ์ ์์๋ ๋์ํ๋๋ก ๋ณํํด์ค๋ค๋ฉฐ? polyfill์?
babel ์ ์ฌ์ฉํ๋ค๊ณ ์ต์ ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฑด ์๋. babel ์ ๋ฌธ๋ฒ์ ๋ณํํ์ฌ javascript ๋ก ๋ณํํ๋ transpiler ์ญํ ๋ง ํ ๋ฟ์. ์์์ ์ค๋ช
ํ๋๋ก polyfill ์ ํ๋ก๊ทธ๋จ์ด ์ฒ์์ ์์๋ ๋ ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ๋ค์ ์ถ๊ฐํ๋ ๊ฒ. ์ฆ, babel ์ ์ปดํ์ผ์์ ์คํ๋๊ณ babel-polyfill ์ ๋ฐํ์์ ์คํ๋๋ ๊ฒ.
- ๋ฐ๋ฒจ์ ESNext ์์ ์ง์ํ๋ ๋ฌธ๋ฒ์ ES5 ๋ฌธ๋ฒ์ผ๋ก ๋ฒ์ญํด์ฃผ์ง๋ง, ES5์ ์กด์ฌํ์ง ์๋ ES6์ Map, Promise, Set, Object.assigin() ์ด๋ฐ์ ๋ค์ ์กด์ฌํ์ง ์์ผ๋ ๋ฒ์ญ์ ํด์ค์๊ฐ ์์.
- ๊ทธ๋์ ์ ๊ฑธ ๋งค๊พธ๊ธฐ ์ํด polyfill ์ ์ฌ์ฉ. (Map, Promise, Set ๋ฑ์ ์ฌ์ฉ๊ฐ๋ฅํ ๊ฐ์ฒด๋ก ๋ง๋ค์ด์ค)
- babel ์ babel-polyfill ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ๋์ง๋ง, ํ์ฌ deprecated ๋์๊ธฐ ๋๋ฌธ์ core-js์ regenerator-runtime์ ์ง์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ์.
๊ถ๊ธ์ฆ์ ํด๊ฒฐ๋๋ฐ!
์ถ์ฒ
https://despiteallthat.tistory.com/187
https://velog.io/@katanazero86/polyfill%ED%8F%B4%EB%A6%AC%ED%95%84-%EC%9D%B4%EB%9E%80
https://velog.io/@suyeon9456/Babel