๐ Babel์ด๋?
๋ฐ๋ฒจ(Babel)์ด๋, ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ด ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ธ ์ปดํ์ผ๋ฌ์ ๋๋ค. ๋ฐ๋ฒจ์ ์ต์ ๋ฒ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋์ง ์๋ ๊ตฌ ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ์์๋ ์ ์์ ์ผ๋ก ์คํ๋๋๋ก ๋ณํํด์ค๋๋ค. (์ต์ ๋ฒ์ ์ JavaScript ์ฝ๋๋ฅผ ES5๋ฒ์ ์ ์ฝ๋๋ก ๋ฐ๊ฟ์ฃผ๋ Node.jsํจํค์ง) ํ์ฌ๋ ๋ฐ๋ฒจ์ ์ด์ฉํ์ฌ JSX ๋ฌธ๋ฒ, ํ์ ์คํฌ๋ฆฝํธ(TypeScript)์ ๊ฐ์ ์ ์ ํ์ ์ ์ธ์ด์ ์ฝ๋ ์์ถ ๋ฑ์ ๋ฌธ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
babel์ ์ฐ๋ ์ด์
- ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง
- JavaScript (ES6) -> JavaScript(ES5)๋ก ๋ณํํด์ค๋๋ค. (๋ธ๋ผ์ฐ์ ํ์ ํธํ์ฑ์ ์๊ฐ)
- ๊ฐ ๋ธ๋ผ์ฐ์ ๋ง๋ค JavaScript ์์ง์ด ๋ค๋ฅด์ง๋ง, ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋์ํ๋๋ก ํธํ์ฑ์ ์ง์ผ์ค๋๋ค.
- ํด๋ฆฌํ(polyfill)
- ํด๋ฆฌํ์ ๊ฐ๋ฐ์๊ฐ ํน์ ๊ธฐ๋ฅ์ด ์ง์๋์ง ์๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํด ์ฌ์ฉํ ์ ์๋ ์ฝ๋ ์กฐ๊ฐ์ด๋ ํ๋ฌ๊ทธ์ธ์ ์๋ฏธํฉ๋๋ค.
- ํด๋ฆฌํ์ ํ๋ก๊ทธ๋จ์ด ์ฒ์์ ์์๋ ๋ ํ์ฌ ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ์ง ์๋ ํจ์๋ฅผ ๊ฒ์ฌํด์ ๊ฐ object์ prototype์ ๋ถ์ฌ์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
๐ Webpack์ด๋?
Webpack์ ๋ชจ๋ ๋ฒ๋ค๋ฌ์ ๋๋ค. ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ์์(HTML, CSS, JavaScript, Image ๋ฑ)์ ๊ฐ๊ฐ์ ๋ชจ๋๋ก ๋ณด๊ณ ์ด๋ฅผ ์กฐํฉํด์ ํ๋์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋๋ ๋๊ตฌ๋ฅผ ์๋ฏธํฉ๋๋ค.
Webpack์ ์ฐ๋ ์ด์
- ๋ชจ๋๊ฐ ์์กด์ฑ ๋ฌธ์ ํด๊ฒฐ
- ์นํฉ์ด ๋ชจ๋๊ฐ์ ์์กด์ฑ์ ๊ณ์ฐํ์ฌ ๋ฒ๋ค๋งํด์ค๋๋ค.
- ๋คํธ์ํฌ ๋ณ๋ชฉ์ ์ค์ฌ์ค
- <script> ํ๊ทธ๋ฅผ ์ฌ๋ฌ๊ฐ ์ฐ๋ฉด ๋คํธ์ํฌ ๋ณ๋ชฉํ์์ด ์๊ธธ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋์ jsํ์ผ๋ก ๋ก๋ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ค์ ๋ก ์ฝ๋๋ฅผ ํ๋์ jsํ์ผ์ ์์ฑํ๋ฉด ๊ฐ๋ ์ฑ์ด๋ ์ ์ญ๊ณต๊ฐ์ ์ค์ผ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ฏ๋ก ์นํฉ์ ์จ์ ์ฌ๋ฌ๊ฐ์ ํ์ผ์ ํ๋๋ก ๋ฌถ์ด์ฃผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
- ๋ชจ๋๋จ์์ ๊ฐ๋ฐ ๊ฐ๋ฅ
- ๊ฐ๋ ์ฑ, ์ ์ง๋ณด์ ํจ์จ์ ๋์ ๋๋ค. ์ค์ฝํ๋ฅผ ์ ๊ฒฝ์ฐ์ง ์๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ข ์ ๋ฌธ์ ๋ฅผ ๊ณ ๋ฏผํ ํ์๊ฐ ์์ต๋๋ค. (์นํฉ์ด ๊ณ์ฐ)
- ์ฝ๋ ์์ถ, ์ต์ ํ
- es6+ ์คํฌ๋ฆฝํธ ์ง์
- ๋ฐ๋ฒจ๋ก๋๋ก ๋ฐ๋ฒจ ์ฌ์ฉ
์ฐธ๊ณ
'Studying Web Development > Front-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Reflow์ Repaint๊ฐ ์คํ๋๋ ์์ (0) | 2022.07.30 |
---|---|
[React] ํด๋์คํ ์ปดํฌ๋ํธ์ ํจ์ํ ์ปดํฌ๋ํธ์ ์ฐจ์ด์ (0) | 2022.07.21 |
์น ํ์ค, ์น ์ ๊ทผ์ฑ์ด๋? (์น ํ์ค, ์น ์ ๊ทผ์ฑ์ด ์ค์ํ ์ด์ ) (0) | 2022.06.29 |
React์ ์๋ช ์ฃผ๊ธฐ(๋ผ์ดํ ์ฌ์ดํด) (0) | 2022.06.20 |
๋๊ธ