Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป๊ณต๋ถ€ ๊ธฐ๋ก/๐Ÿ“Œ Frontend

[Frontend] ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์˜ ๋™์ž‘ ๊ณผ์ •

๋ฐ˜์‘ํ˜•

 

 

 

โš™๏ธ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ๊นŒ

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ yarn install์ด๋‚˜ npm install์€

๊ฑฐ์˜ ๋ฐ˜์‚ฌ์ ์œผ๋กœ ์น˜๋Š” ๋ช…๋ น์–ด ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

 

๋‚˜๋Š” ๋ฌธ๋“, "์ด ๋ช…๋ น์–ด๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ค ์ผ์„ ํ•˜๊ณ  ์žˆ๋Š”๊ฑธ๊นŒ?" ๋ผ๋Š” ๊ถ๊ธˆ์ฆ์ด ์ƒ๊ฒผ๋‹ค.

 

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋Š”

Resolution → Fetch → Link ๋ผ๋Š” ๊ณผ์ •์„ ํ†ตํ•ด์„œ

์šฐ๋ฆฌ๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋กœ ์˜์กด์„ฑ์„ ์ค€๋น„ํ•ด์ค€๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์ด ๊ณผ์ •์„ ์ข€ ๋” ๊นŠ์ด ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด,

์‹ค๋ฌด์—์„œ ๋” ์•ˆ์ •์ ์ด๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ด ๊ธ€์—์„œ๋Š” ๊ฐ ๋‹จ๊ณ„๊ฐ€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€,

์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ง€๋ฅผ ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

 


1๏ธโƒฃ Resolution ๋‹จ๊ณ„ (๋ˆ„๊ตด ์„ค์น˜ํ• ์ง€ ์ •ํ•˜๋Š” ๋‹จ๊ณ„)

Resolution ๋‹จ๊ณ„๋Š” ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด,

์ด ํ”„๋กœ์ ํŠธ์— ์–ด๋–ค ํŒจํ‚ค์ง€๋“ค์ด ํ•„์š”ํ•˜๊ณ ,

๊ทธ ์ค‘ ์–ด๋–ค ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์•ผ ํ• ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด package.json์— ์•„๋ž˜์ฒ˜๋Ÿผ ์ ํ˜€ ์žˆ๋‹ค๊ณ  ํ•ด๋ณด์ž.

{
  "dependencies": {
    "react": "^18.2.0",
    "lodash": "~4.17.21"
  }
}

 

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋Š” ์—ฌ๊ธฐ์— ๋ช…์‹œ๋œ๋ฒ„์ „ ๋ฒ”์œ„๋ฅผ ํ•ด์„ํ•ด์„œ

react๋Š” 18.2.0 ์ด์ƒ, 19.0.0 ๋ฏธ๋งŒ ์ค‘ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์„,

lodash๋Š” 4.17.21 ์ด์ƒ, 4.18 ๋ฏธ๋งŒ ์ค‘ ๊ฐ€์žฅ ์•ˆ์ •์ ์ธ ๋ฒ„์ „์„ ์ฐพ๋Š”๋‹ค.

 

๋˜ํ•œ, ๊ฐ ํŒจํ‚ค์ง€๋“ค์ด ๋˜ ์–ด๋–ค ํŒจํ‚ค์ง€๋ฅผ ์˜์กดํ•˜๊ณ  ์žˆ๋Š”์ง€,

์ฆ‰ ์˜์กด์„ฑ์˜ ์˜์กด์„ฑ(dependency of dependency)๋„ ์ „๋ถ€ ๋”ฐ๋ผ๊ฐ€์„œ ์ „์ฒด ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•ด์ค€๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ž‘์—…์ด ๋๋‚˜๋ฉด ์ƒ๊ธฐ๋Š” ๊ฒŒ ๋ฐ”๋กœ

yarn.lock ๋˜๋Š” package-lock.json์ด๋‹ค.

์—ฌ๊ธฐ์—๋Š” ๋ˆ„๊ฐ€ ๋ˆ„๊ตฌ๋ž‘ ์–ด๋–ค ๋ฒ„์ „์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท์ด ๋‹ด๊ธฐ๊ฒŒ ๋œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ์ด์œ ๋Š”

๋ˆ„๊ฐ€ ์„ค์น˜ํ•˜๋“ , ์–ธ์ œ ์„ค์น˜ํ•˜๋“ , ํ•ญ์ƒ ๊ฐ™์€ ์˜์กด์„ฑ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.

 

 


2๏ธโƒฃ Fetch ๋‹จ๊ณ„ (๊ฒฐ์ •๋œ ๋ฒ„์ „์˜ ํŒŒ์ผ์„ ๋ฐ›์•„์˜ค๋Š” ๋‹จ๊ณ„)

Resolution ๋‹จ๊ณ„์—์„œ ์–ด๋–ค ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ• ์ง€ ๊ฒฐ์ •๋˜์—ˆ๋‹ค๋ฉด,

์ด์ œ๋Š” ๊ทธ ์‹ค์ œ ํŒŒ์ผ์„ ๋ฐ›์•„์™€์•ผ ํ•  ์ฐจ๋ก€๋‹ค.

 

์ด๋•Œ ์ˆ˜ํ–‰๋˜๋Š” ๊ณผ์ •์ด Fetch ๋‹จ๊ณ„์ธ๋ฐ, ๋ง ๊ทธ๋Œ€๋กœ

๊ฒฐ์ •๋œ ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋ฅผ ๊ณต์‹ ์ €์žฅ์†Œ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.

 

์ด ๋‹จ๊ณ„์—์„œ ์ฃผ๋กœ ์ผ์–ด๋‚˜๋Š” ์ž‘์—…์€ ์•„๋ž˜์˜ ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

โœ… .tgz ํ˜•ํƒœ์˜ ์••์ถ• ํŒจํ‚ค์ง€ ๋ฐ›์•„์˜ค๊ธฐ

โœ… ์บ์‹œ ์ €์žฅ์†Œ์— ์ €์žฅํ•˜๊ธฐ

โœ… ์ค‘๋ณต ๋‹ค์šด๋กœ๋“œ ๋ฐฉ์ง€ํ•˜๊ธฐ (๊ฐ™์€ ๋ฒ„์ „์€ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ์•Š๋„๋ก)

 

์ด ๊ณผ์ •์—์„œ, ~/.yarn/cache/ , ~/.npm ๊ฐ™์€ ๋””๋ ‰ํ† ๋ฆฌ์—

์ด๋ ‡๊ฒŒ ๋‹ค์šด๋กœ๋“œํ•œ ํŒจํ‚ค์ง€๋“ค์ด ์บ์‹œ ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜๋Š”๋ฐ,

์ด ์บ์‹œ ๋•๋ถ„์—, ๊ฐ™์€ ํŒจํ‚ค์ง€๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์„ค์น˜ํ•ด๋„

์ด๋ฏธ ๋ฐ›์€ ํŒŒ์ผ์„ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—

์†๋„๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง„๋‹ค.

 

์ •๋ฆฌํ•˜์ž๋ฉด, Fetch ๋‹จ๊ณ„๋ž€

๊ฒฐ์ •๋œ ๋ฒ„์ „์„ ํšจ์œจ์ ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

 


3๏ธโƒฃ Link ๋‹จ๊ณ„ (์ฝ”๋“œ์—์„œ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๋‹จ๊ณ„)

์ด์ œ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค ๋ฐ›์•˜์œผ๋‹ˆ,

๋งˆ์ง€๋ง‰์œผ๋กœ ํ•ด์•ผ ํ•  ์ผ์€

์ด๊ฑธ ์‹ค์ œ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ์ž‘์—…์„ ํ•ด์ฃผ๋Š” ๊ฒŒ ๋ฐ”๋กœ Link ๋‹จ๊ณ„์ด๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ์ด Link ๋‹จ๊ณ„๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋ณต์žกํ•˜๊ณ ,

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋งˆ๋‹ค ์ฐจ์ด๊ฐ€ ๋งŽ์ด ๋‚œ๋‹ค.

 

๋”ฐ๋ผ์„œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์œ ํ˜•๋ณ„๋กœ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค.

 


๐Ÿ”ธ npm ๋ฐฉ์‹

npm์€ node_modules ํด๋”์— ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ ,

๊ฐ ํŒจํ‚ค์ง€๋ฅผ ๊ทธ ์•ˆ์— ๋ณต์‚ฌํ•ด์„œ ๋„ฃ๋Š”๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ๊ฒƒ์ด๋‹ค.

my-project/
โ”œโ”€โ”€ node_modules/
โ”‚   โ”œโ”€โ”€ react/
โ”‚   โ””โ”€โ”€ lodash/

 

์ด ๋ฐฉ์‹์€ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜์ด๋ผ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ , ํ˜ธํ™˜์„ฑ๋„ ๋งค์šฐ ์ข‹์ง€๋งŒ,

๊ตฌ์กฐ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

 

โœ… ์žฅ์ 

๐Ÿ”„ ๊ฐ€์žฅ ๋ณดํŽธ์ ์ธ ๋ฐฉ์‹์œผ๋กœ, ๋Œ€๋ถ€๋ถ„์˜ ํˆด ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ˜ธํ™˜๋œ๋‹ค.

๐Ÿงฉ ๊ตฌ์กฐ๊ฐ€ ์ง๊ด€์ ์ด๋ผ ๋””๋ฒ„๊น…์ด ์‰ฝ๋‹ค.

๐Ÿค ์˜ค๋žœ ์‹œ๊ฐ„ ์จ์˜จ ๋ฐฉ์‹์ด๋ผ ๋ ˆ๊ฑฐ์‹œ ํ”„๋กœ์ ํŠธ์—์„œ ์•ˆ์ „ํ•˜๋‹ค.

 

โŒ ๋‹จ์ 

๐Ÿข ํŒจํ‚ค์ง€๋ฅผ import ํ•  ๋•Œ๋งˆ๋‹ค ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํƒ์ƒ‰ํ•ด์„œ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.

๐Ÿ“ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋™์ผํ•œ ํŒจํ‚ค์ง€๋ฅผ ์“ด๋‹ค ํ•ด๋„, ๋งค๋ฒˆ ๋”ฐ๋กœ ๋ณต์‚ฌํ•ด์„œ ์ €์žฅํ•˜๊ธฐ์— ๋””์Šคํฌ ๋‚ญ๋น„๊ฐ€ ํฌ๋‹ค.

๐Ÿ”€ ๋ฒ„์ „์ด ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ค๋ฅด๋ฉด node_modules ์•„๋ž˜์— ์ค‘์ฒฉ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ๊ธฐ๊ณ , ํŠธ๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค.

 

 


๐Ÿ”ธ pnpm ๋ฐฉ์‹

pnpm์€ npm์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๋ฐฉ์‹์œผ๋กœ,

ํŒจํ‚ค์ง€๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์„ค์น˜ํ•˜๊ณ , ๊ฐ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋งํฌ๋งŒ ๊ฑด๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๊ฐ€ ๋  ๊ฒƒ ์ด๋‹ค.

~/.pnpm-store/ ← ์—ฌ๊ธฐ์— ์‹ค์ œ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋จ

my-project/
โ”œโ”€โ”€ node_modules/
โ”‚   โ””โ”€โ”€ react/ ← ์—ฌ๊ธฐ๋Š” ์‹ค์ œ ๋ณต์‚ฌ๋ณธ์ด ์•„๋‹ˆ๋ผ ํ•˜๋“œ๋งํฌ

 

์ด ๊ธฐ๋ฐ˜์€ ํ•˜๋“œ๋งํฌ ๊ธฐ๋ฐ˜์˜ ํšจ์œจ์ ์ธ ๊ตฌ์กฐ๋กœ,

์—ฌ๊ธฐ์—๋„ ์žฅ๋‹จ์ ์ด ์กด์žฌํ•œ๋‹ค.

 

โœ… ์žฅ์ 

๐Ÿš€ ์ค‘๋ณต ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

๐Ÿ’พ ํ•˜๋‚˜๋งŒ ์„ค์น˜ํ•ด์„œ ์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ณต์œ ํ•˜๋ฏ€๋กœ ๋””์Šคํฌ๊ฐ€ ์ ˆ์•ฝ๋œ๋‹ค.

๐Ÿงน ์˜์กด์„ฑ ์ถฉ๋Œ์ด ์ ๊ณ , node_modules๋„ ์ •๋ˆ๋ผ์„œ ๊น”๋”ํ•œ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

๐Ÿ”„ npm ์ฒ˜๋Ÿผ node_moduels๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ์ ๋‹ค.

 

โŒ ๋‹จ์ 

๐Ÿงฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋” ๊นŠ์ด ํ™œ์šฉํ•˜๋ฏ€๋กœ, Windows ๋“ฑ ์ผ๋ถ€ ํ™˜๊ฒฝ์—์„œ ํ•˜๋“œ๋งํฌ ๊ด€๋ จ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ” ์˜์กด์„ฑ ๋””๋ฒ„๊น…์ด ๋‹ค์†Œ ๋ณต์žกํ•  ์ˆ˜ ์žˆ๋‹ค. (๋งํฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—)

 

 


๐Ÿ”ธ Yarn Plug’n’Play (PnP)

Yarn PnP๋Š” ์•„์˜ˆ ๋ฐœ์ƒ์˜ ์ „ํ™˜์„ ์‹œ๋„ํ•œ ๊ฒƒ์ด๋‹ค.

 

"์™œ ๊ตณ์ด node_modules ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜์ง€?

๊ทธ๋ƒฅ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์—ฐ๊ฒฐํ•ด๋ฒ„๋ฆฌ๋ฉด ์•ˆ๋˜๋‚˜?"

 

๋ผ๋Š” ์ƒ๊ฐ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์œผ๋กœ,

๋™์ž‘ ์›๋ฆฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

1) yarn install ์‹œ .pnp.cjs ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

2) ์ด ํŒŒ์ผ์€ ์–ด๋–ค ํŒจํ‚ค์ง€๊ฐ€ ์–ด๋–ค ๋ฒ„์ „์ด๊ณ , ์–ด๋””์— ์ €์žฅ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ JS ๊ฐ์ฒด(Map) ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

3) Node.js๊ฐ€ ์‹คํ–‰๋  ๋•Œ, ์ด ๋งคํ•‘ ์ •๋ณด๋ฅผ ๋กœ๋”ฉํ•ด์„œ import/require ๊ฒฝ๋กœ๋ฅผ ํ•ด์„ํ•œ๋‹ค.

 

์ด ๋ฐฉ๋ฒ•์—๋„ ์—ญ์‹œ ์žฅ๋‹จ์ ์€ ์กด์žฌํ•œ๋‹ค.

 

โœ… ์žฅ์ 

โšก ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ์—†์ด .zip ์บ์‹œ๋งŒ ์“ฐ๋ฉด ๋ผ์„œ ์„ค์น˜ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค.

๐Ÿ“š ์ฒ ์ €ํ•˜๊ฒŒ ๋ฒ„์ „์„ ๋ถ„๋ฆฌํ•˜๊ธฐ์— ์˜์กด์„ฑ ์ถฉ๋Œ์ด ๊ฑฐ์˜ ์—†๋‹ค.

๐Ÿง  dependencies์— ๋ช…์‹œ๋˜์ง€ ์•Š์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๊ธฐ์— ํ’ˆ์งˆ ๊ด€๋ฆฌ์— ์œ ๋ฆฌํ•˜๋‹ค.

 

โŒ ๋‹จ์ 

๐Ÿ“ฆ ์ผ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํˆด์—์„œ PnP๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„์„œ ํ˜ธํ™˜์„ฑ ์ด์Šˆ๊ฐ€ ์žˆ๋‹ค.

๐Ÿ› ๏ธ .pnp.cjs , VSCode , webpack , babel ๋“ฑ ์ถ”๊ฐ€ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

๐Ÿ’ฅ ๊ธฐ์กด node_moduels ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ •ํ•œ ๋„๊ตฌ๋“ค๊ณผ ์ถฉ๋Œ์ด ์ผ์–ด๋‚  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

 


โœ… ์ด์ •๋ฆฌ

๊ตฌ๋ถ„ npm pnpm Yarn PnP
์†๋„ ๐Ÿข ๋А๋ฆผ ๐Ÿš€ ๋น ๋ฆ„ โšก ๋งค์šฐ ๋น ๋ฆ„
๋””์Šคํฌ ๊ณต๊ฐ„ ๐Ÿ“ ๋งŽ์ด ์”€ ๐Ÿ’พ ์ ๊ฒŒ ์”€ ๐Ÿ“ฆ ์ตœ์†Œํ™”
ํ˜ธํ™˜์„ฑ โœ… ์ตœ๊ณ  โœ… ๋†’์Œ โš ๏ธ ๋‚ฎ์Œ
์„ค์ • ๋‚œ์ด๋„ ๐Ÿ”ง ์‰ฌ์›€ ๐Ÿ”ง ์ค‘๊ฐ„ ๐Ÿ”ง ์–ด๋ ค์›€
๋””๋ฒ„๊น… ํŽธ์˜ ์‰ฌ์›€ ๋ณดํ†ต ์–ด๋ ค์›€
์‚ฌ์šฉ ์ถ”์ฒœ ์ƒํ™ฉ ๋ณดํŽธ์ ์ธ ํ”„๋กœ์ ํŠธ ๋น ๋ฅธ ๊ฐœ๋ฐœ, ๋ชจ๋…ธ๋ ˆํฌ ๊ณ ๋„ํ™”๋œ ํ”„๋กœ์ ํŠธ
์†๋„ ๋ฐ ์ •ํ™•์„ฑ์ด ์šฐ์„ ์ธ ๊ฒฝ์šฐ
๋ฐ˜์‘ํ˜•