npm vs yarn

Facebook์—์„œ ๋งŒ๋“  ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €. npm๋ณด๋‹ค ๋น ๋ฅธ ํŒจํ‚ค์ง€ ์„ค์น˜(๋ณ‘๋ ฌ ์„ค์น˜)๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์ž๋™ yarn.lock ํŒŒ์ผ ์ƒ์„ฑ์„ ํ†ตํ•ด ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ž ๊ธˆ์„ ์ง€์›ํ•œ๋‹ค.

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

ํ”„๋กœ์ ํŠธ์˜ ์˜์กด์„ฑ ์„ค์น˜์™€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๋„์™€์ฃผ๋Š” ์˜์กด์„ฑ ๊ด€๋ฆฌ ํˆด

npm (Node Package Manager)

Node.js์˜ ํ‘œ์ค€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ์˜ ์˜์กด์„ฑ ์„ค์น˜์™€ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•œ๋‹ค.

npm vs yarn

yarn ๋˜ํ•œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋กœ์„œ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์™œ ์‚ฌ์šฉํ•˜๋‚˜์š”~?

  1. ์˜์กด์„ฑ(=ํŒจํ‚ค์ง€)์€ JSON ํŒŒ์ผ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ, ์ด ํŒŒ์ผ์—” ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜์กดํ•˜๋Š” ํŒจํ‚ค์ง€ ์ด๋ฆ„๊ณผ ๋ฒ„์ „์ด ๊ธฐ๋ก๋˜์–ด ์žˆ๋‹ค. JSON ํŒŒ์ผ์˜ ์˜์กด์„ฑ ๋ฒ„์ „ ์•ž์— ^ (์บ๋Ÿฟ) ๋˜๋Š” ~ (ํ‹ธํŠธ)๊ฐ€ ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค๋ฉด ํŒจํ‚ค์ง€์˜ ์ตœ์‹  ๋ฒ„์ „์ด ๋ฆด๋ฆฌ์ฆˆ ๋์„๊ฒฝ์šฐ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜์‹œ ์ƒˆ๋กœ์šด ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ฒŒ ๋˜๋ฏ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ฐ„์˜ ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋กœ ์ธํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ค์ž‘๋™์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ž๋™ lock ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” yarn์„ ์‚ฌ์šฉ. (npm v5.0๋ถ€ํ„ฐ package-lock.json ์„ ์ œ๊ณตํ•จ)

  2. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ณ‘๋ ฌ ์„ค์น˜๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ๋น ๋ฅธ ์†๋„๋ฅผ ์ œ๊ณตํ•œ๋‹ค. (์ตœ๊ทผ npm ๋˜ํ•œ ๋งŽ์€ ์„ฑ๋Šฅ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ ธ ์†๋„์ฐจ์ด๋Š” ๊ฑฐ์˜ ์—†๋‹ค๊ณ  ํ•œ๋‹ค)

  3. npm์€ ์ž๋™์œผ๋กœ ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ์ด ํŠน์ง•์€ ํŽธ๋ฆฌํ•˜์ง€๋งŒ ์•ˆ์ •์„ฑ์„ ์œ„ํ˜‘ํ•  ์ˆ˜ ์žˆ๋‹ค. yarn์€ yarn.lock ๋˜๋Š” package.json์— ๋ช…์‹œ๋œ ํŒจํ‚ค์ง€๋งŒ ์„ค์น˜ํ•œ๋‹ค.

์ฐธ์กฐ

npm yarn ๋ฌด์—‡์ด๊ณ  ์–ด๋–ค ์ฐจ์ด??

Last updated