ํ๋ก ํธ์๋ ์ฑ๋ฅ ๋ฒ ์ด์ค์บ ํ 1 - ์์ฒญ ํฌ๊ธฐ ์ค์ด๊ธฐ

ํ๋ก ํธ์๋ ์ฑ๋ฅ ๋ฒ ์ด์ค์บ ํ
๋ ์ฐ์ํํ
ํฌ์ฝ์ค ๋ ๋ฒจ4 ์น ์ฑ๋ฅ ๋ฏธ์
์ ๋ฐํ์ผ๋ก ๋ง์ฃผํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ณผ์ ์ ๋ค๋ฃฌ๋ค. ๊ทธ ์ค ์ฒซ ๋ฒ์งธ๋ ์์ฒญ ํฌ๊ธฐ ์ค์ด๊ธฐ
์ด๋ค.
์นํฉ์ผ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ 4 - dev, prod ํ๊ฒฝ ๋ถ๋ฆฌํ๊ธฐ

์ง๊ธ๊น์ง ํ๋์ ํ์ผ(webpack.config.js)์์ ํ๊ฒฝ(dev, prod)์ ๋ํ ์นํฉ์ ์ค์ ํ์๋ค. ํ๊ฒฝ์ ๋ฐ๋ฅธ ๋ถ๋ฆฌ๊ฐ ํ์ํ๋ฉด ์ผํญ์ฐ์ฌ์๋ฅผ ์ฌ์ฉํ๋ค. ์์ง์ ํ์ผ์ด ํฌ์ง ์์ ์ผํญ์ฐ์ฐ์๋ ์ถฉ๋ถํ๋ค. ํ์ง๋ง ์์ผ๋ก ์ค์ ์ด ๋ง์์ง๊ณ ๋ณต์กํด์ง๋ฉด ์ผํญ์ฐ์ฐ์๋ก ์ธํ ํ๊ฒฝ ๊ตฌ๋ถ์ ์๋นํ ํผ๋ก๊ฐ์ ์ค ์ ์๋ค. ๋๋ฌธ์ ํ๊ฒฝ์ ๋ฐ๋ผ ํ์ผ์ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ค. ์นํฉ์ผ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ ๋ค ๋ฒ์งธ ํํธ์์๋ ํ๊ฒฝ์ ๋ถ๋ฆฌํ์ฌ ์นํฉ์ ์ค์ ํ๋ ๊ณผ์ ์ ๋ค๋ฃฌ๋ค.
์ฐํ ์ฝ ๋ ๋ฒจ 3 5~6์ฃผ์ฐจ ํ๊ณ (3์ฐจ ์คํ๋ฆฐํธ)

๋ฐฐํฌ ์ค๋น ์๋ฃ
์นํฉ์ผ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ 3 - ํฐํธ, asset, ๋ผ์ฐํ

ํ๋ก์ ํธ๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํ๊ธฐ ์ ๊ธฐ๋ณธ์ ์ธ ์นํฉ ์ค์ ์ ๋ง๋ฌด๋ฆฌํ์๋ค. ํ์ง๋ง ์ฌ๋ฌ ๊ฐ์ง์ ์ด์ ๋ก ์ธํด ์นํฉ ์ค์ ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค. ํ๋ฃจ์คํฐ๋์ ๊ฒฝ์ฐ ํฐํธ๋ฅผ ์ถ๊ฐํ๊ณ , png, jpg์ ๊ฐ์ asset ๊ทธ๋ฆฌ๊ณ ๋ผ์ฐํ ์ผ๋ก ์ธํด ์นํฉ ์ค์ ์ ์ถ๊ฐํ๊ณ ์์ ์ ํด์ผ ํ๋ค. ์นํฉ์ผ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ ์ธ ๋ฒ์งธ ํํธ์์๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ ๋ค๋ฃฌ๋ค.
์นํฉ์ผ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ 2 - ์ ๋ ๊ฒฝ๋ก

์นํฉ์ผ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ์ ๋ ๋ฒ์งธ ํํธ์์๋ eslint
, tsconfig
, webpack
, ์ค์ ์ ํตํด ์ ๋ ๊ฒฝ๋ก
๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃฌ๋ค.
์นํฉ์ผ๋ก ๋ฆฌ์กํธ ์์ํ๊ธฐ 1

๋ฆฌ์กํธ๋ฅผ ์์ํ๊ธฐ ์ํด Create-React-App(CRA)
ํน์ Vite
์ ๋ง์ด ์ฌ์ฉํ๋ค. ์ด๋ฌํ ๋๊ตฌ๋ webpack
์ค์ ์์ด ํธํ๊ฒ ๋ฆฌ์กํธ๋ฅผ ์์ํ ์ ์๋๋ก ๋์์ค๋ค. ๋๋ฌธ์ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉํ๊ณ ์๋ ๋๊ตฌ์ด๋ค. ํ์ง๋ง ๋จ์ ๋ ๋ถ๋ช
์กด์ฌํ๋ค. webpack
์ค์ ์ ์ถ๊ฐํ๊ฑฐ๋ ์์ ํ๋ ๊ฒ์ด ๋งค์ฐ ๋ฒ๊ฑฐ๋กญ๋ค๋ ๊ฒ์ด๋ค. ์ด๋ฌํ ๋จ์ ๋๋ฌธ์ webpack
์ค์ ์ ๋์์ฃผ๋ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฑ์ฅํ์๋ค. craco
, react-app-alias
, react-app-rewired
๋ฑ์ด ๊ทธ๊ฒ์ด๋ค. ์ถฉ๋ถํ ์ข์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด์ง๋ง ์ฒ์๋ถํฐ webpack
์ ์ง์ ์ค์ ์ ํ๋ค๋ฉด ๋ฒ๊ฑฐ๋ก์ด ์์
์ ํ์ง ์์๋ ๋๋ค. ๋ํ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๋ก์ webpack
์ ํ์ตํด์ผ ํ๋ ๊ฐ๋
์ด๊ธฐ ๋๋ฌธ์ ์ง์ webpack
์ ์ค์ ํ์ฌ ๋ฆฌ์กํธ๋ฅผ ์์ํ๋ ๊ฒ์ ๋งค๋ ฅ์ ์ธ ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
์ฐํ ์ฝ ๋ ๋ฒจ 3 3~4์ฃผ์ฐจ ํ๊ณ (2์ฐจ ์คํ๋ฆฐํธ)

ํ๋ฃจ์คํฐ๋์ ์๋ก์ด ๋ฐฉํฅ
์ฐํ ์ฝ ๋ ๋ฒจ 3 1~2์ฃผ์ฐจ ํ๊ณ (1์ฐจ ์คํ๋ฆฐํธ)

ํ ๋ฐํ
์ฐํ ์ฝ ๋ ๋ฒจ 2 ์ธํฐ๋ทฐ ํ๊ณ

๋ฒ์จ ๋ ๋ฒจ 2๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ ๋ ๋ฒจ ์ธํฐ๋ทฐ๊ฐ ์ฐพ์์๋ค. ์ด๋ฒ์ ์ค์กฐ์๊ณ ํจ๊ปํ๋ ํฌ๋ฃจ๋ ์ธ์ธ, ๋ ธ์์ด์ฆ, ์๋, ์์ปค, ์ผํธ, ์๋ก์คํ์๋ค. ๋ ๋ฒจ 1์์ ๋ ๋ฒจ ์ธํฐ๋ทฐ๋ฅผ ๊ฒฝํํ๊ธฐ ๋๋ฌธ์ ๊ธด์ฅ๊ฐ์ ์ง๋๋ฒ๋ณด๋ค ํฌ์ง ์์๋ค. ํ์ง๋ง ๋ ๋ฒจ 1์์ ๋ฐ์ ํผ๋๋ฐฑ์ ์ผ๋ง๋ ์์ฉ์ ํ๋์ง, ์ง๋๋ฒ๋ณด๋ค ์ผ๋ง๋ ์ฑ์ฅ์ ํ๋์ง๋ฅผ ์ค์ค๋ก ํ๋จ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์์๋ ๋ถ๋ด๊ฐ์ ๊ฐ์ง ์๋ฐ์ ์์๋ค.
์ฐํ ์ฝ ๋ ๋ฒจ 2 ์ฅ๋ฐ๊ตฌ๋ ํ์ - step2
