Package Manager

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ ์™€์ฃผ๋Š” ์‹œ์Šคํ…œ

์†Œ์Šค์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๊ฐœ๋ฐœํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ๋“ค์„ ํŒจํ‚ค์ง€๋ผ ๋ถ€๋ฅธ๋‹ค.

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์˜ ํ•„์š”์„ฑ

  • ํ”„๋กœ์ ํŠธ์— ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•ด์„œ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ธฐ ์œ„ํ•จ

  • ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ

Phantom Dependency

  • ์ด์ „์— ์‚ฌ์šฉ๋˜๋˜ npm2์˜ ์˜์กด์„ฑ ๊ด€๋ฆฌ ๋ฐฉ์‹์€ ์„ค์น˜ํ•œ ๋ชจ๋“ˆ์ด ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ์ค‘์ฒฉ๋œ ๋ฐฉ์‹์œผ๋กœ ์„ค์น˜ํ•˜์—ฌ, ์—ฌ๋Ÿฌ ์‚ฌ์†Œํ•œ ๋ฌธ์ œ๋“ค์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

    • ์œˆ๋„์šฐ์˜ ๊ฒฝ์šฐ ํด๋”์˜ ๊ธธ์ด์˜ ์ œํ•œ์ด ์žˆ์–ด ์ค‘์ฒฉ์ด ๊นŠ์€ ๊ฒฝ์šฐ ์ด๋ฆ„์ด ๊ธธ์–ด์ ธ ์ด์Šˆ ๋ฐœ์ƒ

    • ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ๋™์ผํ•œ ํŒจํ‚ค์ง€์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์— ์˜์กดํ•  ๊ฒฝ์šฐ, ํ”„๋กœ์ ํŠธ์—๋Š” ์ค‘๋ณต๋œ ๋ชจ๋“ˆ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์„ค์น˜๋˜์–ด ์ €์žฅ ๊ณต๊ฐ„์„ ๋‚ญ๋น„ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฒ„์ „ ์ถฉ๋Œ๊ณผ ๊ฐ™์€ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • npm3๊ณผ Yarn์€ ์ค‘๋ณต ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“ˆ์˜ ์˜์กด์„ฑ ๊ตฌ์กฐ๋ฅผ ํ”Œ๋žซํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ

  • ๊ทธ๋กœ์ธํ•ด ์ง์ ‘ ์„ค์น˜ํ•˜์ง€ ์•Š์€ ์˜์กด์„ฑ๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š”๋ฐ ์ด๊ฒƒ์„ phantom dependency๋ผ ๋ถ€๋ฅธ๋‹ค.

  • pnpm์€ ํ”Œ๋žซ ๊ตฌ์กฐ๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ์ค‘์ฒฉ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ phantom dependency ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

  • Yarn Berry ๋Š” node_modules ๋ฐฉ์‹์ด ์•„๋‹Œ ์—„๊ฒฉํ•œ ์˜์กด๊ด€๊ณ„๋กœ ์ธํ•ด phantom dependency๊ฐ€ ๋ฐœ์ƒ ํ•˜์ง€ ์•Š์Œ

Yarn Berry๋Š” 2020๋…„์— ์ถœ์‹œํ•œ Yarn์˜ ์ƒˆ๋กœ์šด ๋ฒ„์ „

node_modules ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์••์ถ• ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ๊ฐœ๋…(Plug & Play)์„ ๋„์ž…ํ•˜์—ฌ ์„ค์น˜ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์„ ์„ ๋ณด์ž„

Last updated