Programming/JavaScript

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € Yarn Berry ๋ž€? (+ pnp system)

yuri lee 2023. 6. 19. 21:51
๋ฐ˜์‘ํ˜•

Intro

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ์ƒˆ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ yarn ์—์„œ yarn berry๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์‹œ๊ฐ„์—๋Š” Yarn Berry์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

What is yarn berry?

Yarn Berry๋Š” JS ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ธ Yarn์˜ ๋‹ค์Œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. yarn version 2๋ถ€ํ„ฐ yarn berry๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. 

 

What is the difference between yarn and yarn berry?

๊ฐ€์žฅ ๋‹ฌ๋ผ์ง„ ์ ์€ Plug'n'Play (PnP) ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PnP ์‹œ์Šคํ…œ์€ node_modules ํด๋”๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ํŒจํ‚ค์ง€์˜ ์ข…์†์„ฑ์„ ํ”„๋กœ์ ํŠธ์˜ ๋‹จ์ผ ๋””๋ ‰ํ† ๋ฆฌ ํŠธ๋ฆฌ์— ์ง์ ‘ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. 

 

์ผ๋ฐ˜์ ์œผ๋กœ npm ์ด๋‚˜ yarn version 1์„ ์‚ฌ์šฉํ•  ๋•Œ, ๊ฐ ํŒจํ‚ค์ง€์˜ ์ข…์†์„ฑ์€ ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ํด๋” ๋‚ด์˜ node_modules ํด๋”์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ํŒจํ‚ค์ง€ ์ข…์†์„ฑ๋“ค์ด node_modules ํด๋” ์•ˆ์— ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์„ค์น˜๋˜๋Š” ๊ฒƒ์ด์ฃ . ํ•˜์ง€๋งŒ Yarn Berry๋Š” PnP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋” ํŠธ๋ฆฌ์— ํŒจํ‚ค์ง€ ์ข…์†์„ฑ์„ ์ง์ ‘ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. node_modules ํด๋”์— ์„ค์น˜๋˜๋Š” ๋Œ€์‹  ํ”„๋กœ์ ํŠธ์˜ ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ์— ๋˜๋ฏ€๋กœ node_modules ํด๋”์˜ ๋ณต์žกํ•œ ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ์—†์–ด์ง€๊ณ , ์ข…์†์„ฑ ๊ฐ„์˜ ์ถฉ๋Œ ๋ฌธ์ œ๊ฐ€ ์ค„์–ด๋“ค์–ด ๊ด€๋ฆฌ๊ฐ€ ํ›จ์”ฌ ๋” ํŽธํ•ด์ง‘๋‹ˆ๋‹ค. 

 

What is pnp system?

Yarn Berry์˜ pnp ์‹œ์Šคํ…œ์€ ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ๋ชจ๋ฐฉํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ์„ค์น˜ ์œ„์น˜์•  ๋Œ€ํ•œ ๋งคํ•‘ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ์ฐพ๊ณ  ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” .pnp.js ํŒŒ์ผ์ด๋‚˜ .pnp.cjs ํŒŒ์ผ๋กœ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ pnp ์‹œ์Šคํ…œ์ด ๋™์ž‘ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๋ฐ˜์‘ํ˜•