ํ์
์์ ๋ฆฌ์กํธ๋ก ๊ฐ๋ฐํ๋ ์ด๋ณด ๊ฐ๋ฐ์์
๋๋ค.
์ ๋ํ ์์ฑ์๋์ฒ๋ผ ํ๋ค๊ฒ ๊ณต๋ถํ๊ณ ์ฌ์ ํ ๋ง์ด ๋ถ์กฑํฉ๋๋ค.
๊ทธ๋๋ ์ด๋์ ๋ ์ ์์ด๋ ์ฃผ์ํด์ผํ ์ ์ ๋ง์๋๋ฆด ์ ์๊ฒ ๋ค์
1. ์ฑ ์ผ๋ก ๊ณต๋ถํ์ง๋ง ๊ฒ => ๊ธ๋ฐฉ ํ ํ ๋ฐ๋๋๋ค. ํ์ดํ์ ์๋ฌด๋ฆฌ ์ํด์ผ ์๋์๊ฐ๊ณ ์คํ๋ ค ๋ฉํ๋ง ์ํฉ๋๋ค.
2. ๋ฆฌ์กํธ ๊ด๋ จ ๊ตฌ๊ธ๋ง์์๋ ๋ฌด์กฐ๊ฑด ์ง๋ 1๋ ์ด๋ด๋ก ์ค์ ํด์ ๊ฒ์ํ ๊ฒ (ํ์์ ๋๋ค.)
3. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ์๋ถ๋ ๋ค๋ฉด ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊นํ ์ด์ ํํ ํ์ธ
4. ์ ์ฉ์ด ์์๋๊ฑฐ๋ ์ด๋ ค์์ด ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ณ ์งํ์ง๋ง๊ณ ๋ค๋ฅธ ๋์์ผ๋ก ๋์ฒด
(๋ฆฌ์กํธ์ ์ง์์ ๊ต์ฅํ ๊ฑฐ๋ํฉ๋๋ค. ์ธ์ ๋ ๋์์ด ์๊ธฐ ๋๋ฌธ์ ์ ์ ๊ฑด๊ฐ์ ์ฑ๊น์๋ค.)
๋ฆฌ์กํธ๋ ํ๋ ์์ํฌ๊ฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ!! ๋๋ฌธ์ ์ฑ์ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ํ์ํ ๊ฒ๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์
๋์ค์๋ ๊ฐ๋น์๋ ์ ๋๋ก ๋ฌ๋์ปค๋ธ๊ฐ ์์นํฉ๋๋ค.
1. ์ฒ์์๋ CRA(create react app)์ ์ด์ฉํด์ ์ ๋ง ๋๋ฌด๋๋ ๊ฐ๋จํ ์ฑ์ ๋ง๋ ๋ค. ๋ฏธ์น๋ฏ์ด ๊ฐ๋จํ ์ฑ
(์ด๋ณด์ผ ๊ฒฝ์ฐ ์ฒ์๋ถํฐ ํฌ๋์ฑ์ ๋น์ถ์ฒํฉ๋๋ค. => ์ฐจ๋ผ๋ฆฌ ๊ฐ๋จํ ํ ๊ธ ๋ฒํผ ๋๋ ๊ฐ๋จํ ์นด์ดํฐ ์ฑ์ด ์ข์ต๋๋ค)
2. ๊ฐ๋จํ ๋ง๋ ์ฑ์ redux๋ฅผ ์ ์ฉํ๋ค
3. ๊ทธ ์ฑ์ react-redux๋ฅผ ์ ์ฉํ๋ค
4. ์ดํดํ ๋๊น์ง ๋ช๋ฒ์ด๊ณ ๋ค์ ๊ธฐ๋ณธ์ฑ => redux => react-redux ์ฌ์ดํด์ ๋ฐ๋ณตํ๋ค.
5. CRA๋ฅผ ๋ฒ๋ฆฐ๋ค. npm run eject ๋ช ๋ น์ด ์ ๋ ฅ์ CRA ๊ตฌ์กฐ๊ฐ ๋์ค๋ ๋ฐ ์ด๋ง์ด๋งํฉ๋๋ค.
react boilerplate ๋ผ๊ณ ๊ฒ์ํด์ ์ ๋ง์ ๋ง๋ ๊ฑธ ์ฐพ์๋ณด๊ธฐ๋ ํ๊ณ ์ง์ ๋ฐ๋ผ์น๊ณ ์๋ง๊ฐ์ง ์ค๋ฅ๋ฅผ ๊ฒฝํํ๊ณ
์นํฉ์ ์ข์ ํ๋ฉฐ ๋๋ง์ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ๋ฅผ ๋ง๋ ๋ค => ๋ง์ง๋ง์ผ๋ก ๋ง๋ ์ฑ์ ์ฌ๋ฆฐ๋ค
6. ๋น๋๊ธฐ๋ฅผ ์ ์ฉํ๋ค (๊ฐ๋จํ api ํธ์ถ ๋๋ ๋ก์ปฌ ๋ฐ์ดํฐ) json-server ์ axios๊ฐ ์ ์ฉํ๊ธฐ ์ฝ์ต๋๋ค.
7. ๋น๋๊ธฐ ์ ์ฉ์ thunk ์ ์ฉ! ๋ง์ฝ ์ค๋ ฅ์ด ์ข๋ค๋ฉด saga!
8. ๋ฆฌํฉํ ๋ง์ผ๋ก ํ์ ์ ์ ์ฉํ๋ค. (์ด๋ณด) prop-types => flow => typescript (๊ณ ์)
9. ์๋ฒ์ ์ฌ๋ ค๋ณธ๋ค. express ์๋๋ฉด ์๋ฒ๋ฆฌ์ค๋ ๊ด์ฐฎ์ต๋๋ค.
10. jest ์ ์ฉํด์ ์ปดํฌ๋ํธ ์ ๋ ํ ์คํธ
์ด์ ๋๋ง ๋ช๋ฒ๋ฐ๋ณตํด๋ ์ด์ด ๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ ์ธ์๋ ์ปดํฌ๋ํธ ๋ฐฉ์์ CSS, JWT ํ ๊ทผ ์ ์ฉ, SEO, SSR ๋ฑ ํด๋ณผ ๊ฑด ๋ง์ผ๋
์ฒ์๋ถํฐ ๊ฑฐ๋ํ ๊ฑธ ๋ง๋ค๊ธฐ๋ณด๋ค๋ ์์ ๊ฑธ๋ก ๊ณ์ ๊ท๋ชจ๋ฅผ ํค์๋ณด์๋ ๊ฑธ ์ถ์ฒํฉ๋๋ค.
์ ๋ํ ์ ๋ ๊ฒ ์ก์ ๊ณํ์ผ๋ก ์์ง ๊ณต๋ถํ๊ณ ์์ต๋๋คใ ใ
๊ณต๋ถ ์๋ฃ๋ ์์ ๋ถ์ด ์ถ์ฒํด์ฃผ์ ์ ๋ฐ๋ฏธ ๊ฐ์ข์ ๋ฒจ๋กํผํธ๋ ์๋ฃ ๊ทธ๋ฆฌ๊ณ egghead ์ถ์ฒํฉ๋๋ค
๊ณต๋ถ์ ๋ต์ ์์ผ๋ ์ด๋์ ๋ ์ฐธ๊ณ ํ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.