2024-04-05.md
๐กDIL: ๋ชจ๋ ๋ฆฌ์กํธ ๋ฅ ๋ค์ด๋ธ, 5์ฃผ์ฐจ-5
์คํฐ๋: ์๊ฐ CS, https://github.com/monthly-cs/2024-03-modern-react-deep-dive
์ค๋ ์งํ: ๊ฐ์ธ๊ณต๋ถ
DIL-week5-5_2024-04-05
| DIL ์ฃผ์ฐจ | ๋ฒ์ | ๋ด์ฉ | ์ค๋์ฐจ ์ง๋ | | -------- | ---- | -------------------------------------------------- | ----------- | | 5์ฃผ์ฐจ | 9์ฅ | ๋ชจ๋ ๋ฆฌ์กํธ ๊ฐ๋ฐ ๋๊ตฌ๋ก ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ํ๊ฒฝ ๊ตฌ์ถํ๊ธฐ | 566p~616p |
์ค๋ ์ฝ์ ๋ด์ฉ์ markdown์ผ๋ก ๊ฐ๋จํ ๋ฉ๋ชจ
์ฝ์ ์๊ฐ: 9์~11์
๋ชจ๋ ๋ฆฌ์กํธ ๊ฐ๋ฐ ๋๊ตฌ: ๊นํ๋ธ 100% ํ์ฉํ๊ธฐ
package.json์ dependencies
semantic versioning ์ ์์ ๋ฒ์
- ์ฃผ.๋ถ.์
| version | ๋ฒ์ | ๋ด์ฉ | | ------- | ---- | --------------------------------------- | | Major | ์ฃผ | ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋์ง ์๊ฒ API๊ฐ ๋ฐ๋ | | Minor | ๋ถ | ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋๋ฉด์ ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ | | Patch | ์ | ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋๋ฉด์ ๋ฒ๊ทธ๋ฅผ ์์ |
- ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉด ๋ฐ๋์ ๋ฒ์ ์
- Major 0์ ์ด๊ธฐ ๊ฐ๋ฐ ex) recoil
- Patch๋ ์ด์ ๋ฒ์ API์ ํธํ๋๋ ๋ฒ๊ทธ ์์ ์ ๊ฒฝ์ฐ์๋ง ์ฌ๋ฆฐ๋ค (๋ด๋ถ ๊ธฐ๋ฅ์ ๊ณ ์นจ)
- ๋ฒ๊ทธ ์์ ์ด API ์คํ์ ๋ณ๊ฒฝ์ ๋๋ฐํ๋ค๋ฉด, Major๋ฅผ ์ฌ๋ฆฐ๋ค
- Major๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ข ๊ทธ๋ ๋ค? API๋ฅผ deprecated ์ฒ๋ฆฌ ํ, ์ API๋ฅผ ๋ง๋ค์ด ๋ถ ๋ฒ์ ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด ์ข๋ค
npm ๋ฒ์ ๊ท์น (์ ์์ ๋ฒ์ ๊ธฐ๋ฐ)
| ๋ฒ์ | ๋ด์ฉ | ํด๋น | | ------------- | ---------------------------------- | --------------------- | | react@16.0.0 | ์ ํํ ํด๋น ๋ฒ์ ๋ง ์์กด | 16.0.0 | | react@^16.0.0 | 16.0.0๊ณผ ํธํ๋๋ ๋ฒ์ | 16.0.0๋ถํฐ 17.0.0๋ฏธ๋ง | | react@~16.0.0 | ํจ์น ๋ฒ์ ์ ๋ํด์๋ง ํธํ๋๋ ๋ฒ์ | 16.0.0~16.1.0 ๋ฏธ๋ง |
- ์์) colors.js ๋ผ์ด๋ธ๋ฌ๋ฆฌ: 1.4.0์์ 1.4.1๋ก patch ์ฌ๋ฆฌ๋ ๊ณผ์ ์์ ํธํ์๋๋ ํจํค์ง๋ฅผ ๋ฐฐํฌํ๋ ๋ถ์์ฌ
dependencies
- package.json์ dependencies: ์์ ์ธ์ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์
| ๋ฒ์ | ๋ด์ฉ | | | ---------------- | ------------------------------------------------------------- | --------------------------------------------------------------------- | | dependencies | npm install ํจํค์ง๋ช | ํ๋ก์ ํธ๋ฅผ ์คํํ๋ ๋ฐ ๊ผญ ํ์ํ ํจํค์ง | | devDependencies | npm install ํจํค์ง๋ช --save-dev | ํ๋ก์ ํธ๋ฅผ ์คํํ๋ ๋ฐ๋ ํ์ํ์ง ์์ง๋ง, ๊ฐ๋ฐ ๋จ๊ณ์์ ํ์ํ ํจํค์ง | | peerDependencies | {โpeerDependenciesโ:{โreactโ:โ>=16.8โ, โreact-domโ:โ>=16.8โ}} | ์๋น์ค๋ณด๋ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจํค์ง์ ์์ฃผ ์ฐ์ด๋ ๋จ์ |
- dev dependencies๋ฅผ ๊ตฌ๋ถํด์ผ ํ ๊น?
- dependencies์ devDependecies ๋ชจ๋ node_modules์ ์ค์นํ๋ค. ๋ฒ๋ค๋ฌ๊ฐ ์ฝ๋์ ์์์ ๋ถํฐ ์ข
์์ฑ ํ๋จ โ ํ์ํ ํ์ผ์ ๋น๋ํด์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ฆ
- ์ ํ๋ฆฌ์ผ์ด์ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์๋ ์ํฅ์ด ์๋ค
- ๋ณต์กํด์ง ๊ฐ๋ฐ ํ์ดํ๋ผ์ธ
- ์~๋ โ npm install --only=production์ผ๋ก ํ์ํ ํจํค์ง ๋น ๋ฅด๊ฒ ์ค์น
- ์ง๊ธ ์ด๋ ๊ฒ ํ๋ฉด? typescript์
@types/
๊ฐ์ ํ์ดํ ํ์ผ๋ devDependencies์ ์ ์ธ๋์ด tsc๊ฐ ์คํ ์๋จ
- dependencies์ devDependecies ๋ชจ๋ node_modules์ ์ค์นํ๋ค. ๋ฒ๋ค๋ฌ๊ฐ ์ฝ๋์ ์์์ ๋ถํฐ ์ข
์์ฑ ํ๋จ โ ํ์ํ ํ์ผ์ ๋น๋ํด์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ฆ
- npm์ ์
๋ก๋ํ ํจํค์ง๋ฅผ ๊ฐ๋ฐํ๋ค๋ฉด?
- dependencies์ ์๋ ํจํค์ง๋ค๋ง ์ต์ข ํจํค์ง์ ํฌํจ๋๊ฒ ํด์ผ ํจ
- ํฅํ ๋ค๋ฅธ ํจํค์ง์ ์์กด์ฑ์ ์ฝ๊ฑฐ๋ ์ถ์ํ๊ธฐ ์ํด ์ฐจ์ด๋ฅผ ์์์ผํจ
- ๊ฐ๋ฐ ์ทจ์ฝ์
- critical, high, moderate, low
- react ํ โ false positive์ ๋ํด ๋์ํ์ง ์๊ฒ ๋ค
- ์ทจ์ฝ์ ์ด ์์ผ๋, ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๊ฑฐ๋, ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์์ฒด์ ์ผ๋ก ํ๋จํ ์ทจ์ฝ์ ์ ๊ณต์์ ์ผ๋ก ๋์ํ์ง ์๊ฒ ๋ค.
- ์์กด์ฑ ๊ด๋ จ ์ด์๋ฅผ ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ์?
- ๋ด์ฌํํ ์ ์๋ ๋ชจ๋์ ๋ด์ฌํํ๊ณ , ์์กด์ฑ์ ์ต์ํ์ผ๋ก ์ ์งํ๋ค
- ์ํ์ ๋ ธ์ถ๋ ํ๋ฅ ์ ๋ฎ์ถ๋ค
- ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ์ด๋ ต๋ค.
- ํ๋ฐํ๊ฒ ์ ์ง๋ณด์๋๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ค.
- ์ ์ง๋ณด์ ์ฃผ์ฒด๊ฐ ์๋ค๋ฉด? ์ ์ฐจ ์์กด์ฑ ๋ฌธ์ ๊ฐ ๋น๋ฉดํ๊ฒ ๋๋ค.
- ๋ด์ฌํํ ์ ์๋ ๋ชจ๋์ ๋ด์ฌํํ๊ณ , ์์กด์ฑ์ ์ต์ํ์ผ๋ก ์ ์งํ๋ค
- Dependabot๊ณผ npm์ overrides๋ฅผ ํ์ฉํด์ ๋์์ ๋ฐ๊ธฐ
- Github์ de facto ์ ์ฅ์: Dependabot, Copilot, Github Pages, Private, Enterprise
๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌํ๊ธฐ, SaaS 3๊ฐ์ง
- ํด๋ผ์ฐ๋ ์๋น์ค
- Amazon Web Service
- Google Cloud Platform
- Microsoft Azure
๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ
| SaaS | ํน์ง | ์ ๊ณต | ๊ณตํ | | ------------ | ----------------------------- | ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- | | Netlitfy | ๋ฃจํธ์ netlify.toml ํ์ผ ์์ฑ | ๋ฐฐํฌ ์๋ฆผ, ์๋น์ค ํตํฉ Integrations (Sentry, Aloglia, Redis), ์๋ฒ๋ฆฌ์ค ํจ์, Identity ์ธ์ฆ | https://www.netlify.com/pricing/ | | Vercel | preset ์ค์ | ์๋ฆผ, ์๋ฒ๋ฆฌ์ค ํจ์, ํ ํ๋ฆฟ ์ง์๐ค | https://vercel.com/ | | DigitalOcean | ๋ค์ํ ํด๋ผ์ฐ๋ ์ปดํจํ ์๋น์ค | ์๋ฆผ, ์ปจํ ์ด๋ ์ง์ ์ ๊ทผ, ๋ง์ผํ๋ ์ด์ค(์ปจํ ์ด๋ ์ ๊ณต ์์ฃผ), ๋๋ฉ์ธ ์ฐ๊ฒฐ | https://www.digitalocean.com/, ๋ธ๋ก๊ทธ https://www.digitalocean.com/blog |
- TOML์? โTomโs Obvious, Minimal Languageโ, YAML ์ ์ฌ
- https://toml.io/en/
[[plugins]]; package = "@netlify/plugin-nextjs";
- https://toml.io/en/
- ์ฝ๊ณ ๋น ๋ฅธ ๋ฐฐํฌ โ MVP, ์ ํ์ ์ธ ํธ๋ํฝ์ ์ฌ์ดํธ