yarn

npm์— ์ด์–ด ์ด๋ฒˆ์—” yarn์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์ž.

yarn?

yarn์€ ํŽ˜์ด์Šค๋ถ์—์„œ ๊ฐœ๋ฐœํ•œ node.js ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ npm๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, npm์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋‹ค.

๋จผ์ €, npm์€ ํŒจํ‚ค์ง€๊ฐ€ ๋งŽ์•„์ง์— ๋”ฐ๋ผ ์„ค์น˜/๋นŒ๋“œ ์†๋„๊ฐ€ ์ €ํ•˜๋˜๊ณ , node_modules์˜ ๋ณต์žกํ•œ ์˜์กด์„ฑ ํŠธ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค๋Š” ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

yarn์€ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์•„๋ž˜ ๊ฒฝ๋กœ์˜ ์œ ์ € ๋””๋ ‰ํ† ๋ฆฌ์— ์บ์‹ฑํ•œ๋‹ค. ๋˜ํ•œ, ์ˆœ์ฐจ์ ์œผ๋กœ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๋Š” npm๊ณผ ๋‹ฌ๋ฆฌ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

yarn cache dir $HOME/Library/Caches/Yarn/

๋”ฐ๋ผ์„œ ์ตœ์ดˆ ์„ค์น˜๋Š” npm๊ณผ ๊ทผ์†Œํ•˜๊ฑฐ๋‚˜ ์šฐ์œ„๋ฅผ ๊ฐ€์ง€์ง€๋งŒ, ์ดํ›„ ์„ค์น˜๋ถ€ํ„ฐ๋Š” ํ™•์—ฐํ•˜๊ฒŒ ๋น ๋ฅธ ์„ค์น˜ ์†๋„๋ฅผ ์ž๋ž‘ํ•œ๋‹ค.

์ด๋ฒˆ์—” ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์„ ์‚ดํŽด๋ณด์ž.

npm์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์˜์กด์„ฑ๊ณผ ํ•จ๊ป˜ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค. ์ฆ‰, ์•…์„ฑ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์˜์กดํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ์˜์กด์„ฑ์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ์•…์„ฑ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์œ„ํ—˜์ด ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋ฐ˜๋ฉด, yarn์€ yarn.lock ํŒŒ์ผ์„ ํ™•์ธํ•˜์—ฌ ๊ธฐ์กด์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€์™€ ๋™์ผํ•œ ํŒŒ์ผ์ธ์ง€ ๊ฒ€์ฆํ•œ ๋’ค ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋Ÿฌํ•œ ์œ„ํ—˜์„ ํšจ๊ณผ์ ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ ์„ ๋ณด์™„ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฌ์ „ํžˆ ๋‚จ์•„์žˆ๋Š” ๋‹จ์ ์ด ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ ์œ ๋ น ์˜์กด์„ฑ์ด๋‹ค.

์œ ๋ น ์˜์กด์„ฑ์ด๋ž€, ์ง์ ‘์ ์œผ๋กœ ์„ ์–ธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์˜์กด์„ฑ ํŠธ๋ฆฌ์˜ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ๊ฐ€์ ธ์˜ค๋Š” ๊ฐ„์ ‘ ์˜์กด์„ฑ์œผ๋กœ ์ธํ•ด ์„ค์น˜๋˜๋Š” ์˜์กด์„ฑ์„ ๋งํ•œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด, ๋‚ด๊ฐ€ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”๋กœ ํ•ด์„œ ์„ค์น˜๋˜๋Š” ์˜์กด์„ฑ์ด๋‹ค.

์œ ๋ น ์˜์กด์„ฑ์„ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ‚ค์ง€์˜ ํŠน์ • ์ฝ”๋“œ์— ์‚ฌ์šฉ๋œ๋‹ค๋Š” ์ด์œ  ํ•˜๋‚˜๋งŒ์œผ๋กœ ์„ค์น˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„ ์ €ํ•˜์™€ ๋ณด์™„ ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ• ์ˆ˜ ์žˆ๋‹ค. ์ด ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ๊ฒƒ์ด ๋ฐ”๋กœ yarn berry๋‹ค.

yarn berry

yarn berry๋Š” ์œ„์—์„œ ๋งํ•œ ๋ฌธ์ œ๋ฅผ Plug'nPlay๋ฅผ ์‚ฌ์šฉํ•ด ํ•ด๊ฒฐํ•œ๋‹ค. Plug'n'Play๋Š” ํŒจํ‚ค์ง€๋“ค์„ node_modules์— ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  .yarn/cache์— Zip ์•„์นด์ด๋ธŒ๋กœ ์ €์žฅํ•˜๊ณ , .pnp.cjs๋ฅผ ํ†ตํ•ด ๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.


["react", [
  ["npm:17.0.1", {
    "packageLocation": "./.yarn/cache/react-npm-17.0.1-98658812fc-a76d86ec97.zip/node_modules/react/",
ย ย ย ย "packageDependencies": [
      ["loose-envify", "npm:1.4.0"],
      ["object-assign", "npm:4.1.1"]
    ],
  }]
]],

์œ„ ์˜ˆ์‹œ์ฒ˜๋Ÿผ .pnp.cjs ํŒŒ์ผ์—๋Š” ํŒจํ‚ค์ง€ ์œ„์น˜, ์˜์กด์„ฑ์˜ ๋ชฉ๋ก์ด ์ž‘์„ฑ๋˜์–ด, ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์กด node_modules ํŠธ๋ฆฌ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ์˜์กด์„ฑ์„ ์ฐพ๋Š” ๊ณผ์ •์—์„œ ๋ฒ—์–ด๋‚˜๊ณ , ๊ฐ๊ฐ์˜ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๊ฐ€ zip์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฉด์„œ ํŠธ๋ฆฌ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ–ˆ๋‹ค. ๋˜ํ•œ, .yarn ํด๋” ์ž์ฒด๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ์œผ๋กœ์จ ๋‚ฎ์€ ํฌ๊ธฐ์™€ ๋น ๋ฅธ ์„ค์น˜์†๋„๋ฅผ ์ž๋ž‘ํ•œ๋‹ค.

Last updated