Dev-ops

๐Ÿš€ Yarn Berry ์™„๋ฒฝ ์ •๋ฆฌ: ๊ฐœ๋…๋ถ€ํ„ฐ ์บ์‹œ ๊ด€๋ฆฌ๊นŒ์ง€!

xeunnie 2025. 3. 22. 01:00
728x90
๋ฐ˜์‘ํ˜•

๐Ÿš€ Yarn Berry ์™„๋ฒฝ ์ •๋ฆฌ: ๊ฐœ๋…๋ถ€ํ„ฐ ์บ์‹œ ๊ด€๋ฆฌ๊นŒ์ง€!

 

“Yarn Berry(๋ฒ„์ „ 2 ์ด์ƒ)์˜ ์ง„์ •ํ•œ ๊ฐ•์ ์„ ์•Œ์•„๋ณด์ž!”

์ด์ „ Yarn๊ณผ ๋ฌด์—‡์ด ๋‹ค๋ฅผ๊นŒ? ์บ์‹œ ๊ด€๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?”

๐Ÿ“Œ ๋ชฉ์ฐจ

 

1๏ธโƒฃ Yarn Berry๋ž€?

2๏ธโƒฃ Yarn 1๊ณผ Yarn 2(์ดํ›„ ๋ฒ„์ „)์˜ ์ฐจ์ด์ 

3๏ธโƒฃ Zero-Install๊ณผ PnP(Plug’n’Play)๋ž€?

4๏ธโƒฃ ์บ์‹œ ๊ด€๋ฆฌ: ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ• ๊นŒ?

5๏ธโƒฃ ์‹ค์ „ ์˜ˆ์ œ: ์บ์‹œ ํด๋ฆฌ์–ด ๋ฐ ์ตœ์ ํ™”

6๏ธโƒฃ ๊ฒฐ๋ก 

1๏ธโƒฃ Yarn Berry๋ž€?

 

๐ŸŸฃ Yarn Berry๋Š” Yarn 2 ์ด์ƒ์˜ ๋ฒ„์ „์„ ์˜๋ฏธํ•˜๋Š” ์ฝ”๋“œ๋„ค์ž„์ด์—์š”.

Yarn 1.x์™€ ๋น„๊ตํ•˜์—ฌ ์†๋„, ํšจ์œจ์„ฑ, ๋ณด์•ˆ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋œ ๊ฒƒ์ด ํŠน์ง•์ด์—์š”.

 

โœ… Yarn Berry์˜ ํ•ต์‹ฌ ํŠน์ง•

โœ”๏ธ Zero-Install ๐ŸŽ๏ธ: node_modules ์—†์ด๋„ ํŒจํ‚ค์ง€ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

โœ”๏ธ Plug’n’Play (PnP) ๐Ÿ”Œ: ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์†๋„ ๋ฐ ๋ณด์•ˆ ๊ฐ•ํ™”

โœ”๏ธ Fast Resolution โšก: ์˜์กด์„ฑ ์„ค์น˜๊ฐ€ ๋” ๋น ๋ฆ„

โœ”๏ธ Strict Mode ๐Ÿ”’: ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์˜ ์ผ๊ด€์„ฑ ์œ ์ง€

โœ”๏ธ ์บ์‹œ ์‹œ์Šคํ…œ ๊ฐ•ํ™” ๐Ÿ’พ: ๋””์Šคํฌ์— ์ €์žฅ๋œ ์บ์‹œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ํŒจํ‚ค์ง€ ์„ค์น˜

 

๐Ÿ“Œ Yarn Berry๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•:

npm install -g yarn
yarn set version berry

๐Ÿ“Œ Yarn Berry ๋ฒ„์ „ ํ™•์ธ:

yarn -v

์ถœ๋ ฅ ๊ฐ’์ด 2.x ์ด์ƒ์ด๋ฉด Yarn Berry๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์น˜๋œ ๊ฑฐ์˜ˆ์š”! ๐ŸŽ‰

2๏ธโƒฃ Yarn 1 vs. Yarn 2 (Yarn Berry)์˜ ์ฐจ์ด์ 

ํŠน์ง•Yarn 1Yarn Berry (Yarn 2+)

node_modules ์žˆ์Œ ์—†์Œ (PnP ์ง€์›)
ํŒจํ‚ค์ง€ ํ•ด์„ ๋ฐฉ์‹ npm๊ณผ ๋™์ผ .pnp.cjs ํŒŒ์ผ์„ ์‚ฌ์šฉ
์„ค์น˜ ์†๋„ ๋Š๋ฆผ ๋น ๋ฆ„ (์บ์‹ฑ ์ตœ์ ํ™”)
์˜์กด์„ฑ ํ•ด๊ฒฐ ๋ฐฉ์‹ ๊ธฐ๋ณธ package.json ๋” ์—„๊ฒฉํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ
๋ณด์•ˆ์„ฑ ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ์Œ ๊ฐ•ํ™”๋œ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ

โœ… ๊ฒฐ๋ก :

node_modules ์—†์ด ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Œ!

PnP(Plug’n’Play) ๋ฐฉ์‹์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ๋กœ๋”ฉ์„ ๋ฐฉ์ง€!

3๏ธโƒฃ Zero-Install๊ณผ PnP(Plug’n’Play)๋ž€?

 

๐ŸŸข Zero-Install ๐ŸŽ๏ธ

 

๊ธฐ์กด Yarn(๋˜๋Š” npm)์—์„œ๋Š” node_modules ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ–ˆ์ง€๋งŒ,

Zero-Install ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด .yarn/cache ๋””๋ ‰ํ„ฐ๋ฆฌ์— ํŒจํ‚ค์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ์ด๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด์š”.

 

๐Ÿ“Œ Zero-Install์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

1๏ธโƒฃ .gitignore์—์„œ node_modules์„ ์ œ๊ฑฐ

2๏ธโƒฃ .yarn/cache/ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ Git์— ์ปค๋ฐ‹

3๏ธโƒฃ .yarnrc.yml์—์„œ enableGlobalCache: true ์„ค์ •

enableGlobalCache: true

โœ… Zero-Install์˜ ์žฅ์ 

โœ”๏ธ ์†๋„ ์ฆ๊ฐ€: ํŒจํ‚ค์ง€๋ฅผ ๋งค๋ฒˆ ์„ค์น˜ํ•  ํ•„์š” ์—†์Œ

โœ”๏ธ ์ผ๊ด€๋œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ: ํŒ€์› ๊ฐ„ ๋™์ผํ•œ ํŒจํ‚ค์ง€ ์ƒํƒœ ์œ ์ง€

โœ”๏ธ ๋””์Šคํฌ ๊ณต๊ฐ„ ์ ˆ์•ฝ: node_modules ์ œ๊ฑฐ

 

๐ŸŸฃ Plug’n’Play (PnP)๋ž€? ๐Ÿ”Œ

 

Yarn Berry๋Š” PnP ๋ฐฉ์‹์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ node_modules ์—†์ด๋„ ํŒจํ‚ค์ง€๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์–ด์š”.

๋ชจ๋“  ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋ฅผ .pnp.cjs ํŒŒ์ผ์—์„œ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ, ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ ํƒ์ƒ‰์ด ์ค„์–ด๋“ค์–ด ์†๋„๊ฐ€ ๋Œ€ํญ ์ฆ๊ฐ€ํ•ด์š”!

 

๐Ÿ“Œ PnP ํ™œ์„ฑํ™” ๋ฐฉ๋ฒ•

yarn config set nodeLinker pnp

โœ… PnP์˜ ์žฅ์ 

โœ”๏ธ ๋” ๋น ๋ฅธ ํŒจํ‚ค์ง€ ๋กœ๋”ฉ

โœ”๏ธ ๋ณด์•ˆ ๊ฐ•ํ™” (์˜์กด์„ฑ ์Šคํ‘ธํ•‘ ๋ฐฉ์ง€)

โœ”๏ธ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ตœ์ ํ™” (ํŒŒ์ผ ํƒ์ƒ‰ ์ตœ์†Œํ™”)

4๏ธโƒฃ ์บ์‹œ ๊ด€๋ฆฌ: ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ์ตœ์ ํ™”ํ• ๊นŒ?

 

Yarn Berry์˜ ์บ์‹œ ๋ฐฉ์‹

 

๐Ÿ“Œ Yarn Berry๋Š” ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ **์••์ถ•๋œ ์บ์‹œ ํŒŒ์ผ(.zip)**๋กœ ์ €์žฅํ•˜๊ณ  .pnp.cjs์—์„œ ์ฐธ์กฐํ•ด์š”.

์ฆ‰, node_modules ์—†์ด๋„ ํŒจํ‚ค์ง€๋ฅผ ๋ฐ”๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์–ด์š”.

 

๐Ÿ“Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ์บ์‹œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์š”:

1๏ธโƒฃ .yarn/cache/ (๋กœ์ปฌ ์บ์‹œ)

2๏ธโƒฃ ๊ธ€๋กœ๋ฒŒ ์บ์‹œ (~/.yarn/berry/cache ๋˜๋Š” YARN_CACHE_FOLDER)

 

์บ์‹œ ๊ด€๋ จ ์ฃผ์š” ๋ช…๋ น์–ด

๋ช…๋ น์–ด์„ค๋ช…

yarn cache list ์ €์žฅ๋œ ์บ์‹œ ํ™•์ธ
yarn cache clean ์บ์‹œ ์‚ญ์ œ
yarn cache dir ์บ์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ ํ™•์ธ

5๏ธโƒฃ ์‹ค์ „ ์˜ˆ์ œ: ์บ์‹œ ํด๋ฆฌ์–ด ๋ฐ ์ตœ์ ํ™”

 

1๏ธโƒฃ ํ˜„์žฌ ์บ์‹œ๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก ํ™•์ธํ•˜๊ธฐ

yarn cache list

๐Ÿ’ก ์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด .yarn/cache์— ์ €์žฅ๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์š”!

2๏ธโƒฃ ์บ์‹œ๋œ ํŒจํ‚ค์ง€ ์œ„์น˜ ํ™•์ธํ•˜๊ธฐ

yarn cache dir

๐Ÿ’ก yarn cache dir ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ์บ์‹œ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ถœ๋ ฅํ•ด์ค˜์š”!

3๏ธโƒฃ ์บ์‹œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กญ๊ฒŒ ์„ค์น˜ํ•˜๊ธฐ

yarn cache clean
yarn install

๐Ÿ’ก yarn cache clean์„ ์‹คํ–‰ํ•˜๋ฉด ์บ์‹œ๋œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์‚ญ์ œํ•˜๊ณ ,

๐Ÿ’ก yarn install์„ ์‹คํ–‰ํ•˜๋ฉด ์ƒˆ๋กœ์šด ์บ์‹œ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด์„œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด์š”!

4๏ธโƒฃ ์บ์‹œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ

yarn up <ํŒจํ‚ค์ง€๋ช…>

๐Ÿ’ก ํŠน์ • ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์บ์‹œ์— ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—์š”!

yarn up react

๐ŸŽฏ react ํŒจํ‚ค์ง€๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•œ ํ›„, .yarn/cache์—๋„ ์ €์žฅ!

6๏ธโƒฃ ๊ฒฐ๋ก : Yarn Berry๋กœ ๋” ๋น ๋ฅด๊ณ  ์ตœ์ ํ™”๋œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ!

 

โœ… Yarn Berry๋Š” ๊ธฐ์กด Yarn 1๊ณผ ๋‹ค๋ฅด๊ฒŒ PnP ๋ฐฉ์‹์„ ํ™œ์šฉํ•ด ์†๋„๋ฅผ ๊ทน๋Œ€ํ™”!

โœ… Zero-Install์„ ํ†ตํ•ด node_modules ์—†์ด๋„ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ!

โœ… ๊ฐ•๋ ฅํ•œ ์บ์‹œ ์‹œ์Šคํ…œ ๋•๋ถ„์— ํŒจํ‚ค์ง€ ์„ค์น˜ ์†๋„ ๐ŸŽ๏ธ UP!

โœ… ์บ์‹œ ๊ด€๋ฆฌ ๋ช…๋ น์–ด(yarn cache clean, yarn up)๋กœ ์ตœ์ ํ™” ๊ฐ€๋Šฅ!

 

๐Ÿ”ฅ ๊ฒฐ๋ก : “Yarn Berry๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋ฉด?”

๐ŸŽฏ ํŒจํ‚ค์ง€ ์„ค์น˜ ์†๋„ ์ตœ์ ํ™”

๐ŸŽฏ ๋ถˆํ•„์š”ํ•œ node_modules ์ œ๊ฑฐ

๐ŸŽฏ ๋” ๊ฐ€๋ฒผ์šด ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ๊ตฌ์ถ•

 

๐ŸŒท ์ „์„ค์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ด…์‹œ๋‹น! ๐ŸŒท ๐Ÿš€

728x90
๋ฐ˜์‘ํ˜•