๐๊ธฐ์ ์คํ ํ์ - boostcampwm-2022/web33-Mildo GitHub Wiki
- ์ผ์ ๋ฐ ์ฅ์ : 11.14.(์) 14:00 ~ 18:00, ๊ฒ๋ํ์ด
- ์ฐธ์ฌ์ : ์ ์
- ๋ชฉ์ : ๊ธฐ๋ฅ ๊ตฌํ ์ ๊ธฐ์ ์คํ ๊ฒฐ์
- ํ์ ์ค์๋ : ์
2.1. ํ๋ก ํธ์๋ ์คํ
2.1.1 React.js vs ๋ฐ๋๋ผjs โ React.js
- ๋ฐ๋๋ผjs ์ฌ์ฉ ์ ์ํ ๊ด๋ฆฌ์์ ์ด๋ ค์์ ๊ฒช์
- ์ํ ๋ณ๊ฒฝ ์ ๋ ๋๋ง์ด ์ ์ฒด์ ์ผ๋ก ์ผ์ด๋ ์ฑ๋ฅ์ ์ต์ ํ ํ์ง ๋ชปํจ
- ๋ฐ๋๋ผjs ์ฌ์ฉ ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ๋ถํธํ์
- Class constructer์์ async, await๋ฅผ ์ฌ์ฉํ์ง ๋ชปํจ
- ๋ฐ๋๋ผjs ์ฌ์ฉ ์ ์ปดํฌ๋ํธ ์ฌ์ฌ์ฉ์ด ์ด๋ ค์ ์
- ์ฝ๋ ์ค๋ณต์ด ๋ง์ ์์
์๊ฐ์ด ๊ธธ์์
- React.js๋ ์ด๋ฏธ ์ฌ์ฉํด๋ดค๊ธฐ ๋๋ฌธ์ ๊น์ด ํ์ตํ ์ ์์
- 4์ฃผ์ฐจ์์ ๋ฐฐ์ฐ์ง ๋ชปํ ๋ถ๋ถ์ ๋ ํ์ตํ ์ ์์
- ๋งค์ฐ ์งง์ ๊ฐ๋ฐ ๊ธฐ๊ฐ(4์ฃผ)
- ๋ ๋๋ง ์ฑ๋ฅ ๋ฑ์ ์์์ ์ฑ๊ฒจ์ฃผ๋ฉด ์ข์
2.1.2. ์ ์ญ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ โ jotai
- ์์ค
- Jotai(๊ธฐ์ ๋ธ๋ก๊ทธ): ๋งํฌ
- ๋ฆฌ๋ทฐ์ด(์ด๋ฏธ๋ฆผ)๋ถ๊ป์ ์ถ์ฒํด์ฃผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Recoil์ ๋นํด์ ๋จ์ํ๊ณ ์ฌ์
- Redux๋ฅผ ์จ๋ณธ ๊ฒฝํ์ด ์์๋๋ฐ, ์๋นํ ๋ณต์กํ์
- ๋จ์ : ๋ฐ๋ก ๋ฐฐ์ธ ์๊ฐ์ด ํ์ํจ, ์ฐธ๊ณ ์๋ฃ๊ฐ ๋ง์ด ๋ถ์กฑํจ
- Recoil
- ์๋ก์ด ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐฐ์ธ ์ ์์
- ๋ฉ๋ชจ๋ฆฌ ๋์ ์ด์๊ฐ ์์
- ์์ง๋ 0๋ฒ๋ ๋ฒ์ ์ผ๋ก ์์์น ๋ชปํ ๋ฌธ์ ์ ์ด ์์ ์ ์์
- Context API
- ๋ฆฌ์กํธ ๋ด์ฅ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Context API ๋จ์ : ๋๋ฆด๋ง, ํ์ง๋ง ๊ณผ์ฐ ์ด๋ฐ ๋จ์ ์ด ์ฐ๋ฆฌ ํ๋ก์ ํธ์์ ํฌ๊ฒ ์์ฉํ ๊น?
- ์ฐ๋ฆฌ ํ๋ก์ ํธ์๋ ๋ชจ๋ฌ์ด ๋ง์
- ๊ด๋ฆฌํด์ผ ๋ ์ํ๊ฐ ๋ง์
- ์ค์ฐ
- ์์ค ์๊ฒฌ์ ๊น์ด ๋๊ฐ
- React Query
- ๋น๋๊ธฐ ๋ก์ง๊ณผ ์ํ ๊ด๋ฆฌ ๋ก์ง์ ๋ถ๋ฆฌํ ์ ์์
- ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด๋ ํฌ๊ฒ ์ด๋ ค์์ ์์ ๋ฏ
- ๋์ค์ ํ์ํ ๋ ์ฌ์ฉํ๋ฉด ๋๊ณ , ์ฐ์ ์ recoil์ด๋ jotai ์ ํธ
- ํ๋น
- Redux
- ์ํ, ์ก์
, ๋ฆฌ๋์, ์คํ ์ด ๋ฑ์ ๊ฐ๋
์ ํตํด ์ํ ๊ด๋ฆฌ๊ฐ ์ด๋ค์ง๋ ๊ณผ์ ์ ๋ฐฐ์ธ ์ ์์
- ๋ถ๋ณ์ฑ ์ ์ง ๋๋ฌธ์ ๊ณ ์ฐจํจ์๋ฅผ ๋ง์ด ์ฌ์ฉํด ๋ณผ ์ ์์ด์ ์ข์
- ๋ฆฌ๋์๋ฅผ ์ง๊ธฐ ์ํ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ
- ๋ค๋ง, ์ฌ์ฉ๋ฒ๋๋ก ์ฐ๋ฉด ์ ๊ตด๋ฌ๊ฐ
- Recoil
- ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์์์ ๋ฉ๋ชจ๋ฆฌ ๋์ ์ด์ ๋ฑ์ด ํฌ๊ฒ ๋ฌธ์ ๋์ง ์์ ๊ฒ ๊ฐ์
- ์ฌ์ฉ๋ฒ์ด ๊ฐ๋จํด์ ์งง์ ๊ธฐ๊ฐ์ ์ ํฉํ ๊ฒ์ผ๋ก ๋ณด์
- ํ์
- Redux
- Redux๋ ์ฌ์ฉ์ ์ํด ๋ง๋ค์ด์ผ ํ๋ ํจ์๊ฐ ๋งค์ฐ ๋ง์
- ๋ณด์ผ๋ฌ ํ๋ ์ดํธ๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์์ฆ ์ถ์ธ๋ ๋ง์ง ์์
-
๋น๋๊ธฐ ์ฒ๋ฆฌ ์ Saga๋ Thunk๋ฅผ ์ฌ์ฉํด์ผ ํจ
- Mildo๋ API ์์ฒญ์ด ๋ง์๋ฐ ์ฌ์ฉ๋ฒ์ด ๋ณต์กํ๊ณ ์ฝ๋๋์ด ๋์ด๋จ
- ์ผ๋ฐ ํ๋ ์์ํฌ๋ผ ๋ฆฌ์กํธ์ ๊ถํฉ์ด ์ข์์ง ๋ชจ๋ฅด๊ฒ ์
- Context API
- ์ฌ์ฉ๋ฒ์ด Redux์ ๊ฑฐ์ ๋น์ทํ์ฌ ๋น๊ต ์ฐ์๊ฐ ์์
- recoil ๋๋น ์ฅ์ ์ ๋ชจ๋ฅด๊ฒ ์
- Recoil
- ๋น๋๊ธฐ ์ง์์ด ๋ ํธํ ๊ฒ์ผ๋ก ๋ณด์
- Jotai
- ํ๋ฒ๋ ์ ์จ๋ด์ ์ ๋ชจ๋ฅด๊ฒ ์
- ์ต์ข
๊ฒฐ์ (๋ธ๋ก๊ทธ)
- jotai โ ์ ์
- TS๋ก ๋ง๋ค์ด์ง
- 1๋ฒ๋ ๋ฒ์ ์ด ์ถ์๋จ
- jotai๋ ๋ค์ด๋ก๋ ์๊ฐ ์ ๊ณ ์ฐธ๊ณ ์๋ฃ๊ฐ ๋ง์ด ์์
- recoil๋ณด๋ค๋ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ
- ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ์๋์ ์ผ๋ก ๋ ์ฌ์ ๋ณด์
- recoil
- JS๋ก ๋ง๋ค์ด์ง
- ์์ง๋ 0๋ฒ๋ ๋ฒ์
- ์บ์ฑ์ด ๊ฐ๋ฅํจ
- ์๋ฒ ์์ฒญ ๋ก์ง๊ณผ ์ํ ๊ด๋ฆฌ ๋ก์ง์ด ๋ถ๋ฆฌ๋์ง ์์
- ๊ธฐํ
- jotai์ recoil์ ๋ฌธ๋ฒ์ด ๋น์ทํจ
- jotai์ zustand๋ ๋ก ์๋ฌด๊ฒ๋ ๊ฐ์ธ์ง ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ
- bundle ํฌ๊ธฐ : zustand < jotai < recoil
- jotai์์ ๋ฌธ์ ์๊ธฐ๋ฉด recoil๋ก ๋ฐ๋ก ๋์ด๊ฐ ์ ์์(์ฐจ์ ์ฑ
์ด ๋ง๋ จ๋์ด ์์)
- react-query (์ถํ ๋
ผ์)
- Mildo๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ๋ง์
- ์๋ฒ ์์ฒญ ๋ก์ง์ ๋ถ๋ฆฌํ ์ ์์
- ๊ทธ๋ฌ๋ ์ธ๊ธฐ๊ฐ ๋ง๋ค๊ณ ๋ฌด์กฐ๊ฑด ์ฌ์ฉํด๋ณด๋ ๊ฒ์ด ๋ง๋์ง?
2.1.3. ์คํ์ผ โ Styled-Component
- SASS/CSS
- CSS in JS (Styled-Component, Emotion)
- ์ต์ํจ
- SSR์๋ Emotion์ด ๋ ์ ํฉ
- CSS module (A.jsx, A.module.css)
- ํด๋์ค๋ช
์ด ๊ธฐ์ต์ด ์๋จ
- Tailwind CSS / Chakra UI
- ํ
์ด๋ธ ๊ฐ ๊ด๊ณ๊ฐ ๋์จํ ๊ฒ ๊ฐ์ NoSQL๋ ์ข์ ๊ฒ ๊ฐ์
- ๋์ ๋ฐ์ดํฐ API๋ ๋ฐ์ดํฐ์ ์์ด ๋ง์๋ฐ RDBMS์ ํ
์ด๋ธ๋ณด๋ค JSON ํ์์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ํธํ ์ ์์
- ๋ํ, ๋์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋จ์ read ์๋๊ฐ ๋น ๋ฅธ NoSQL์ด ๋์ ์ ์์
- SQL ์ฌ์ฉ ์ ๋์ ๋ฐ์ดํฐ๋ NoSQL, ์ฌ์ฉ์ ์ ๋ณด๋ ์ฅ์ ์ ๋ณด๋ SQL๋ก ๊ด๋ฆฌํ๋ฉด ์ข์ ๋ฏ
- MongoDB ์ฌ์ฉ ์ odm์ผ๋ก mongoose ์ฌ์ฉ
- MongoDB๊ฐ node.js์ ๊ถํฉ์ด ์ข์
- ๋จ์ํ I/O ์์
์ ๋นจ๋ฆฌ ์ฒ๋ฆฌํ ์ ์์
- Non-Blocking + Async + ์ฑ๊ธ ์ค๋ ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ ๊ฒฝ์ฐ ๋ ํจ์จ์
- I/O์ ์ฒ๋ฆฌ ์์๊ฐ ์ค์ํ๋ฉด RDBMS๋ฅผ ์ฌ์ฉ
- ์ ์ , ์ฅ์ โ ๋ถ๋งํฌ, ๋ด์ผ ๊ฐ ๊ฑฐ์ผ๋ ๊ด๊ณ ์ค์ ์ด ํ์ํ ๊น?
- ์ผ๋จ ๊ตฌํ ๊ณผ์ ์์ ํ์ธํ์
- ๊ด๊ณ ์ค์ ์ด ํ์ํ ์ mongoose์ populate ๋ฉ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
- ์ด ๊ฒฝ์ฐ์๋ ํ์ ๋คํ๋จผํธ๋ฅผ ๋ค ์ฐพ์์ผ ํด์ ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์
2.2.2. Nginx, ๋ก๋๋ฐธ๋ฐ์ฑ
- ๋ณด์์ฑ ์ธก๋ฉด์์ ์ข์
- ์จ์ ๋์ ๊ฑด ์์
2.2.3. ๋ฐฑ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ โ koa
- koa
- ๋ฏธ๋ค์จ์ด ๊ธฐ๋ฅ๋ง ์ ๊ณตํด์ ๊ฐ๋ฒผ์
- Mildo์ ๋ฐฑ์๋๋ api ๋ฐ์์์ serving๋ง ํจ
- ssr์ ์ํ๊ธฐ ๋๋ฌธ์ ํ
ํ๋ฆฟ ๊ธฐ๋ฅ ํ์ ์์
- req, res๋ฅผ ํฉ์ณ์ ctx๋ก ์ฌ์ฉํ์ฌ ๋ฌธ๋ฒ์ ์ผ๋ก ํธํจ
- async-await์ ๊ณต์์ ์ผ๋ก ์ง์ํจ
- Mildo๋ api ์์ฒญ์ด ๋ง์ ๊ฒ์ผ๋ก ๋ณด์
- ์ฝ๋ฐฑ ์ง์ฅ ํ์ถ ๊ฐ๋ฅ
- ๋ค๋ง, express ๋๋น ์ฐธ๊ณ ์๋ฃ๊ฐ ๋ง์ด ์์
- express
- ๋ฏธ๋ค์จ์ด, ๋ผ์ฐํ
๋ง ํ์ํ๋ฐ express๋ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ ๋ง์
- async-await ์๋ฌ ์ฒ๋ฆฌ์์ ์ด๋ ค์์ด ์์ ์ ์์
2.3.1. CSR vs SSR โ CSR
- Mildo์ ํน์ง
- ์น ์ ํ๋ฆฌ์ผ์ด์
๋๋์ผ๋ก, ๋ ์ด์์์ด ๊ณ ์ ๋์ด ์์
- ํ๋์ ํ์ด์ง๋ง ์กด์ฌํ๊ณ , ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๋ชจ๋ ๋ชจ๋ฌ๋ก ๊ตฌํ
- ๋งค๋ฒ html์ ๋ถ๋ฌ์ค๋ ๊ฒ๋ณด๋ค csr๋ก ํด๋น ๋ถ๋ถ๋ง ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ข์ง ์์๊น?
- ๋ณด์ ๊ด๋ จ
- ์์ธ์ ๋์ ๋ฐ์ดํฐ API๋ ์๋ ๊ณต๊ฐ๋์ด ์์
- ๋ก๊ทธ์ธ์ ๋ค์ด๋ฒ Oauth๋ก ๊ตฌํํ๋๊น ๋ณ๋์ ๋ณด์์ด ํ์ํ์ง ์์
- ์๋ฒ์์ API ์์ฒญ์ด ๋ง์ ๊ฒ์ผ๋ก ์์
- ์๋ฒ์์ crontab, node-cron ๋ฑ์ ์ฌ์ฉํด์ ์ง์์ ์ผ๋ก ์์ธ์ ๋์ ๋ฐ์ดํฐ API ์์ฒญ
- API ๋ถ๋ฌ์ค๋ ์๊ฐ์ โ๋ก๋ฉ ์คโ ํ๋ฉด ๋ณด์ฌ์ค์ ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ ํ ์ ์์
- CSR(SPA)
- ํ๋์ html ํ์ผ ์ฌ์ฉ
- html์ ํด๋ผ์ด์ธํธ์์ ์กฐ๋ฆฝ
- ์ด๊ธฐ ๋ ๋๋ง ์๋๊ฐ ๋๋ฆด ์ ์์
- ๋ถ๋ถ ๋ ๋๋ง์ ๋ ์ต์ ํ
- SSR
- CSR ๋๋น ์ด๊ธฐ ๋ ๋๋ง์ด ๋น ๋ฅด๊ณ ๋ณดํธ์ ์ผ๋ก ๋ผ์ดํธํ์ฐ์ค ์ค์ฝ์ด๊ฐ ๋์ ๊ฐ๋ฅ์ฑ
- ๊ฒ์ ์์ง ์ต์ ํ(SEO)์ ์ ๋ฆฌ
- CSR์ ๊ฒฝ์ฐ ๊ฒ์ ํฌ๋กค๋ฌ๊ฐ js๋ฅผ ๋์์ํค์ง ์์ ๋น ํ์ด์ง๋ก ์ธ์๋ ์ ์์
- ๋ ๋๋ง์ด ๋ ๋น ๋ฆ
- CSR ๋๋น ์๋ฒ์์ ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉ
- html์ ์๋ฒ์์ ๋ง๋ค์ด์ ๋ณด๋ด์ค
- ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ ๋ ๋๋ง
- Next.js ์ฌ์ฉํ๋ ค๋ฉด ๋ฌ๋์ปค๋ธ ๋ฐ์
- TypeScript(์์ค, ํ์ , ์ค์ฐ)
- ํ์
์ ์๊ฒฉํ๊ฒ ์ฒดํฌํด์ ํ์
์ ์ข์
- Mildo์์ ๋ถ๋ฌ์ค๋ API ๋ฐ์ดํฐ๋(๋ฐ๋, ์ธ๊ตฌ์, ์๋, ๊ฒฝ๋ ๋ฑ) ์ซ์ ๋ฐ์ดํฐ๊ฐ ๋ง์
- ์ฑ ์์ฒด๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฟ๋ ค์ฃผ๋ ๊ฒ์ด ์ฃผ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์ ํ์ํ ๊ฒ ๊ฐ์
- ๋จ์ ํ
์คํธ
- ์ข
๋ฅ
- ๊ตณ์ด ํ ํ์๊ฐ ์์๊น..? ํฉ์ค์ผ ๋ง์คํฐ๋๋ ๋จ์ ํ
์คํธ๋ ์ ์ ํ๋ค๋ ๋ฏ์ด ๋งํ์
จ์
- ํ์ํ ๊ฒฝ์ฐ์๋ง Jest + RTL
- ์ธ์ ํ
์คํธ
- UI ํ
์คํธ
- ์ธ์ ํ
์คํธ, UI ํ
์คํธ๋ ๋ง์ง๋ง ์ฃผ์ ๋ชฐ์์ ํ์.
- Github Actions
- ๋งค๋ฒ ๋ฐฐํฌํ ๋๋ง๋ค ์ฝ๋ ์์ ์ ์
๋ฐ์ดํธ ํ๋ ๊ฒ์ด ๋ถํธํ๊ณ ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์ด๋ฐ ๋ถ๋ถ์ ๋ํด ์๋ํํ์ฌ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์์
- Docker
- ์ปจํ
์ด๋๋ฅผ ์ด์ฉํด์ ๊ฐ๋ฐํ๊ฒฝ, ๋ฐฐํฌํ๊ฒฝ์ ํต์ผ์ฑ ์๊ฒ ๋ง๋ค์ด์ค
- k8s
- ์ปจํ
์ด๋๋ฅผ ์๋ํํ๋ ๋๊ตฌ
- Docker๋ ๋ถํ ํด์ ๋ฐฐํฌํ ๋ ์ฅ์ ์ด ์์ ๊ฒ ๊ฐ๋ค.
- ์์์ผ๊น์ง ๊ณต๋ถํ๊ณ ์์
2.3.6. ํด๋ผ์ด์ธํธ ์๋ฒ(WebServer) / API ์๋ฒ ๋๋๊ธฐ(WAS)
- ์๋ฒ ๋ถํ ๋ฐฉ์ง ๊ฐ๋ฅ
- ์ ์ ์ปจํ
์ธ ๋ WS๊ฐ ์ ๊ณตํ๊ณ ๋์ ์ปจํ
์ธ ๋ WAS๊ฐ ์ ๊ณต
- ๋ง์ฝ ์ ์ ์ปจํ
์ธ ๋ WAS๊ฐ ์ ๊ณตํ๋ค๋ฉด ๋์ ์ปจํ
์ธ ์ฒ๋ฆฌ๊ฐ ์ง์ฐ๋จ์ ๋ฐ๋ผ ์ํ์๋๊ฐ ๋๋ ค์ง
- WAS์ ํ๊ฒฝ์ค์ ํ์ผ์ ์ธ๋ถ์ ๋
ธ์ถ์ํค์ง ์์ ์ ์์
- ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐํ๋ ํฌํธ๊ฐ ์ง์ WAS์ ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด ์ค์ํ ์ค์ ํ์ผ๋ค์ด ๋
ธ์ถ๋ ์ ์์
- WS์ WAS๋ฅผ ๋ถ๋ฆฌํ๋ฉด ์ ๊ทผํ๋ ํฌํธ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ฐฉํ๋ฒฝ์ ์ณ์ ๋ณด์ ๊ฐํ ๊ฐ๋ฅ
- ์ฌ๋ฌ ๋์ WAS ์ฐ๊ฒฐ ๊ฐ๋ฅ
- ๋ก๋๋ฐธ๋ฐ์ฑ ๊ฐ๋ฅ โ ํฌ๋กค๋ง์ ๋ค๋ฅธ ์๋ฒ๋ก ํ๋ค๋ฉด ๋ก๋๋ฐธ๋ฐ์ฑ์ด ํ์ํ ์๋ ์์
- ์ฅ์ ๊ทน๋ณต ๊ฐ๋ฅ
2.3.7. ํจํค์ง ๋งค๋์ (์์กด์ฑ ๊ด๋ฆฌ ํด) โ Yarn classic
- ๋ชจ๋
ธ๋ ํฌ๋ฅผ ๊ตฌํํด์ผ ํ ๊น? โ ์ฐธ๊ณ
- ๋ง์ฝ์ ๋ชจ๋
ธ๋ ํฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ Lerna + Yarn์ด ์ด๋จ๊น..
- npm
- ์ฐ๋ฆฌ ํ๋ก์ ํธ ํฌ๊ธฐ๊ฐ ์์ผ๋ฏ๋ก npm๋ ๋์์ง ์์ ๋ฏ
- yarn
- ๋ณด์, ์ผ๊ด์ฑ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅ
- Native ๋ชจ๋
ธ๋ ํฌ ์ง์
- ์๋ก์ด lock ํ์ผ ํ์
- ์๋ก์ด ๋ฒ์ yarn berry ๋ฑ์ฅ
- ๋ฆฌ์กํธ ์ค์น ์ npm์ 3.5์ด, yarn์ 1.4์ด
- npm๊ณผ ๋น์ทํด์ ๋ฌ๋์ปค๋ธ๊ฐ ๊ฑฐ์ ์์
- yarn berry
- ์๋ฌ ๋ง์ด ๋๋ค๋ ์ฌ๋๋ค์ ์๊ฒฌ
- Yarn classic์ ํธํ๋์ง ์์
- Plug n play & Zipfs๋ฅผ ์ด์ฉํ ์์กด์ฑ ๊ด๋ฆฌ
- ํ๋ฌ๊ทธ์ธ ์นํ์
- Monorepo๋ฅผ ์ํ workspace ๊ธฐ๋ฅ ๊ฐํ
- pnpm
- Performant npm์ ์ค์๋ง
- ํ๋ซํ์ง ์์ node_modules ๊ตฌ์กฐ
- ํ๋๋งํฌ๋ฅผ ์ฌ์ฉํด ํ๋๋์คํฌ ์ฉ๋ ์ ์ฝ
- ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํตํ ๋น ๋ฅธ ํ์
2.3.8. ๋ฒ๋ค๋ง ๋๊ตฌ โ โ
๋น๊ต๋ฅผ ์ํด cra์ vite๋ฅผ ๋ชจ๋ ์ฌ์ฉํด๋ณด๋ฉด ์ข์๋ฏ
- ๊ฑฐ์ ํ ํ์ด์ง ์์์ ๋์ํ๋ฏ๋ก ๋ฒ๋ค๋ง ๋๊ตฌ๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํจ
- ์ฐธ๊ณ
- Vite
- ๋น ๋ฅด๋ค
- Go ์ธ์ด ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ CRA๋ณด๋ค ๋น ๋ฅด๋ค.
- CRA๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๋ค.
- CRA์์ ์๋์ผ๋ก ํด์ฃผ๋ ์ค์ ์ ๋ณ๋๋ก ํด์ผํจ
- ๋ค๋ง, ๋ง์ด๊ทธ๋ ์ด์
๊ฐ๋ฅ(https://zih0.tistory.com/44)
- ํ ์ด ํ๋ก์ ํธ์์๋ ๊ฑฐ์ 2๋ฐฐ๊ฐ ๋น ๋ฅธ ์ฑ๋ฅ์ ๋ณด์ด๋ฏ๋ก, ๊ท๋ชจ๊ฐ ์์ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ์ ์ฉํด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์
- CRA๋ฅผ ์ ์ผ์ ๋ ์ถ๊ฐ์ ์ผ๋ก ๋ฌด์์ ๊น์์ผ ํ๋์ง ํ์ตํ ์ ์์ผ๋ฏ๋ก ๋จผ์ CRA๋ฅผ ์ฐ๊ณ Vite๋ฅผ ๊ฒฐํฉํ์
- CRA
- ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด ๋น๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆผ
- ๋ค๋ง, ๋๋ฌด ํธํจ
- esLint, prettier
- ๋ค์ด๋ฒ ์ปจ๋ฒค์
์์ ํ์ํ ๊ฒ๋ง ์ถ๊ฐ/๋ณ๊ฒฝ โ ํ์ํ์ง ์์ ๋ถ๋ถ์ โ์ญ์ โ
โ ๏ธ **GitHub.com Fallback** โ ๏ธ