03. Yarn, ํ•˜ํ’ˆ ์•„๋‹˜

Gardenerยท2024๋…„ 2์›” 19์ผ

Prog_PRJ

๋ชฉ๋ก ๋ณด๊ธฐ
3/6

๐Ÿ˜ช

Yarn์€ ํ•˜ํ’ˆ์ด ์•„๋‹ˆ๋‹ค. ๋‚˜๋Š” ํ•˜ํ’ˆ์ด ์˜์–ด๋กœ Yarn์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ, Yawn์ด์—ˆ๋‹ค.

-01. ํ”„๋กœ์ ํŠธ ์‹œ์ž‘

ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ์–ด๋ ค์šด ๊ฒƒ์ด ๋ฌด์—‡์ธ ์ค„ ์•„๋Š”๊ฐ€? ๊ตฌํ˜„? ํ™˜๊ฒฝ ์„ธํŒ…? ๋ฐ”๋กœ ๊ธฐํš์ด๋‹ค. ๊ธฐํš์˜ ์กฐ์œจ์€ ํ”„๋กœ์ ํŠธ์˜ A ~ Y๋‹ค. ๋‚˜๋Š” ๊ธฐํš์ด ์ด๋ ‡๊ฒŒ ์–ด๋ ค์šด ๊ฒƒ์ธ ์ค„ ๋ชฐ๋ž๋‹ค. ๋‚˜๋Š” ํ•œ ํ‰์ƒ ๋‚ด ์‚ถ์˜ ๋ช…ํ™•ํ•œ ๊ธฐ์ค€์ด ์žˆ์ง€๋งŒ ๋ฌผ๋ ๋ฌผ๋ ํ•œ ์‚ฌ๋žŒ์œผ๋กœ, ์ฃผ์ œ๋ฅผ ๋งค๋ฒˆ ๊ธˆ๋ฐฉ๊ธˆ๋ฐฉ ์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ํ•˜๋ฃจ์ข…์ผ์— ๊ฑธ์นœ ํšŒ์˜ ํ›„์— ๋‚˜๋Š” ์ •๋ง๋กœ PM์ด ํ•˜๊ณ  ์‹ถ์–ด์ง„ ์‚ฌ๋žŒ์ด ๋˜์—ˆ๋‹ค. ์ด ์‚ฌํšŒ์—๋Š”, ๋Œ€ํ™”๋ฅผ ์ค‘์žฌํ•˜๊ณ , ์ฃผ์ œ๋ฅผ ์ •๋ฆฌํ•˜๋ฉฐ, ๋„“๊ณ  ์–•์€ ์ง€์‹์œผ๋กœ ๋ชจ๋“  ์ง๋ฌด์— ๊ด€์—ฌํ•  ์‚ฌ๋žŒ์ด ๋ฌด์กฐ๊ฑด ํ•„์š”ํ•˜๋‹ค. ๋‚˜๋Š” ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๋Š” ๊ฒƒ์ด ์ด๋ฒˆ 2ํ•™๊ธฐ์˜ ์ค‘๊ฐ„์˜ ๋ชฉํ‘œ์ด๋‹ค.

๋‹ค์‹œ ๋ณธ๋ก ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ, ๊ธฐํš์˜๋„๊ฐ€ ์ •ํ•ด์ง€์ง€๋Š” ์•Š์•˜์ง€๋งŒ, ํ”„๋ก ํŠธ์—์„œ์˜ ๊ธฐ์ˆ ์Šคํƒ๊ณผ ๊ณต๋ถ€ํ•  ๋ชฉ๋ก์€ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค. ๋™์ผํ•œ ์„ธํŒ…, ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•œ ์ž‘์—…์ด๊ณ  ์šฐ๋ฆฌ๋Š” npm๊ณผ yarn ์ค‘์—์„œ yarn์„ ์„ ํƒํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. npm์€ ์•„๋ฌด ์ƒ๊ฐ์—†์ด node.js๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค. (Vue๋„ npm์œผ๋กœ ๋™์ž‘์„ ์‹œ์ผฐ๋‹ค.) yarn์„ ์•Œ๊ธฐ ์ „์— ๊ทธ๋ž˜์„œ npm๋ถ€ํ„ฐ ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

npm
: ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌ

์ด๋Ÿฐ npm์€ ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.
1. ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋™์ž‘์ด ๋‹ฌ๋ผ์ง„๋‹ค.
: ์‚ฌ์šฉํ•˜๋ ค๋Š” ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋ฉด, ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ node_modules๋ฅผ ๊ณ„์† ๊ฒ€์ƒ‰ํ•œ๋‹ค. ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋Š”๊ฐ€? ํ™˜๊ฒฝ์€ ์–ด๋–ป๊ฒŒ ๋˜์–ด์žˆ๋Š”๊ฐ€?์— ๋”ฐ๋ผ, ๋‹ค๋ฅธ ์˜์กด์„ฑ์„ ์ž˜๋ชป ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
2. ๋น„ํšจ์œจ์ ์ธ ์„ค์น˜
: node_modules๋Š” ๋งค์šฐ ํฐ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•œ๋‹ค. (๊ทธ๋ž˜์„œ .gitignore ์—๋„ ๋“ค์–ด์žˆ๊ธฐ๋„ ํ–ˆ๊ณ !) ๋งŽ์€ ํŒŒ์ผ๋“ค์ด ๊น”๋ ค์žˆ๋Š” ๋ฌธ์ œ๋“ค๋กœ ์ธํ•ด, ์ด ๋‚ด์šฉ๋“ค์ด ๊ฒ€์ฆ๋œ๊ฒƒ์ธ์ง€? ์˜์กด์„ฑ์ด ์ž˜ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์›€.
3. ์œ ๋ น ์˜์กด์„ฑ
์ถœ์ฒ˜ : https://toss.tech/article/node-modules-and-yarn-berry
์œ„์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ธฐ์กด์˜ npm์—์„œ๋Š” ์˜์กด์„ฑ ํŠธ๋ฆฌ๊ฐ€ ์™ผ์ชฝ๊ณผ ๊ฐ™์€ ๋ชจ์Šต์„ ํ•˜๊ณ  ์žˆ์–ด์„œ ๋งŽ์€ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•ด์•ผํ–ˆ๋‹ค๋ฉด, yarn-berry์˜ ์‚ฌ์šฉ์—์„œ๋Š” ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•ด์•ผํ•˜๋Š” ๋ถ€๋ถ„์„ ์ค„์˜€๋‹ค. ๋˜ํ•œ ์ด ๊ณผ์ •์—์„œ npm์€ ํ”„๋กœ์ ํŠธ์— ์‹ค์ œ์ ์œผ๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€๊นŒ์ง€ ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— volume์ด ์ปค์งˆ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด yarn์ด ์ถœ์‹œ ๋˜์—ˆ๋‹ค.

Yarn

yarn
: meta์— ์˜ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, Plug & Play ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๊ด€๋ฆฌ

์œ„์˜ ๋‹จ์ ๋“ค์„ ์ „๋ถ€ ๋ณด์™„ํ•œ ํ˜•ํƒœ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์œ„์˜ ๋‹จ์ ๋“ค์„ ๋ณด์™„ํ•œ ํ˜•ํƒœ. yarn์€ node_modules๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋Š” ๋Œ€์‹ ์— '.yarn/cache'ํด๋”์— ์˜์กด์„ฑ์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๊ณ , '.pnp.cjs' ํŒŒ์ผ์— ์˜์กด์„ฑ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๊ฐ€ ์ œ๊ณต๋˜์–ด, ํŒจํ‚ค์ง€๊ฐ€์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•˜๊ณ  ์œ„์น˜ํ•˜๋Š”์ง€ ๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

Yarn์˜ ์žฅ์ 

  1. ์†๋„
  2. ๋ณด์•ˆ
  3. ๋ฒ„์ „๊ด€๋ฆฌ์˜ ์ผ๊ด€์„ฑ
  1. ์†๋„ : Yarn์€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ฉด์„œ npm๋ณด๋‹ค ํŒจํ‚ค์ง€ ์„ค์น˜ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ์ด๋ฏธ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋Š” ๋กœํŽ„ ์บ์‹œ์— ์ €์žฅํ•˜์—ฌ, ์žฌ์‚ฌ์šฉํ•จ์œผ๋กœ ๋น ๋ฅด๋‹ค.
  2. ๋ณด์•ˆ : Yarn์€ ์„ค์น˜ ๊ณผ์ • ์ค‘์— ํŒจํ‚ค์ง€์˜ ์ฒดํฌ์„ฌ์„ ๊ฒ€์ฆํ•˜์—ฌ ํŒจํ‚ค์ง€์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•จ (์ด๊ฒƒ์€ ์ด์ œ npm๋„ ์ œ๊ณตํ•˜๊ธด ํ•จ)
  3. ๋ฒ„์ „๊ด€๋ฆฌ์˜ ์ผ๊ด€์„ฑ : ์‚ฌ์šฉํ•˜๋ฉด์„œ, ๊ฐ€์žฅ ํŽธ๋ฆฌํ•จ์„ ๋А๊ผˆ๋˜ ์žฅ์ ์ธ๋ฐ, yarn.lock ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์„œ, ํ”„๋กœ์ ํŠธ์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€์˜ ์ •ํ™•ํ•œ ๋ฒ„์ „์„ ์ถ”์ ํ–ˆ๋‹ค. ์ด๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์„ค์น˜ํ•œ package์—ฌ๋„, ๊ทธ๊ฒƒ์„ ์ถ”์ ํ•ด์„œ, ๋‚ด๊ฐ€ ๋ช…๋ น์–ด Yarn์„ ์ž…๋ ฅํ•˜๊ธฐ๋งŒ ํ•ด๋„ ์•Œ์•„์„œ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•ด์ฃผ๋Š” ํŽธ๋ฆฌํ•œ ๊ฒฝํ—˜์„ ์ œ์‹œํ–ˆ๋‹ค.

๋ญ ์žฅ์ ์€ ์ด์ •๋„?

Yarn ์ฃผ์š” ๋ช…๋ น์–ด

yarn
: yarn์„ ์„ค์น˜

yarn i '์„ค์น˜ํ•˜๋ ค๋Š” package ๋ช…'

yarn run dev
: ๋กœ์ปฌํ˜ธ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ ํ˜„์žฌ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ๋™

yarn run build
: ๋ฐฐํฌ์ „์˜ ๋นŒ๋“œ๊ณผ์ •์˜ ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜๋“ค์„ ํ…Œ์ŠคํŠธ

์‚ฌ์šฉํ–ˆ๋˜ ๋ช…๋ น์–ด๊ฐ€ 4๊ฐœ๋ฟ์ด์—ˆ๋‹ค ใ…Ž,,,

์—ฌ๊ธฐ๊นŒ์ง€ ํฌ์ŠคํŠธ๋ฅผ ๋งˆ์น˜๋ฉด ๋˜๊ฒ ๋‹ค. ์ฒ˜์Œ์—๋Š” Yarn์„ ์™œ ์ผ๋Š”์ง€ ๋ชฐ๋ž์ง€๋งŒ, ํ™•์‹คํžˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์น˜๊ณ  ๋‚˜๋‹ˆ๊นŒ ์ด๋งŒํผ ํŽธ๋ฆฌํ–ˆ๋˜๊ฒŒ ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค

profile
์˜ํ˜ผ์˜ ์ •์›์ˆ˜

0๊ฐœ์˜ ๋Œ“๊ธ€