์นํฉ, ๋ฐ๋ฒจ, ๋ฆฐํธ ๊ฐ์ ํ๋ก ํธ์๋ ๊ธฐ์ ์ ์ดํดํ๊ณ ์ค๋ฌด์ ์ ์ฉํด ๋ณด์ธ์!
โ์นํฉ์ ํ์์ ํ ๋ช
๋ง ๋ค๋ฃฐ ์ค ์๋ฉด ๋ผ!?โ
๋ง์ฝ ๊ทธ ํ ๋ช
์ด ํ์ ๋ ๋๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์ด์ฉ๋ฉด ์ฌ๋ฌ๋ถ์ด ๊ทธ ํ ๋ช
์ด ๋์ด์ผ ํ ์ง๋ ๋ชจ๋ฆ
๋๋ค.
๊ฐ๋ฐํ์ ์ฌ๋ฌ๋ถ ํผ์๋ผ๋ฉด ์นํฉ ๊ตฌ์ฑํ๋ ๊ฒ์ ํผํ ์ ์๊ณ ์.
๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑ๋งํผ์ ๋ด ์์ผ๋ก ์ง์ ๋ค๋ฃฐ ์ค ์๋ค๋ฉด ์ด๋จ๊น์?
์ต์ํ ๋ค๋ฅธ ์ฌ๋์ด ๋ง๋ค์ด ๋์ ๊ตฌ์ฑ(์ด๋ฅผํ
๋ฉด create-react-app์ด๋ vue-cli๋ก ๋ง๋ ์ฝ๋)์ ์ฝ๊ณ ์ดํดํ ์ ์๋ ์ ๋๊ฐ ๋๋ค๋ฉด ํจ์ฌ ์์ ๊ฐ ์๊ฒ ์ผํ ์ ์์ ๊ฑฐ์์.
์นํฉ์ ๋น๋กฏํ ๋ฐ๋ฒจ, ๋ฆฐํธ, ํ๋ฆฌํฐ์ด ๋ฑ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์๋ํํ๊ณ ์์ฑ์ฑ์ ๋์ฌ ์ค ์ ์๋ ๋๊ตฌ๋ค์ ์ตํ ์ ์๋ ๊ฐ์๋ฅผ ๋ง๋ค์์ต๋๋ค.
์ด๊ฒ์ ํตํด ๋์ฑ ์์ฐ์ฑ ์๊ฒ ์ผํ ์ ์๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
๐ ์ด๋ค ๊ฑธ ๋ฐฐ์ฐ๊ฒ ๋๋์?
# Node.jsNode.js๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ฑํ๋๋ฐ ๊ธฐ๋ณธ ๋ฐํ์ด ๋๋ ๊ธฐ์ ์
๋๋ค. ๋๋ถ๋ถ์ ๋๊ตฌ๊ฐ Node.js ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ด์ฃ . ๋ฟ๋ง ์๋๋ผ ์ผ๋ จ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋๋ฐ๋ ํฐ ์ญํ ์ ๋ด๋นํ๊ณ ์์ต๋๋ค. ํ๋ก ํธ์๋ ๊ฐ๋ฐ ๊ณผ์ ์์ Node.js์ ์ญํ ์ ์ดํดํ ์ ์์ต๋๋ค.
# Webpack๋ชจ๋ ๊ธฐ๋ฐ์ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก ์นํฉ์
๋๋ค. ๊ฐ์ ์ญํ ์ ํ๋ ๋์ฒด์ ๋ค์ด ๋์์ง๋ง ์ฌ์ ํ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ ์นํฉ์
๋๋ค. ์นํฉ์ ๋์ ์๋ฆฌ๋ฅผ ๋ค์ฌ๋ค๋ณด๊ณ ์ดํดํ ๋ค ์ง์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ฑํด๋ณด๊ณ ๋ก๋๋ฅผ ์ง์ ๊ตฌํ๋ ํด๋ณด๋ ์ค์ต์ ํตํด ์ฌ์ฉ๋ฒ์ ์์ ์ตํ์ ์์ต๋๋ค.
# Babel + SASSECMAScirpt+, Typescript ๊ฐ์ ๊ณ ์์ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋, React.js, Vue.js ๊ฐ์ ํ๋ ์์์ ์ฌ์ฉํด์ ๊ฐ๋ฐํ ๋ ๋ฐ๋์ ํ์ํ ๊ฒ์ด ๋ฐ๋ฒจ์
๋๋ค. ๋ฌผ๋ก ๋ฐ๋ฒจ ์์ด๋ ๊ฐ๋ฐํ ์ ์์ง๋ง, ๋๊ฐ ๊ทธ๋ ๊ฒ ๊ฐ๋ฐํ๋์? ๊ฐ๋ฐ ์์ฐ์ฑ์ ์ํด์๋ ๋ฐ๋์ ๋ฐ๋ฒจ์ ๋์์ ๋ฐ์์ผ ํฉ๋๋ค. ๋ฐ๋ฒจ์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์ง์ ์ฌ์ฉํด ๋ณด๋ฉด์ ์ด๋ป๊ฒ ํ๋ก์ ํธ์ ์ต์ ํ๋ ํ๊ฒฝ์ ๋ง๋ค ์ ์๋์ง ์์๋ณด์ธ์.
# Prettier + ESLint์ฝ๋ฉ ์ปจ๋ฒค์
์ผ๋ก ์ธํ ๋
ผ์์ ๋ฌด์ฒ ํผ๊ณคํ ์ผ์ด์ฃ ? ๋๊ตฌ์ ๋์์ ๋ฐ๋๋ค๋ฉด ์ข ๋ ์์ํ๊ฒ ์ฝ๋ฉ ์คํ์ผ์ ๋ง์ถ ์ ์์ ๊ฑฐ์์. ๊ฒ๋ค๊ฐ ์๋ํ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐ ์ ์ฐจ์ ์ถ๊ฐํด ๋์ผ๋ฉด ์ผ๊ด์ ์ธ ์ฝ๋๋ฅผ ์ง์์ ์ผ๋ก ์ ์งํ ์ ์์ต๋๋ค.
๐งฐ ๋ฏธ๋ฆฌ ์ค์นํด ์ฃผ์ธ์
VSCode๋ฅผ ์ฌ์ฉํ์ง๋ง ํ์์ ์ฌ์ฉํ๋ ์๋ํฐ๋ IDE๊ฐ ์๋ค๋ฉด ๊ทธ๊ฒ์ ์ฌ์ฉํ์๋ ๊ด์ฐฎ์ต๋๋ค.
์ค์ต ์งํ์ ์ํด Git์ ์ค์นํด ์ฃผ์ธ์. ๊น ํ
์ ์ฌ์ฉํ๋ ์์
๋ ์๊ธฐ ๋๋ฌธ์ v2.3.0 ๋ฒ์ ์ด์์ ์ฌ์ฉํ์๊ธฐ ๋ฐ๋๋๋ค.
๐๐ปโโ๏ธ ๊ฐ์ ๊ด๋ จ ์์ ์ง๋ฌธ
Q. ์ด ๊ฐ์๋ฅผ ์์ํ๊ฒ ๋ ๊ณ๊ธฐ๋ฅผ ์๊ฐํด์ฃผ์ธ์.
A. ํ๋ก ํธ์๋ ๊ธฐ์ ์ด ๋ฌด์ฒ ๋น ๋ฅด๋ค๊ณ ๋ ํ์ง๋ง ๊ทธ๋๋ ํ๋ฒ์ ์ ๋ฆฌํด ๋ณด๊ณ ์ถ์์ต๋๋ค. ์นํฉ๋ถํฐ ์์ํด์ ์ผํ๋ฉด์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ ๋๊ตฌ ๋ฉ๋ด์ผ์ ํ๋์ฉ ์ฝ์ด๋ณด๋ฉด์ ๋ธ๋ก๊ทธ์ ์ ๋ฆฌํ๋ ๋ด์ฉ์ด "ํ๋ก ํธ์๋ ๊ฐ๋ฐํ๊ฒฝ์ ์ดํด(์ด 5ํธ)"์ด๊ณ ์. ๊ทธ๋ฐ๋ค ์๋
2019๋
T์์นด๋ฐ๋ฏธ์์ ์ด ์ฃผ์ ๋ก ์ธ๋ฏธ๋๋ฅผ ์ด์๋๋ฐ ์์ธ๋ก ์ ์ฒ๋ผ ํ์๋ก ํ์๋ ๋ถ๋ค์ด ๋ง๋๋ผ๊ตฌ์. ๋ฐ์์ด ๊ด์ฐฎ์์ ๋ด์ฉ์ ๋ ๋ณด๊ฐํด์ ์ธํ๋ฐ์ ์จ๋ผ์ธ ๊ฐ์๋ฅผ ๊ฐ์คํ์์ต๋๋ค.
Q. ์ด ๊ฐ์๋ง์ ํน๋ณํ ์ฅ์ ์ด ์์๊น์?
A. ๊ฐ๋ฐํ๊ฒฝ์ด๋ผ๋ ์ฃผ์ ๊ฐ ์ค์ตํ๊ธฐ ์ข ์ด๋ ค์ธ์๋ ์์๊ฒ ๊ฐ์์. ๋ฉ๋ด์ผ๋ง ์ฝ์ด๋ณด๊ณ ์ง๋๊ฐ๊ธฐ์๋ ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ด์ฃ . ๊ทธ๋์ ๊ฐ ์ด๋ก ์์
๋ง๋ค ์กฐ๊ทธ๋ง ์ค์ต์ ์ค๋นํ์ต๋๋ค(์ค์ต ์ ์ฅ์: lecture-frontend-dev-env).์ด์ ๊ฐ์ "์ค์ต UI ๊ฐ๋ฐ๋ก ๋ฐฐ์๋ณด๋ ์์ javascript ์ VueJS ๊ฐ๋ฐ"์์ ๋ค๋ฃฌ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๊ธฐ์ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ฑํ๋๋ก ๋จ๊ณ๋ณ๋ก ์ค์ต ๊ณผ์ ๋ฅผ ์ค๋นํ์ด์. ํ๋ํ๋ ํ์ด๋ณด๋ค๋ณด๋ฉด ์ด๋์ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ฑํ๋๊ฒ์ด ์์ ์ตํ์ง์ ์๋๋ก ๋ง์ด์ฃ .
Q. ์ด ๊ฐ์๋ฅผ ํตํด ์ด๋ค ์ผ์ ํ ์ ์๋์?
A. ํ์ฌ ์ฌ๋ฌ๋ถ์ด ๊ฐ๋ฐํ๊ณ ์๋ ํ๋ก์ ํธ์ ๊ฐ๋ฐํ๊ฒฝ์ ์ดํดํ ์ ์์๊ฑฐ์์. ํ์ํ๋ค๋ฉด ์ปค์คํฐ๋ง์ด์งํด์ ์์ฐ์ฑ์ ๋์ผ ์๋ ์๊ณ ์. ์ด์ ๋ง ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๋จ๊ณ์ธ๊ฐ์? ๊ทธ๋ผ ์
๋ง์ ๋ง๊ฒ ์ง์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊พธ๋ฉฐ๋ณผ ์๋ ์์ต๋๋ค.
๋ค๋ฅธ ๊ฐ์ ๋ณด๊ธฐ