์ƒˆ์†Œ์‹

FrontEnd/JavaScript

ํด๋ฆฌํ•„(Polyfill)๊ณผ ๋ฐ”๋ฒจ(Babel) ๋น„๊ตํ•˜๋ฉฐ ๊ฐœ๋… ์ฒดํฌ!

  • -

๐Ÿฃ ๋ฐ”๋ฒจ(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

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.