Skip to content

Package Manager: Yarn Berry

yoycode edited this page Jun 15, 2023 · 9 revisions

J Design System์—์„œ๋Š” ํšจ์œจ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Yarn Berry๋ฅผ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์™œ yarn berry ์ธ๊ฐ€์š”?

yarn berry๋Š” ๊ธฐ์กด npm์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•จ๊ณผ ๋™์‹œ์—, ๋ณด๋‹ค ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ฐ•์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค

  1. ์ €์žฅ๊ณต๊ฐ„ ์ ˆ์•ฝ. pnp๋ฐฉ์‹์„ ํ™œ์šฉํ•œ๋‹ค๋ฉด node_modules๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋Œ€์‹ , ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ .yarn/.cache ํด๋”์— .zipํ˜•์‹์œผ๋กœ ์••์ถ•ํ•ด ์ €์žฅํ•˜๊ณ , ์ด๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ pnp.cjs๋ผ๋Š” ํŒŒ์ผ์— ์˜์กด์„ฑ lookupํŒŒ์ผ์„ ์ƒ์„ฑํ•ด์„œ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ํŒŒ์ผ ์ˆ˜๋ฅผ ํฌ๊ฒŒ ์ค„์—ฌ ์ €์žฅ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๋ฉฐ, ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋”๋ผ๋„ ๊ทธ์— ๋”ฐ๋ฅธ ์ €์žฅ๊ณต๊ฐ„์˜ ์ฆ๊ฐ€๋ฅผ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

  2. ์„ค์น˜์‹œ๊ฐ„ ์ ˆ์•ฝ.
    yarn berry๋Š” ํŒจํ‚ค์ง€ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. node_modules์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ˆœํšŒํ•ด์•ผํ•˜๋Š” ๋ถˆํ•„์š”ํ•œ ๋กœ์ง์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด์™€ ๋‹ฌ๋ฆฌ yarn berry๋Š” ๋‹จ์ผ ํŒŒ์ผ ๊ตฌ์กฐ์™€ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํ™œ์šฉํ•œ pnp.cjsํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ํƒ์ƒ‰์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  3. node_modules์˜ ์œ ๋ น์˜์กด์„ฑ ํ•ด๊ฒฐ.
    ghost-dependencies
    node_modules ๋ฐฉ์‹์€ ์˜์กด์„ฑ ์ค‘๋ณต ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ํ˜ธ์ด์ŠคํŒ… ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๊ทธ๋กœ ์ธํ•ด ์˜๋„์น˜ ์•Š์€ ์œ ๋ น์˜์กด์„ฑ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ pnp๋ฐฉ์‹์€ ํ˜ธ์ด์ŠคํŒ…ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์œ ๋ น์˜์กด์„ฑ ๋ฐœ์ƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. zero-install ๊ธฐ๋Šฅ.
    zero install .yarn ํด๋”์˜ ํŒŒ์ผ๋“ค์€ ์˜คํ”„๋ผ์ธ ์บ์‹œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, github์— ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์˜ฌ๋ ค๋‘๋ฉด ํ•ด๋‹น github์„ ์‚ฌ์šฉํ•˜๋Š” ํŒ€์›๋“ค๋ผ๋ฆฌ๋Š” ์–ด๋””์„œ๋“  ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— ์„ค์น˜๋œ ํŒŒ์ผ๊ณผ ํ™˜๊ฒฝ์ด ๋‹ฌ๋ผ์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฒ„๊ทธ๋ฅผ ๋Œ€์‘ํ•˜๋Š” ์ผ์ด ์ค„์–ด๋“ค๋ฉฐ, ํŒ€์›๊ฐ„์˜ ํ˜‘์—…์„ ํ›จ์”ฌ ๋” ์›ํ™œํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.

  5. yarn workspace ์ง€์›.
    yarn berry๋Š” ์ž์ฒด์ ์œผ๋กœ ๋ชจ๋…ธ๋ ˆํฌ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ yarn workspace ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋ฌธ์— Lerna๋‚˜, NX, Turborepo์™€ ๊ฐ™์€ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์˜ ํ•„์š”์—†์ด ๊ฐ€๋ณ๊ฒŒ ์˜์กด์„ฑ ๋ชจ๋“ˆ์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€๋ฒผ์šด๋งŒํผ ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅธ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์— ๋น„ํ•ด ๋งŽ์ง€๋Š” ์•Š์ง€๋งŒ, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ์—๋Š” ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ yarn workspace๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ์ฑ„ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

Clone this wiki locally