1. ๋ชจ๋ ๋ฒ๋ค๋ฌ(Module bundler)
1-1. ๋ชจ๋(Module)
๋ชจ๋์ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ ๊ดํ ์ฝ๋๋ค์ด ํ๋ฐ ๋ชจ์ฌ์๋ ํ์ผ๋ก์ ๋ค์๊ณผ ๊ฐ์ ์ฉ๋๋ก ์ฌ์ฉ๋๋ค.
- ์ ์ง๋ณด์์ฑ
- ๊ธฐ๋ฅ๋ค์ด ๋ชจ๋ํ๊ฐ ์ ๋์ด ์๋ค๋ฉด, ์์กด์ฑ์ ๊ทธ๋งํผ ์ค์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ๊ธฐ๋ฅ์ ๊ฐ์ ํ๋ค๊ฑฐ๋ ์์ ํ ๋ ํธํ๊ฒ ํ ์ ์๋ค.
- ๋ค์์คํ์ด์คํ
- ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์ญ๋ณ์๋ ์ ์ญ๊ณต๊ฐ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ค ๋ณด๋ฉด ๋ค์์ด ๊ฒน์น๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค. ์ด ๋ ๋ชจ๋ํ๋ฅผ ํ๋ฉด, ๊ฐ ๋ชจ๋๋ง์ ๋ค์์คํ์ด์ค๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ค๋ณต๋๋ ๋ณ์๋ฅผ ์ค์ผ ์ ์๋ค.
- ์ฌ์ฌ์ฉ์ฑ
- ๋๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๋ณตํ์ฌ ์ฌ์ฉํ์ง ์๊ณ ๋ชจ๋๋ก ๋ถ๋ฆฌ์์ผ์ ์ฌ์ฌ์ฉํ ์ ์๋ค.
1-2. ๋ชจ๋ ๋ฒ๋ค๋ฌ(Module bundler)
ํ๋์ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋ชจ๋๋จ์๋ก ํ์ผ์ ์ฎ์ด์ ๊ฐ๋ฐํ๋ ๋ฐฉ์์ด๋ค.
์ฆ, ๋ชจ๋์ ์๋ก ์์กด์ฑ์ ๋๊ณ ์๋๋ฐ ์ด๋ฐ ์ ์์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๋ค.
- ์๋ง์ ๋ชจ๋๋ค์ ์์๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ๊ฐ? (์์กด์ฑ ์ฒ๋ฆฌ)
- ๋ชจ๋์ด ๋ง์์ง์๋ก HTTP ์์ฒญ์ด ๋ง์์งํ ๋ฐ, ์ด๋ก ์ธํ ์ค๋ฒํค๋๋ ์ด๋ป๊ฒ ํด๊ฒฐํ ๊ฒ์ธ๊ฐ?
- ES6+ ์คํ์ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ๊ฐ?
์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฒ์ด ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ก, ๊ฐ๊ฐ์ ๋ชจ๋ ์์กด์ฑ์ ํด๊ฒฐํ์ฌ ํ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ๋ก ๋ง๋๋ ๋๊ตฌ์ด๋ค.
์ด๋ฏธ์ง ์์ถ, ์ต์ํ(Minification) ๋ฑ์ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ๋ค๋ ์ ๊ณตํ๋ฉฐ ์ ๋ช ํ ๋ฒ๋ค๋ฌ๋ก๋ Webpack, Parcel, Rollup ๋ฑ์ด ์๋ค.
2. ํธ๋์คํ์ผ๋ฌ(Transpiler)
ํธ๋์คํ์ผ๋ง(Transpiling)์ด๋ ํน์ ์ธ์ด๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ๋น์ทํ ๋ค๋ฅธ ์ธ์ด๋ก ๋ณํ์ํค๋ ํ์๋ฅผ ๋งํ๋ฉฐ, ์ด๊ฒ์ ์ํํ๋ ๊ฒ์ด ํธ๋์คํ์ผ๋ฌ์ด๋ค.
ํธ๋์คํ์ผ๋ฌ๊ฐ ํ์ํ ์ด์ ๋, ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ES6+์ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ES5๋ก ๋ณํ์ํค๋ ๊ณผ์ ์ด ํ์ํ๋ฐ, ํธ๋์คํ์ผ๋ฌ๋ ์ด ์์ ์ ์ํํด์ค๋ค.
ES6+์ ๊ธฐ๋ฅ ๋ฟ๋ง ์๋๋ผ ๋ฆฌ์กํธ๋ฅผ JSX์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ณํ์ํจ๋ค๊ฑฐ๋, ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ณํ์ํค๋ ๋ฑ์ ์ญํ ๋ ํธ๋์คํ์ผ๋ฌ์ ๊ธฐ๋ฅ ์ค์ ํ๋์ด๋ค.
ES6+๋ JSX๋ฅผ ๋ณํ์ํค๋ ํธ๋์คํ์ผ๋ฌ๋ก๋ ๋ฐ๋ฒจ(Babel)์ด ์์ผ๋ฉฐ, ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณํ์ํค๋ ๋๊ตฌ๋ก๋ ํ์ ์คํฌ๋ฆฝํธ ํธ๋์คํ์ผ๋ฌ(tsc ๋ช ๋ น์ด ์ด์ฉ)๊ฐ ์๋ค.
๐ ๋ณดํต ํ๋ก ํธ์๋ ํ๋ ์์ํฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋ฐํ ๋ ๋ชจ๋ ๋ฒ๋ค๋ฌ์ ํธ๋์คํ์ผ๋ฌ๋ฅผ ์ถ๊ฐํด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
์ฐธ๊ณ
https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/frontend/bundler-transpiler.md
'elice > study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] CSS์ JS ์ ๋๋ฉ์ด์ ์ ์ฐจ์ด์ (0) | 2022.02.04 |
---|---|
[CS] CI์ CD (0) | 2022.02.01 |
[CS] BOM๊ณผ DOM (0) | 2022.01.29 |
[CS] ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ฝ๋๋ฅผ ์คํํ๋ ๊ณผ์ (0) | 2022.01.29 |
[CS] ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ์๋ฆฌ (0) | 2022.01.27 |