๐Ÿค ์€์ง€log ๐Ÿค

NPM ๊ณผ YARN ๋ณธ๋ฌธ

๐ŸŒธ Library

NPM ๊ณผ YARN

Eun_zii 2022. 11. 8. 14:10

NPM(Node Package Manager)

์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์œ„ํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ, Node.js์˜ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ž…๋‹ˆ๋‹ค.

์ „์„ธ๊ณ„์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์€ ์ด๋“ค์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ํˆด์ด์ฃ . ์ด๋Ÿฌํ•œ ๊ด€๋ฆฌ ํˆด์„ ์ด์šฉํ•˜์—ฌ Node.js๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋“ˆ์„ ์›น์—์„œ ๋ฐ›์•„์„œ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ๋‹จ ๋ช‡ ์ค„์˜ command๋กœ ๊ธฐ์กด ๊ณต๊ฐœ๋œ ๋ชจ๋“ˆ๋“ค์„ ์„ค์น˜ํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (Java์—์„œ maven๊ณผ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.) ๋˜ํ•œ ๊ทธ๋ ‡๊ฒŒ ์„ค์น˜๋œ ๋ชจ๋“ˆ๋“ค์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ๋Š”์ง€๋ฅผ ์ฒดํฌํ•ด์ฃผ๋Š” ๋“ฑ JavaScript๋กœ ์ง„ํ–‰ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ต‰์žฅํžˆ ํŽธํ•˜๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

command-line client์ธ npm๊ณผ ์˜จ๋ผ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ npm registry๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ command-line client๋ฅผ npm์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ, ์‹ค์ œ๋กœ npm์—๋Š” npm registry๊นŒ์ง€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ npm์ด ์—†์—ˆ์„ ๋•Œ์—๋Š” ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ github๋ฅผ ํ†ตํ•ด ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ถˆํŽธ์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜ํƒ€๋‚ฌ์œผ๋ฉฐ, Node.js๋ฅผ ์„ค์น˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด(๊ธฐ๋ณธ์ ์œผ๋กœ npm์€ Node.js ๋‚ด์— ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค) ๋ช…๋ น์–ด ํ•œ ์ค„๋กœ ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

npm ๋ช…๋ น์–ด

npm์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช‡๊ฐ€์ง€ ๋ช…๋ น์–ด๋ฅผ ์•Œ์•„๋‘˜ ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ, ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” npm ๋ช…๋ น์–ด๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

  • npm init : package.json ์ƒ์„ฑ
  • npm install : package.json ํŒŒ์ผ ๋ฐ ํ•ด๋‹น ์ข…์†์„ฑ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ์„ค์น˜
  • npm install <package_name>@๋ฒ„์ „ : ํŠน์ • ํŒจํ‚ค์ง€์˜ ํŠน์ • ๋ฒ„์ „ ์„ค์น˜
  • npm install <URL> : ํŠน์ • ์ €์žฅ์†Œ ๋‚ด ํŒจํ‚ค์ง€ ์„ค์น˜. ์ฃผ๋กœ github์„ ์ด์™€ ๊ฐ™์ด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • npm install <package_name> -g : ์˜ต์…˜. ๊ธ€๋กœ๋ฒŒ๋กœ ์„ค์น˜. ๋กœ์ปฌ์˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋„ ์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • npm uninstall : ํŒจํ‚ค์ง€ ์‚ญ์ œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • npm update : ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ์—…๋ฐ์ดํŠธํ•ด์ค๋‹ˆ๋‹ค.
  • npm dedupe : ์ค‘๋ณต ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋“ค์„ ์ •๋ฆฌํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.

package.json

์€ ํ”„๋กœ์ ํŠธ ์ •๋ณด์™€ ์˜์กด์„ฑ(dependencies)์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ํŒจํ‚ค์ง€(์˜คํ”ˆ์†Œ์Šค)๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€, ์–ด๋–ค ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋“ฑ์„ ๊ธฐ๋กํ•จ์œผ๋กœ์จ ์–ด๋Š ๊ณณ์—์„œ๋„ ๋™์ผํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.


 

yarn

์€ ํŽ˜์ด์Šค๋ถ์—์„œ ๋งŒ๋“  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ž…๋‹ˆ๋‹ค. npm๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์ฃ . ๊ทธ๋ ‡์ง€๋งŒ ์‚ฌ์‹ค npm๊ณผ yarn์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ง€ ์•Š์•„๋„ ์–ด๋Š์ •๋„ ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹  ๋ถ„๋“ค์€ yarn์ด ์กฐ๊ธˆ ๋” ๊ฐ€๋ณ๋‹ค๋Š” ๋Š๋‚Œ์„ ๋ฐ›์•„๋ณด์…จ์„๊ฑฐ๋ผ ์ƒ๊ฐํ•ด์š”. ๊ทธ ์ด์œ ๋Š” yarn์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ์— ์žˆ์Šต๋‹ˆ๋‹ค.
yarn์€ ๊ธฐ๋ณธ์ ์œผ๋กœ npm์˜ ๋‹จ์ ์„ ๋Š๊ผˆ๊ธฐ์— ์ด๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๋งค๋‹ˆ์ € ํˆด์ธ๋ฐ, ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š”

npm์˜ ๋‹จ์ ์œผ๋กœ๋Š” ์†๋„(performance), ์•ˆ์ •์„ฑ(stability), ๋ณด์•ˆ์„ฑ(security) ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์†๋„(perfomance)

yarn์€ ๋‹ค์šด๋ฐ›์€ ํŒจํ‚ค์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ(cache)์— ์ €์žฅํ•˜์—ฌ, ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค์šด๋กœ๋“œํ•˜์ง€์•Š๊ณ , ์บ์‹œ์— ์ €์žฅ๋œ ํŒŒ์ผ์„ ํ™œ์šฉํ•จ์œผ๋กœ์จ ์ด๋ก ์ ์œผ๋กœ npm์— ๋น„ํ•ด ํŒจํ‚ค์ง€ ์„ค์น˜์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋˜ํ•œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— performance์™€ speed๊ฐ€ ์ฆ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. (npm์€ ์ˆœ์ฐจ์ )

 

์•ˆ์ •์„ฑ(stability)/๋ณด์•ˆ์„ฑ(security)

npm์€ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋  ๋•Œ ์ž๋™์œผ๋กœ ์ฝ”๋“œ์™€ ์˜์กด์„ฑ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํŠน์ง•์€ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์ด์ง€๋งŒ ์•ˆ์ •์„ฑ์„ ์œ„ํ˜‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ๋‚˜ ๋ณด์žฅ๋œ ์ •์ฑ… ์—†์ด ๋“ฑ๋กํ•œ ํŒจํ‚ค์ง€๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๋”์šฑ ์œ„ํ—˜๋„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด yarn์€ yarn.lock์ด๋‚˜ package.json์œผ๋กœ ๋ถ€ํ„ฐ ์„ค์น˜๋งŒ ํ•˜๋ฉฐ,

yarn.lock์€ ๋ชจ๋“  ๋””๋ฐ”์ด์Šค์— ๊ฐ™์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„์ „์˜ ์ฐจ์ด๋กœ ์ธํ•ด ์ƒ๊ธฐ๋Š” ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•ด์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yarn ๋ช…๋ น์–ด

 

  • yarn init : package.json ์ƒ์„ฑ
  • yarn or yarn install : package.json ํŒŒ์ผ ๋ฐ ํ•ด๋‹น ์ข…์†์„ฑ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ์„ค์น˜
  • yarn add <package_name>@๋ฒ„์ „ : ํŠน์ • ํŒจํ‚ค์ง€์˜ ํŠน์ • ๋ฒ„์ „ ์„ค์น˜
  • yarn add <URL> : ํŠน์ • ์ €์žฅ์†Œ ๋‚ด ํŒจํ‚ค์ง€ ์„ค์น˜. ์ฃผ๋กœ github์„ ์ด์™€ ๊ฐ™์ด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • yarn global add <package_name> : ์˜ต์…˜. ๊ธ€๋กœ๋ฒŒ๋กœ ์„ค์น˜. ๋กœ์ปฌ์˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋„ ์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • yarn remove : ํŒจํ‚ค์ง€ ์‚ญ์ œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • yarn upgrade : ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ์—…๋ฐ์ดํŠธํ•ด์ค๋‹ˆ๋‹ค.
  • npm dedupe : ์ค‘๋ณต ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋“ค์„ ์ •๋ฆฌํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.

 

yarn์˜ ๋ณ‘๋ ฌ์  ํŒจํ‚ค์ง€ ์„ค์น˜๋กœ ์ธํ•œ ๊ฐ€๋ฒผ์›€, ๋˜ํ•œ ๋ฒ„์ „์˜ ์ฐจ์ด๋กœ ์ธํ•œ ๋ฒ„๊ทธ ๋ฐฉ์ง€ ๋“ฑ์˜ ๊ธฐ๋Šฅ์€ yarn์ด npm๋ณด๋‹ค ๋” ์ข‹์€ ํˆด์ด๋ผ๊ณ  ์„ค๋ช…ํ•˜๊ธฐ ์ถฉ๋ถ„ํ•œ ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€๋งŒ npm ์—ญ์‹œ ๋ถ„๋ช…ํ•œ ์žฅ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์‚ฌ์šฉ์ž ์ˆ˜์™€ ์ ‘๊ทผ์„ฑ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๋ฆฌ yarn์ด ์ข‹๋‹ค๊ณ  ํ•œ๋“ค, ์›์กฐ๋Š” ์ด๊ธธ ์ˆ˜ ์—†๋Š” ๋ฒ•, perfomance ์ƒ์œผ๋กœ ํ™•์—ฐํžˆ yarn์—๊ฒŒ ๋’ค์ณ์ง€๋˜ ๋•Œ์—๋„ npm์€ ๊ตณ๊ฑดํžˆ packaged manager ๋“ค ์ค‘ ๊ฐ€์žฅ ์‚ฌ์šฉ์ž๋ฅผ ๋งŽ์ด ๋ณด์œ ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ€์žฅ ๋งŽ์€ ์‚ฌ์šฉ์ž๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์šฐ์ˆ˜ํ•œ ์ ‘๊ทผ์„ฑ์ด ์ด๋Ÿฌํ•œ ํ˜„์ƒ์„ ์•ผ๊ธฐํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. yarn์˜ ๊ฒฝ์šฐ๋Š” brew๋‚˜ npm์„ ํ†ตํ•ด ํ•œ๋ฒˆ ๋” ์„ค์น˜๋ฅผ ํ•ด์ค˜์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๊ฐ์ž์˜ ์žฅ๋‹จ์ ์ด ๋šœ๋ ทํ•˜๊ณ  ์‹ค์งˆ์ ์ธ ์„ฑ๋Šฅ์—์„œ๋Š” yarn์ด ๊ทผ์†Œํ•˜๊ฒŒ ์•ž์„œ๊ณ  ์žˆ์ง€๋งŒ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด์‹œ๋Š” ๋ถ„๋“ค์—๊ฒŒ npm์„ ์ถ”์ฒœ๋“œ๋ฆฌ๋Š” ์ด์œ ๋Š” ์ผ๋‹จ npm์„ ์ง์ ‘ ์‚ฌ์šฉํ•ด๋ณด์•„์•ผ yarn์˜ ํ•„์š”์„ฑ์— ๋Œ€ํ•ด ํŒ๊ฐ€๋ฆ„์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€๋‹ค์ˆ˜ yarn์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์‹  ๋ถ„๋“ค์„ ๋ณด๋ฉด npm์„ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ package๋“ค ๊ฐ„์˜ ๋ฒ„์ „ ๋ฌธ์ œ๋กœ ์ธํ•ด ์—๋Ÿฌ๋ฅผ ๊ฒช์–ด๋ณธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

 

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

 

 

๐Ÿ”† NPM ๊ณผ YARN, ํ˜ผ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ด์œ 

 

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ yarn ๋˜๋Š” npm์ค‘ ํ•˜๋‚˜๋ฅผ ์ผ๊ด„์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๊ฐ€๋”์”ฉ ์‹ค์ˆ˜๋กœ ํ˜ผ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น๋‹ˆ๋‹ค.

npm๊ณผ yarn์€ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์ถฉ๋Œ์ด ๋‚  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฐ€๊ธ‰์ ์ด๋ฉด ํ˜ผ์šฉํ•˜์ง€ ์•Š๋Š”๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

 

yarn์€ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์™€ ์ข…์†๋˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์ผ๋ ฌ๋กœ ๋‚˜์—ดํ•œ ๋’ค ์„ค์น˜ ํŒจํ‚ค์ง€๋กœ ๋งํฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ,

ํŒจํ‚ค์ง€ ์ค‘๋ณต์ด ์ œ๊ฑฐ๋˜์–ด ์ ์€ ์šฉ๋Ÿ‰์œผ๋กœ ๋น ๋ฅธ ์‹คํ–‰์„ ๊พ€ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐ yarn์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋กœ ์ธํ•œ ๋“œ๋ฌธ ์ผ€์ด์Šค๋กœ ํŒจํ‚ค์ง€ ์ถฉ๋Œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

npm์€ ๊ฐ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋ณ„๋กœ ์„œ๋ธŒํŒจํ‚ค์ง€๋ฅผ ์ด๋ฃจ๋Š” ํ˜•์‹์œผ๋กœ, ๊ฐ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์˜ ๋…๋ฆฝ์„ฑ์ด ๋ณด์žฅ๋˜์ง€๋งŒ ํŒจํ‚ค์ง€ ์ค‘๋ณต์œผ๋กœ ์ธํ•œ ํฌ๊ธฐ๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ์ปค์ง„๋‹ค.

 

lock ํŒŒ์ผ์€ ๋‘˜ ๋‹ค ์žˆ์–ด๋„ ์ƒ๊ด€์€ ์—†์ง€๋งŒ, npm install ์ด๋˜ yarn add ๋ฉด ํ•œ ๋ฒˆ ์‹œ์ž‘ํ•˜๋ฉด ๋๊นŒ์ง€ ์‚ฌ์šฉํ–ˆ๋˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒŒ ํŒจํ‚ค์ง€ ์ถฉ๋Œ ์˜ค๋ฅ˜๋ฅผ ๋ง‰๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

โœ… NPM ๊ณผ YARN install

npm ๊ณผ yarn ์„ ๋™์‹œ์‚ฌ์šฉ ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ๋งŽ์ด ๋ดค๋Š”๋ฐ ๊ทธ๊ฑด ์–ด๋–ป๊ฒŒํ•˜๋Š”๊ฑด์ง€ ๊ถ๊ธˆํ–ˆ์—ˆ๋‹ค.. ๐Ÿง

 

์˜ˆ์‹œ) ์–ด๋–ป๊ฒŒ ์ด๋Ÿฐ์‹์œผ๋กœ npm ๊ณผ yarn ์œผ๋กœ ๋‘˜๋‹ค ์„ค์น˜ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š”๊ฑธ๊นŒ,,

 

ํ˜ผ์šฉ ๋˜๋Š” ๋™์‹œ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š” ๊ธ€๋“ค์„ ๋ดค์–ด์„œ ๋”์šฑ ํ˜ผ๋ž€์Šค๋Ÿฌ์› ์–ด์„œ 

๊ธฐ์กด ๋งŒ๋“ค์–ด๋‘” npm library๋ฅผ ์š”๋ฆฌ์กฐ๋ฆฌ ๋งŒ์ ธ๋ณด์•˜์—ˆ๊ณ , " Yarn Package๋ฅผ ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด๋ณด์ž! " ํ–ˆ์—ˆ๋Š”๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ

๐Ÿ’ก yarn ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ ํ›„ ๋‚ด๊ฐ€๋งŒ๋“ค์–ด๋‘” npm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ add๋กœ ๋ฐ›์•„์ฃผ๋ฉด ๋œ๋‹ค !_!

๊ธฐ์กด npm์—์„œ dependencies ๋ฅผ ์ถ”๊ฐ€ํ•˜๋“ฏ์ด yarn์—๋„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๐Ÿ’ก

 

npm install -g yarn

์œ„ ๋ช…๋ น์–ด๋กœ yarn ์„ค์น˜ ํ•ด์ค๋‹ˆ๋‹ค.

 

yarn --version

 

์œ„ ๋ช…๋ น์–ด๋กœ yarn์ด ์„ค์น˜๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

init์œผ๋กœ package.json์„ ์ƒ์„ฑํ•ด์ฃผ์‹œ๊ณ  npm package๋ฅผ addํ•ด์ฃผ์‹œ๋ฉด ๋!

yarn ๋ช…๋ น์–ด

  • yarn init : package.json ์ƒ์„ฑ
  • yarn or yarn install : package.json ํŒŒ์ผ ๋ฐ ํ•ด๋‹น ์ข…์†์„ฑ์— ๋‚˜์—ด๋œ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ์„ค์น˜
  • yarn add <package_name>@๋ฒ„์ „ : ํŠน์ • ํŒจํ‚ค์ง€์˜ ํŠน์ • ๋ฒ„์ „ ์„ค์น˜
  • yarn add <URL> : ํŠน์ • ์ €์žฅ์†Œ ๋‚ด ํŒจํ‚ค์ง€ ์„ค์น˜. ์ฃผ๋กœ github์„ ์ด์™€ ๊ฐ™์ด ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • yarn global add <package_name> : ์˜ต์…˜. ๊ธ€๋กœ๋ฒŒ๋กœ ์„ค์น˜. ๋กœ์ปฌ์˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋„ ์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • yarn remove : ํŒจํ‚ค์ง€ ์‚ญ์ œ ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
  • yarn upgrade : ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ์—…๋ฐ์ดํŠธํ•ด์ค๋‹ˆ๋‹ค.
  • npm dedupe : ์ค‘๋ณต ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋“ค์„ ์ •๋ฆฌํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.

 

 

 

728x90