Sam Baek, The Dev's Corner

๐ŸŒŠ yarn๊ณผ npm ๋ฌด์—‡์„ ์‚ฌ์šฉํ• ๋ž˜?

15 Jul 2023

yarn๊ณผ npm


yarn๊ณผ npm์€ ๋‘˜ ๋‹ค JavaScript์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ๋ผ๋Š” ์ ์—์„œ
๊ณตํ†ต์ ์„ ๊ฐ–๋Š”๋‹ค.
์ค‘์š”ํ•œ ์ ์€ ๊ฐ„ํ˜น react์—์„œ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์™•์™• ์žˆ์–ด
๋ฆฌ์•กํŠธ ์˜์กด์ ์ด๋ผ๊ณ  ์˜คํ•ดํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š”๋ฐ
(์ด๋Ÿฐ ๋ง์„ ๋ถ„๋ช… Redux์—์„œ๋„ ํ•œ ์ ์ด ์žˆ๋‹ค.)
์•ž์„œ ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ JS์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ์ด๊ธฐ ๋•Œ๋ฌธ์—
๊ฒฐ์ฝ” ๋ฆฌ์•กํŠธ ์˜์กด์ ์ด์ง€ ์•Š๊ณ  ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜น์€ ํ”„๋ ˆ์ž„์›Œํฌ์—
๊ด€๊ณ„์—†์ด JS ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

yarn๊ณผ npm์€ ๋‘˜ ๋‹ค JS ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ 
์˜์กด์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ณ 
ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

node.js์— ๋Œ€ํ•ด์„œ ํฌ์ŠคํŒ…ํ•  ๋•Œ
2010๋…„๋„์— JavaScript์—์„œ npm ์ƒํƒœ๊ณ„๊ฐ€ ๋“ฑ์žฅํ–ˆ๋‹ค๊ณ 
์–ธ๊ธ‰ํ•œ ์ ์ด ์žˆ๋Š”๋ฐ
์ด ๋ง์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด
npm์ด๋ผ๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ๊ฐ€ ๋“ฑ์žฅํ•˜๊ณ  ๋‚˜์„œ
yarn์ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด๋‹ค.

๊ทธ ๋ง์ธ์ฆ‰์Šจ npm์˜ ๋ช‡๋ช‡ ๋‹จ์ ์ด ์žˆ์—ˆ๊ณ 
๊ทธ๋Ÿฌํ•œ ๋‹จ์ ์„ ๋ณด์•ˆํ•˜๊ณ ์ž yarn์ด ๋“ฑ์žฅํ•œ ๊ฒƒ์ด๋‹ค.
๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ npm์˜ ๋‹จ์ ์„ ๋จผ์ € ์‚ดํŽด๋ณด๊ณ 
yarn์ด ๋ณด์•ˆํ•œ ๋ถ€๋ถ„์ด ๋ฌด์—‡์ธ์ง€, ์™œ ์‚ฌ๋žŒ๋“ค์ด ์“ฐ๊ฒŒ ๋๋Š”์ง€
์‚ดํŽด๋ณด๊ณ ์ž ํ•œ๋‹ค.

npm์˜ ๋‹จ์ 


npm์€ ์„ฑ๋Šฅ ์ด์Šˆ๊ฐ€ ์žˆ๋Š”๋ฐ ๋ฌด์Šจ ๋ง์ด๋ƒ๋ฉด
์ดˆ๊ธฐ ํŒจํ‚ค์ง€ ์„ค์น˜ ์‹œ ์†๋„๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
ํŠนํžˆ๋‚˜ ํ”„๋กœ์ ํŠธ์˜ ์˜์กด์„ฑ์ด ๋งŽ์„ ๊ฒฝ์šฐ npm ์„ค์น˜๋Š” ์ƒ๋‹นํžˆ ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

๋˜ํ•œ, npm์€ ์ข…์†์„ฑ ํ•ด๊ฒฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ
ํŠน์ • ํŒจํ‚ค์ง€์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์ด ์žˆ๋‹ค๋ฉด ์ด ์ฐจ์ด๋กœ ์ธํ•ด
์˜์กด์„ฑ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

npm์€ ์ดˆ๊ธฐ์— ๋ณด์•ˆ ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ
ํŒจํ‚ค์ง€๋“ค์„ ๋‹ค์šด๋กœ๋“œ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ณด์•ˆ ์œ„ํ—˜์˜ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์—ˆ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  npm์€ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ์„œ ๋™์ž‘์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ
ํ”„๋กœ์ ํŠธ์˜ ์˜์กด์„ฑ์ด ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์–ด ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค.

์ด๋Ÿฌํ•œ ๋‹จ์ ๋“ค์€ yarn์„ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ ์ด์œ ๊ฐ€ ๋˜์—ˆ๊ณ 
yarn์€ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ๋ณด์•ˆํ•˜๊ณ ์ž ๋“ฑ์žฅํ–ˆ๋‹ค.

yarn์˜ ์ด์ 


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

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

yarn์€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ณด์•ˆ ๊ฒ€์‚ฌ๋ฅผ ์‹ค์‹œํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋งŒ ๊ณจ๋ผ์„œ ์„ค์น˜ํ•œ๋‹ค.
์š”์ฆ˜ npm๋„ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์žˆ์ง€๋งŒ
yarn์€ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ํŒจํ‚ค์ง€ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด์™”๊ณ  ์•ˆ์ „์„ฑ์„ ๊ฐ•ํ™”ํ•ด์™”๋‹ค

yarn์€ npm๋ณด๋‹ค ๋” ๋งŽ์€ ๋ช…๋ น์–ด์™€ ์˜ต์…˜์„ ์ œ๊ณตํ•˜๊ณ 
์ž‘์—…์„ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด์„œ๋„ ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋™์ž‘๋งŒ์„ ์ œ๊ณตํ•ด
ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณด๋‹ค ์•ˆ์ •์ ์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  ํ˜ธํ™˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

npm๋ณด๋‹ค yarn๋งŒ์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”๊ฐ€ ?


์ ˆ๋Œ€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค.
npm์˜ ์—ญ์‚ฌ๊ฐ€ yarn์˜ ์—ญ์‚ฌ๋ณด๋‹ค ๊ธธ๋‹ค๋Š” ๊ฒƒ์€
๊ทธ๋งŒํ•œ ์ด์ ์ด ์กด์žฌํ•œ๋‹ค๋Š” ์˜๋ฏธ๊ธฐ๋„ ํ•˜๋‹ค.
npm์€ Node.js์˜ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋กœ์„œ
Node๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๊ธฐ๋ณธ ๋‚ด์žฅ์ด ๋˜์–ด์žˆ์–ด ๋ณ„๋„ ์„ค์น˜๊ฐ€ ํ•„์š”์—†๊ณ 
yarn์€ ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค.

๋˜ํ•œ, npm์€ 5๋ฒ„์ „๋ถ€ํ„ฐ yarn๊ณผ ๋น„์Šทํ•œ ํ”„๋กœ์ ํŠธ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋ฐ
๋ชจ๋“  ์ข…์†์„ฑ์ด ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— ์„ค์น˜๋˜์—ˆ๋˜ ์ „๊ณผ๋Š” ๋‹ฌ๋ฆฌ
์˜์กด์„ฑ์ด ๋ณด๋‹ค ์ฒด๊ณ„์ ์ธ ๊ตฌ์กฐ๋กœ ์„ค์น˜ ๋ผ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์˜ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์กŒ๋‹ค.

npm์€ npx๋ฅผ ์ œ๊ณตํ•ด ์ „์—ญ ์„ค์น˜๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
npm registry๋„ npm์˜ ๊ธฐ๋Šฅ์œผ๋กœ ํŒจ์ง€ํ‚ค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์šด์˜ํ•ด
๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋“ฑ๋ก ๋œ ์ƒ๋‹นํ•œ ์˜คํ”ˆ ์†Œ์Šค ํŒจํ‚ค์ง€๋“ค์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ ์€ ์•„๋‹ˆ๊ฒ ์ง€๋งŒ
npm์€ ์˜ค๋ž˜ ์‚ฌ์šฉ๋œ๋งŒํผ ์‚ฌ์‹ค ๊ฐœ๋ฐœ์ž๋“ค์˜ ์„ ํ˜ธ๋„๋‚˜
์‹ ๋ขฐ๋„๊ฐ€ yarn์— ๋น„ํ•ด ๋†’์€ ํŽธ์ด๋ผ๊ณ  ์•Œ๋ ค์ ธ์žˆ๋‹ค.