-
Notifications
You must be signed in to change notification settings - Fork 4
๐ฆ ํจํค์ง ๋งค๋์ ๋ฐ ๋ชจ๋ ธ๋ ํฌ ์ ํ๊ธฐ
ํจํค์ง ๋งค๋์ ์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ๋ถํฐ ์์ํ์ฌ npm, Yarn, pnpm, Yarn Berry์ ํน์ง๊ณผ ์ฅ๋จ์ ์ ๋ถ์ํ๊ณ , ํ ํ๋ก์ ํธ์ ๊ฐ์ฅ ์ ํฉํ ํจํค์ง ๋งค๋์ ๋ฅผ ์ ํํ ์ด์ ๋ฅผ ์ ์ํฉ๋๋ค.
- ์์กด์ฑ ๊ด๋ฆฌ์ ๋ณต์ก์ฑ ์ฆ๊ฐ
- ์ผ๊ด๋ ๊ฐ๋ฐ ํ๊ฒฝ ํ์
- ๋ฐฐํฌ ๋ฐ ์ ๋ฐ์ดํธ์ ํจ์จ์ฑ
์ผ๋ฐ์ ์ผ๋ก package.json ํ์ผ์ ๋ํ๋์๋ฅผ ๋ช
์ํ๊ณ , npm install ํน์ yarn install์ ํ๋ฉด, ํด๋น ์์กด์ฑ์ ๋ช
์๋ ๋ฒ์ ์ ์ค์นํ๊ฒ ๋ฉ๋๋ค. ์ฆ, ํจํค์ง ๋งค๋์ ๋ ๋ชจํธํ ๋ฒ์ ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ค๋๋ค.
Resolution ๋จ๊ณ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ๊ณ ์
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ค๋ฅธ ์์กด์ฑ ํ์ธ
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ค๋ฅธ ์์กด์ฑ ๋ฒ์ ๊ณ ์
- ๊ฒฐ์ ๋ ๋ฒ์ ์ ํ์ผ์ ๋ค์ด๋ก๋ ํ๋ ๊ณผ์
- Resolution/Fetch ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ค ์ฝ๋์์ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๊ณผ์
- ๊ด๋ฒ์ํ ์ํ๊ณ: ์๋ฐฑ๋ง ๊ฐ์ ํจํค์ง๋ฅผ ์ ๊ณตํ์ฌ ๋ค์ํ ๊ธฐ๋ฅ์ ์์ฝ๊ฒ ๊ตฌํ ๊ฐ๋ฅ
- ํ๋ฐํ ์ปค๋ฎค๋ํฐ: ํ๋ถํ ์๋ฃ์ ์ง์์ ๋ฐ์ ์ ์์
- ๋๋ฆฐ ์ค์น ์๋: ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ์ค์น ์๊ฐ์ด ๊ธธ์ด์ง ์ ์์
- ์์กด์ฑ ํธ๋ฆฌ์ ์ค๋ณต: ๋์ผํ ํจํค์ง๊ฐ ์ฌ๋ฌ ๋ฒ์ ์ผ๋ก ์ค์น๋์ด ๋์คํฌ ๊ณต๊ฐ์ ๋นํจ์จ์ ์ผ๋ก ์ฌ์ฉ

Yarn์ Facebook์์ npm์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๊ฐ๋ฐํ ํจํค์ง ๋งค๋์ ๋ก, ์๋์ ์ผ๊ด์ฑ์ ์ด์ ์ ๋ง์ถ๊ณ ์์ต๋๋ค.
- ๋น ๋ฅธ ์ค์น ์๋: ๋ณ๋ ฌ ๋ค์ด๋ก๋์ ์บ์ฑ์ ํตํด ์ค์น ์๊ฐ์ ๋จ์ถ
-
์ ๋ขฐ์ฑ ์๋ ๋ฒ์ ๊ด๋ฆฌ:
yarn.lockํ์ผ์ ํตํด ์์กด์ฑ ๋ฒ์ ์ ๊ณ ์ ํ์ฌ ์ผ๊ด์ฑ ์ ์ง - ํจ์จ์ ์ธ ๋คํธ์ํฌ ์ฌ์ฉ: ๋์ผํ ํจํค์ง๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ํธ๋ํฝ ๊ฐ์
- ํธํ์ฑ ์ด์: ์ผ๋ถ ํจํค์ง๊ฐ Yarn๊ณผ ์๋ฒฝํ ํธํ๋์ง ์์ ์ ์์
pnpm์ ํจํค์ง๋ฅผ ์ค์นํ ๋ ํ๋ ๋งํฌ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํ์ฉํ์ฌ ๋์คํฌ ๊ณต๊ฐ์ ์ ์ฝํ๋ ํจํค์ง ๋งค๋์ ์ ๋๋ค.
- ๋์คํฌ ๊ณต๊ฐ ํจ์จ์ฑ: ๋์ผํ ํจํค์ง๋ฅผ ํ ๊ณณ์ ์ ์ฅํ์ฌ ์ค๋ณต ์ ๊ฑฐ
- ๋น ๋ฅธ ์ค์น ์๋: ํ์ผ ์์คํ ๋งํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์น ์๊ฐ์ ๋จ์ถ
- ์๊ฒฉํ ์์กด์ฑ ๊ฒฉ๋ฆฌ: ํ๋ก์ ํธ๋ณ๋ก ์์กด์ฑ์ ๊ฒฉ๋ฆฌํ์ฌ ์ถฉ๋ ๋ฐฉ์ง
- ํธํ์ฑ ๋ฌธ์ : ์ผ๋ถ ๋๊ตฌ๋ ์คํฌ๋ฆฝํธ๊ฐ pnpm์ ๊ตฌ์กฐ๋ฅผ ์ง์ํ์ง ์์ ์ ์์
Yarn Berry๋ Yarn์ ๋ ๋ฒ์งธ ๋ฉ์ด์ ๋ฒ์ ์ผ๋ก, Plug'n'Play(PnP) ์์คํ
์ ๋์
ํ์ฌ node_modules ํด๋ ์์ด ํจํค์ง๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
- ํฅ์๋ ์ฑ๋ฅ: PnP๋ฅผ ํตํด ๋ชจ๋ ํด๊ฒฐ ์๊ฐ์ ๋จ์ถ
- ๋ณด์ ๊ฐํ: ์์กด์ฑ ์ ๊ทผ์ ์๊ฒฉํ ํต์ ํ์ฌ ๋ณด์์ฑ ํฅ์
- ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ: ๋ค์ํ ํ๋ฌ๊ทธ์ธ๊ณผ ์ค์ ์ ํตํด ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅ
- ํธํ์ฑ ์ด์: PnP๋ฅผ ์ง์ํ์ง ์๋ ํจํค์ง๋ ๋๊ตฌ๊ฐ ์กด์ฌ
- ํ์ต ๊ณก์ : ๊ธฐ์กด Yarn๊ณผ ๋ฌ๋ผ์ง ์ ์ด ๋ง์ ํ์ต ํ์
- ์ค์ ๋ณต์ก์ฑ: ์ด๊ธฐ ์ค์ ๊ณผ ํ๊ฒฝ ๊ตฌ์ฑ์ด ๋ณต์กํ ์ ์์
| ํจํค์ง ๋งค๋์ | ์ค์น ์๋ | ๋์คํฌ ๊ณต๊ฐ ํจ์จ์ฑ | ํธํ์ฑ | ํ์ต ๋์ด๋ |
|---|---|---|---|---|
| npm | ๋๋ฆผ | ๋ฎ์ | ๋์ | ๋ฎ์ |
| Yarn | ๋น ๋ฆ | ์ค๊ฐ | ๋์ | ์ค๊ฐ |
| pnpm | ๋งค์ฐ ๋น ๋ฆ | ๋์ | ์ค๊ฐ | ์ค๊ฐ |
| Yarn Berry | ๋น ๋ฆ | ๋์ | ๋ฎ์ | ๋์ |
PnP๋ node_modules ์์ด JavaScript Map ๊ฐ์ฒด๋ฅผ ํ์ฉํด ์์กด์ฑ์ ์๊ฒฉํ๊ณ ๋น ๋ฅด๊ฒ ๊ด๋ฆฌํ๋ ์ ๊ทผ ๋ฐฉ์์
๋๋ค. ๊ทธ๋ฆฌ๊ณ Zero-install์ PnP์ JavaScript Map ๊ฐ์ฒด์ Fetch๋ ์์กด์ฑ๋ค๊น์ง ๋ชจ๋ Git์ ๋ฃ์ด ๋ฒ์ ์ ๊ด๋ฆฌํ์๋ ๋ฐฉ์์
๋๋ค.
์ฝ๊ฒ ๋งํด, npm์ ์ฌ์ฉํ๋ฉด์ node_modules ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฒ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด Zero-install์ด์ฃ .

์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ๋ชจ๋ ธ๋ ํฌ ๊ตฌ์กฐ๋ก ๊ตฌํ๋๋ฉฐ, ๋์ผํ ํ๊ฒฝ์์ ๋์ํ ์ ์๋๋ก ์ ๋ก ์ธ์คํจ์ ์ฑํํ๊ธฐ๋ก ๊ฒฐ์ ํ์์ต๋๋ค.
- ๋ชจ๋ ธ๋ ํฌ ์ง์: ํ๋ก์ ํธ๊ฐ ๋ค์์ ํจํค์ง๋ก ๊ตฌ์ฑ๋ ๋ชจ๋ ธ๋ ํฌ ๊ตฌ์กฐ์ด๋ฏ๋ก, ์ฌ๋ฌ ํจํค์ง๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ์ํฌ์คํ์ด์ค ๊ธฐ๋ฅ์ด ํ์์ ์ ๋๋ค. Yarn Workspaces์ pnpm Workspaces๋ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ง์ํ์ง๋ง, Yarn Berry๋ ๋์ฑ ํฅ์๋ ๋ชจ๋ ธ๋ ํฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
-
์ ๋ก ์ธ์คํจ: ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ์ ๋จ์ํํ๊ณ ์ด๊ธฐ ์ค์น ๋จ๊ณ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ ๋ก ์ธ์คํจ ๋ฐฉ์์ ๋์
ํ์์ต๋๋ค. Yarn Berry์ Plug'n'Play(PnP) ๊ธฐ๋ฅ์
node_modulesํด๋ ์์ด ํจํค์ง๋ฅผ ๊ด๋ฆฌํ ์ ์์ด ์ ๋ก ์ธ์คํจ์ ๊ตฌํํ๋ ๋ฐ ์ต์ ์ ๋๋ค. - ๋์คํฌ ๊ณต๊ฐ ๋ฐ ์ค์น ์๋: ๋๊ท๋ชจ ๋ชจ๋ ธ๋ ํฌ์์๋ ๋์คํฌ ๊ณต๊ฐ ์ฌ์ฉ๊ณผ ์ค์น ์๋๊ฐ ์ค์ํ ์์์ ๋๋ค. Yarn Berry์ pnpm์ ๋์คํฌ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ๋น ๋ฅธ ์ค์น ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ํนํ pnpm์ ํ๋ ๋งํฌ๋ฅผ ํ์ฉํ์ฌ ๊ณต๊ฐ์ ์ ์ฝํ์ง๋ง, Yarn Berry๋ PnP์ ์บ์ฑ์ ํตํด ์ ์ฌํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ฌํ ์ด์ ๋ก, Yarn Berry๊ฐ ์ฐ๋ฆฌ ํ๋ก์ ํธ์ ์๊ตฌ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ ํจํค์ง ๋งค๋์ ๋ก ํ๋จ๋์์ต๋๋ค. Yarn Berry๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ๋ชจ๋ ธ๋ ํฌ ๊ด๋ฆฌ์ ํจ์จ์ฑ์ ๋์ด๊ณ , ์ ๋ก ์ธ์คํจ์ ๊ตฌํํ์ฌ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ์ ๊ฐ์ํํ๋ฉฐ, ๋น ๋ฅธ ์ค์น ์๋์ ๋์คํฌ ๊ณต๊ฐ ํจ์จ์ฑ์ ํ๋ณดํ ์ ์์ต๋๋ค.
- ์ฌ๋ฌ ํจํค์ง๋ฅผ ์ค์ ํ์ฌ ํ ๋ฒ๋ง ์คํํ๋ฉดย
yarn install๋ชจ๋ ํจํค์ง๋ฅผ ํ ๋ฒ์ ์ค์นํ ์ ์์ต๋๋ค. - ๋ชจ๋ ํ๋ก์ ํธ ์ข ์์ฑ์ ํจ๊ป ์ค์น๋๋ฏ๋ก Yarn์ด ์ด๋ฅผ ๋ ์์ ๋กญ๊ฒ ์ต์ ํํ ์ ์์ต๋๋ค.
- Yarn์ ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅธ ์ ๊ธ ํ์ผ์ ์ฌ์ฉํ๋ ๋์ ๋จ์ผ ์ ๊ธ ํ์ผ์ ์ฌ์ฉํ๋ฏ๋ก ์ถฉ๋์ด ์ ๊ณ ๊ฒํ ๊ฐ ์์ํด์ง๋๋ค.
-
์ฐ์ํํ ํฌ - [10๋ถ ํ ํฌํก] ๋น๋ ์ Package Manager
ํจํค์ง ๋งค๋์ ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค๋ฃฌ ์งง์ ์์์ ๋๋ค. -
Viva Republica - ํจํค์ง ๋งค๋์ ์ ๊ณผ๊ฑฐ, ํ ์ค์ ์ ํ, ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋
Viva Republica์์ ํจํค์ง ๋งค๋์ ์ ์ญ์ฌ์ ๋์ ๊ณผ์ ์ ์๊ฐํ ๊ธ์ ๋๋ค. -
NAVER D2 - ๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ๊ธฐ๋ฒ - ๋ชจ๋ ธ๋ ํฌ ๊ฐ๋ ํธ
๋ชจ๋ ธ๋ ํฌ์ ๊ฐ๋ ๊ณผ ์ด๋ฅผ ํ๋ก ํธ์๋ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค. -
NAVER D2 - ๋ชจ๋ ํ๋ก ํธ์๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ๊ธฐ๋ฒ - ๋ชจ๋ ธ๋ ํฌ ๋๊ตฌ ํธ
๋ชจ๋ ธ๋ ํฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ค์ํ ๋๊ตฌ์ ์ฌ์ฉ๋ฒ์ ์๊ฐํฉ๋๋ค. -
Monorepo.tools - Monorepo Explained
Monorepo์ Polyrepo์ ๊ฐ๋ ๊ณผ ์ฐจ์ด์ ์ ๋ํด ์ค๋ช ํ๋ฉฐ ๋๊ตฌ๋ฅผ ๋น๊ตํฉ๋๋ค. -
Viva Republica - 200์ฌ๊ฐ ์๋น์ค ๋ชจ๋ ธ๋ ํฌ์ ํ์ดํ๋ผ์ธ ์ต์ ํ
Viva Republica์์ ์ค์ ๋ก ๊ตฌํํ ๋ชจ๋ ธ๋ ํฌ ํ์ดํ๋ผ์ธ ์ต์ ํ ์ฌ๋ก๋ฅผ ๋ค๋ฃน๋๋ค. -
State of JavaScript 2023: ๋ชจ๋ ธ๋ ํฌ ๋๊ตฌ
2023๋ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ธ๋ ํฌ ๊ด๋ จ ๋๊ตฌ์ ํธ๋ ๋๋ฅผ ๋ถ์ํ ์๋ฃ์ ๋๋ค. -
FEConf Korea - FECONF 2022 [B2] ์ผ๋ฐฑ๊ฐ ํจํค์ง ๋ชจ๋ ธ๋ ํฌ ์ฐ์ํ๊ฒ ์ด์ํ๊ธฐ
FEConf Korea์์ ๋ฐํ๋, ๋๊ท๋ชจ ๋ชจ๋ ธ๋ ํฌ ํ๋ก์ ํธ ๊ด๋ฆฌ ์ฌ๋ก๋ฅผ ๋ค๋ฃฌ ๋ฐํ ์์์ ๋๋ค. -
ํ ์ค ํ ์ค | SLASH 21 - Micro-frontend React, ์ ์ง์ ์ผ๋ก ๋์ ํ๊ธฐ
Micro-frontend๋ฅผ React๋ฅผ ํตํด ๊ตฌํํ๋ ์ ์ง์ ์ธ ์ ๊ทผ๋ฒ์ ์๊ฐํ๋ ์์์ ๋๋ค. -
์ฐ์ํํ ํฌ - ์ฐ๋ฆฌ๋ ํ๋๋ค! ๋ชจ๋ ธ๋ ํฌ with pnpm #์ฐ์์ฝ2022
์ฐ์์ฝ 2022์์ pnpm์ ํ์ฉํ ๋ชจ๋ ธ๋ ํฌ ์ ์ฉ ์ฌ๋ก๋ฅผ ๊ณต์ ํฉ๋๋ค. -
ํ ์ค ํ ์ค | SLASH 22 - ์์ด๋ฒ๋ฆฐ ๊ฐ๋ฐ์์ ์๊ฐ์ ์ฐพ์์: ๋งค์ผ ํ๋ฃจ๋ฅผ ์๋ผ๋ DevOps ์ด์ผ๊ธฐ
DevOps ๊ด์ ์์ ๋ชจ๋ ธ๋ ํฌ๋ฅผ ๋์ ํ์ฌ ์์ฐ์ฑ์ ํฅ์์ํจ ์ฌ๋ก๋ฅผ ๋ค๋ฃฌ ๋ฐํ ์์์ ๋๋ค.
- ๐ ์น ์์ผ์ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ (feat. WS vs Socket.io)
- ๐คธโโ๏ธ ๋น์ ์ด ์ปดํฌ๋ํธ๋ก ๋ ๋๋ง ์ต์ ํ ํ๊ธฐ
- ๐ทโโ๏ธ Shared Worker๋ก ํด๋ผ์ด์ธํธ์ ์์ผ ํต์ ๊ฐ์ ํ๊ธฐ
- ๐จโ๐ฉโ๐งโ๐ฆ ๋ค์ค ํญ์์ ํ๋์ ์์ผ์ ๊ณต์ ํ ์ ์์๊น?
- ๐ [Socket.io] ํด๋ผ์ด์ธํธ์ ์ค์๊ฐ ์ฑํ ๊ตฌํ๊ธฐ
- ๐ฌ ์๋ฒ๋ฅผ docker swarm ์ผ๋ก ๊ด๋ฆฌํด๋ณด์
- ๐ฌ ์ปจํ ์ด๋๋ผ๋ฆฌ env ๊ณต์ ํ๊ธฐ
- ํ์ฅ์ฑ์ ๊ณ ๋ คํ ์๋ฒ ์ค๊ณ
- ncp ์๋ฒ ์ ํ
- ์ฑํ ์๋ฒ์ Redis ๋ฅผ ์ด ์ด์
- โ NestJS๋ฅผ ํตํ ์ผ๊ด์ ์ธ ์์คํ ์ค๊ณ
โ๏ธ ์ธ๋ถ์ ์ฌ์ฉ์๊ฐ Object Storage์ ์ ๊ทผํ์ง ๋ชปํ๋ ๊ถํ ์ ์ด- ๐ฆข nestjs์์ swagger ์ฌ์ฉํด๋ณด๊ธฐ
- ๐ NestJS Nginx Request Data Size ๋ฌธ์
- ๐ ๋ค์๋ณด๊ธฐ๋ฅผ ์ํ NodeโMediaโServer, FFMpeg ๋ถ์
- ๐ฆ ํจํค์ง ๋งค๋์ ๋ฐ ๋ชจ๋ ธ๋ ํฌ ์ ํ๊ธฐ
- ๐ฐ ์ปค์คํ ESLint ๋ง๋ค๊ธฐ
- ๐คบ ์ปค์คํ react ์ค๋ํซ ๋ง๋ค๊ธฐ
- ๐ธ ๋ฐ์ํ ๋น๋์ค ํ๋ ์ด์ด ๊ตฌํ: ํจ๋ฉ ํ ๊ธฐ๋ฒ
- ๋ฆฌ์กํธ ํ ํผ ๋ฅ๋ค์ด๋ธ