๐โโ๏ธ ์ข ์ข React, vue์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํด ์น์ ๋ง๋ค ๋, webpack์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ง์ด ๋ณด์ค ์ ์์ ๊ฒ์ ๋๋ค.
web-pack์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ณผ๋๋ง๋ค, '์, web-pack์ ์์ฃผ ๋ฑ์ฅํ๋ ํ๋ ์์ํฌ๋ฅผ ๊ตฌ์ฑํ๋ ์ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฒ ์ง' ๋ผ๊ณ ์๊ฐํ๋ฉฐ ๋์ด๊ฐ์ ์๋ ์์ต๋๋ค.
ํ์ง๋ง ๊ทธ๋ฅ ๋์ด๊ฐ๋ ๊ฒ๋ณด๋ค ๊ฐ๋จํ ๋ฌด์์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ์ง ์๊ณ ๊ฐ๋ ๊ฒ ๋ํ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๐ webpack ์ด๋ ๋ฌด์จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ๊น์?
webpack์ ๋ํ ์ํค๋ฐฑ๊ณผ์ ์ค๋ช ์ ๋ณด๋ฉด,
์นํฉ(Webpack ๋๋ webpack)์ ์คํ ์์ค ์๋ฐ์คํฌ๋ฆฝํธ(JS) ๋ชจ๋ ๋ฒ๋ค๋ฌ์ด๋ค.
์นํฉ์ ์์กด์ฑ์ด ์๋ ๋ชจ๋์ ์ทจํ์ฌ ํด๋น ๋ชจ๋์ ๋ํํ๋ ์ ์ ์์ฐ๋ค์ ์์ฑํ๋ค.
์ด๋ผ๊ณ ๋ณผ ์ ์๋๋ฐ,
์ฆ, webpack์ ๋ชจ๋ ๋ฒ๋ค๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
๋ชจ๋ ๋ฒ๋ค๋ฌ๋ ์ฌ๋ฌ๊ฐ์ ๋๋์ด์ ธ ์๋ ํ์ผ๋ค์ ํ๋์ ํ์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ ๋งํฉ๋๋ค.
๐ ๊ทธ๋ ๋ค๋ฉด ์? web-pack๊ณผ ๊ฐ์ ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ ๊น์?
์น ํด๋ผ์ด์ธํธ ๋ถ๋ถ์ ๊ฐ๋ฐ ํ ๋, javascript๋ฅผ ์ด์ฉํด ์ธํฐ๋ํฐ๋ธํ ํจ๊ณผ๋ฅผ ๋ฃ์ด ์ค ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ๊ฐ์ง ํ๋ ์์ํฌ๋ก ๋ ํธ๋ฆฌํ๊ฒ ์น์ ๋ง๋ค ์ ์์ต๋๋ค.
์๋ ์๋ ์น์ ๊ตฌํํ๋ค๊ณ ํด๋, jsํ์ผ๋ค์ ์๊ฐ ๋ง์ง ์์, ๋ฐ๋ก ๋ชจ๋ํ๋ฅผ ํ ํ์๊ฐ ์์ด์ง๋ง, ์ ์ ์๊ฐ์ด ์ง๋ jsํ์ผ๋ค์ ์๊ฐ ๋ง์์ ธ ์ค๋ณต๋๋ ํ์ผ ์ฆ๊ฐ, ์ฝ๋๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํ ๋คํธ์ํน ๋น์ฉ ์ฆ๊ฐ ๋ฑ ๋ง์ ๋ฌธ์ ๋ค์ด ๋ฑ์ฅํ๊ธฐ ์์ํฉ๋๋ค.
์ฌ๊ธฐ์ ๋ง๋ค์ด์ง jsํ์ผ๋ค ์ค ์ค๋ณต๋๋ ๊ธฐ๋ฅ๋ค์ ํ๋ ํ์ผ๋ค๋ผ๋ฆฌ ํ๋์ ๋ชจ๋๋ก ๋ง๋ค์ด ์์ค์ฝ๋์ ๊ท๋ชจ๋ฅผ ์ค์ด๊ณ , ์ฌ์ฌ์ฉ์ฑ์ ์ข๊ฒ ํ๊ธฐ์ํด ๋ชจ๋ํ๋ฅผ ํฉ๋๋ค.
์ฆ, ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ ์ฌ๋ฌ๊ฐ์ง ํ์ผ๋ค์ ๋ฌถ์ด์ฃผ๋ ๊ฒ(bundler), ๋ชจ๋ํ๋ฅผ ํตํด ๋คํธ์ํน ๋น์ฉ ๊ฐ์๋ฅผ ํด์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
๐ ๊ทธ๋ ๋ค๋ฉด, ์ ๋ง์ ํ๋ ์์ํฌ๋ค์ ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ก์ Webpack์ ์ฌ์ฉํ๊ณ ์์๊น์?
๋ชจ๋๋ฒ๋ค๋ฌ๋ก webpack๋ฟ ์๋๋ผ Browsify, Grunt, Gulp๋ฑ ๋ง์ ๋ชจ๋ ๋ฒ๋ค๋ฌ๊ฐ ์กด์ฌํ์ง๋ง,
webpack์ ์ํ๋ฅ๋ น(Performance)๊ฐ ๋ฐ์ด๋ ๋ง์ ํ๋ ์์ํฌ๋ค์ด ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๐ Web-pack์ ์ฃผ์ ๊ฐ๋
1. Entry
- ์์กด์ฑ ๊ทธ๋ํ์ ์์์ ์ ์นํฉ์์๋ ์ํธ๋ฆฌ(Entry)๋ผ๊ณ ํ๋ค.
- ์นํฉ์ ์ํธ๋ฆฌ๋ฅผ ํตํด์ ํ์ํ ๋ชจ๋์ ๋ก๋ฉํ๊ณ ํ๋์ ํ์ผ๋ก ๋ฌถ๋๋ค.
2. Output
- ์ํธ๋ฆฌ์ ์ค์ ํ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์์์ผ๋ก ํ๋๋ก ๋ฌถ๋๋ค.
- ๊ทธํ ๋ฒ๋ค๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ฒ๋ฆฌํ ์์น๋ฅผ output์ ๊ธฐ๋กํ๋ค.
3. Loader
- ์นํฉ์ ์ค์ง JavaScript์ Json๋ง ์ดํดํ ์ ์๋ค.
- ๋ก๋๋ ๋ค๋ฅธ Type์ ํ์ผ(img, font, stylesheet ๋ฑ)์ ์นํฉ์ด ์ดํดํ๊ณ ์ฒ๋ฆฌ ๊ฐ๋ฅํ ๋ชจ๋๋ก ๋ณํ ์ํค๋ ์์ ์ ํ๋ค.
4. Plugin
- ๋ก๋๊ฐ ํ์ผ๋จ์๋ก ์ฒ๋ฆฌํ๋ ๋ฐ๋ฉด ํ๋ฌ๊ทธ์ธ์ ๋ฒ๋ค๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ฒ๋ฆฌํ๋ค.
- ๋ก๋๊ฐ ๋ณํํ๋ ๋์ ํ๋ฌ๊ทธ์ธ์ (bundle optimization, asset management and injection of environment)๊ณผ ๊ฐ์ ์ผ์ ์งํํ ์ ์๋ค.
๐ ์ ์ด์ webpack์ ๊ธฐ๋ฅ์ ์์๊ธฐ ๋๋ฌธ์, webpack์ด๋ผ๋ ๋จ์ด๋ฅผ ๋ณผ ๋๋ง๋ค, '์ ์ด๊ฒ์ ๋ชจ๋๋ฒ๋ค๋ฌ ๊ธฐ๋ฅ์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ตฌ๋'๋ผ๋ ์ ์ ์์ ๊ฒ์ ๋๋ค.
๊ถ๊ธํ์ ๊ฒ์ด ์์ผ์๋ฉด ์ธ์ ๋ ์ง ๋๊ธ ๋ฌ์์ฃผ์ธ์!
'Front-end' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[VueJS] NuxtJS๋ฅผ ํตํด VueJS ํ๋ก์ ํธ ๋ง๋ค๊ธฐ (feat. Typecript) (0) | 2020.06.21 |
---|