
ํ๋ฌ๊ฐ์ Npm Deep Dive ์๋ ์ฑ๋ฆฐ์ง๊ฐ ๋์ด ๋ฌ๋ค. 20์ผ์ฐจ๋ถ ์ค 13์ผ์ฐจ๊น์ง ์ธ์ฆ์ผ๋ก, ์๋ ํ์ง๋ ๋ชปํ์ง๋ง ์ฑ๋ฆฐ์ง ํ๊ธฐ๋ฅผ ๋จ๊ฒจ๋ด!
๐ฉ์ฑ๋ฆฐ์ง๋ฅผ ์์ํ๊ฒ ๋ ๊ณ๊ธฐ์ ๋ชฉํ
์ฑ๋ฆฐ์ง์ ์์...๋ฐ์ฏค ์ด๋ช ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.ใ ใ
๋ถํธ์บ ํ ํ๋ก์ ํธ ์งํ ์ค์ CommonJS๋ ESModule ์ค์ ์ถฉ๋ ์ค๋ฅ๋ฅผ ๊ฒช์๋ค. ๋์ธ์๊ฐ์ ๋งค๋ฌ๋ ธ์ง๋ง ์์ธ์กฐ์ฐจ ๋ชจ๋ฅด๊ฒ ๊ณ , AIํํ ๋ฌผ์ด๋ด๋ ๋ช ํํ ํด๋ต์ด ์๋์ค๋ ์ํฉ์ด์๋ค.
์ผ๋จ CommonJS๋ ESModule ์ถฉ๋ ๋๋ฌธ์ด๋ผ๋๊ฑด ์๊ฒ ์ด์ CommonJS๋ก ํต์ผํ๋ ๋ฐฉํฅ์ผ๋ก ํด๊ฒฐํ๊ธด ํ์ง๋ง, ๋ด๊ฐ ๋ชจ๋ ์์คํ ์ ์ ๋๋ก ์ดํดํ์ง ๋ชปํด์ ๋ฐ์ํ ๋ฌธ์ ๋ผ๋๊ฒ ๋ผ์ ๋ฆฌ๊ฒ ๋๊ปด์ก๊ณ , ๊ณ์ ๋ชจ๋ฅด๋์ฑ๋ก ์๋๋ค๋ฉด ์์ผ๋ก ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ฐฑ๋ฒ์ด๊ณ ์ด๋ฐฑ๋ฒ์ด๊ณ ๊ณ์ํด์ ๋ง์ฃผ์น๊ฒ ๋ ๊ฑฐ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๋ชจ๋ ์์คํ ์ ๋ํด ๊ณต๋ถํด์ผ๊ฒ ๋ค! ๋ผ๋ ์๊ฐ์ ํ๊ณ ๋ง์นจ ๋ช ๋ ์ง๋์ง ์์ npm Deep Dive์ ์ถ๊ฐ ์์์ ๋ณด์๊ณ Destiny๋ฅผ ๋๊ผ๋ค. ํ์ง๋ง ์ฑ ์ด 5๋ง์...? ์ฒ ํ์ด์ง...? ์๊ฐ๋ณด๋ค ์ด๋ง๋ฌด์ํ ์ซ์๋ค์ ๋ถ๋ด์๋ฌ์ + ์ฌ๋ดค์ ์ด๊ฑธ ์ฝ์๊น๋ ํ์๊ฐ์ด ๋ค์๋ค. ์ฌ๋๊ณ ์์ฝ์ผ๋ฉด ๊ทธ๋ฅ 5๋ง์ ์ด ์ฌ๋๋๋๊ฑฐ๋๊น ๋ง์ ๊ณ ๋ฏผ์ด ๋ค๋ ์ฐจ์, ์ฑ๋ฆฐ์ง๋ฅผ ์๊ฒ ๋์๊ณ ๋งค์ผ ์ธ์ฆ์ ํ๋ฉฐ ์ฝ์ ์ ๋ฐ์ ์๋ ์์คํ ์ด๋ผ๋ ์ ์ ๋งค๋ ฅ์ ๋๊ปด ๋ฐ๋ก ์ฐธ์ฌํ๊ฒ ๋์๋ค. ์ฐ์ ์์ฃผ์ ์ํค๋ถ์ค ์ฑ 1๊ถ ์ฆ์ ๋ ๋๋ฌด ๋๋ ธ์...๋์ปค์ฑ ๋ฐ๊ตฌ ์ถ์๋๋ฐใ
์ฒ์ ๋ชฉํ๋ ์์ฃผ + ์ฐ์ ์์ฃผ์ ๋๊ธฐ์๋ค. ์ฒ์์๋ ๋ธ๋ก๊ทธ์ ๋ด์ฉ์ ๋ฆฌํ ๊ฒ ์ฒจ๋ถ๊น์ง ํ๋ฉด์ ์ธ์ฆ๊ธ ์ด์ฌํ ์ผ์ง๋ง, ํ๋ก์ ํธ์ ๋ถํธ์บ ํ ์ผ์ ์ด ๊ฒน์น๊ณ ๋ฐ๋น ์ง๋ ๋ฐ๋์ ๋๊น์ง ์์ฃผํ์ง๋ ๋ชปํ๋ค. ๋ถ๋๋ ์๊ฐ๋ณด๋ค ๋ง์์ ๋ธ๋ก๊ทธ ์ ๋ฆฌํ๊ธฐ์๋ ํ๋ฃจ๊ฐ ๋ถ์กฑํ๊ธฐ๋ ํ๊ณ ...(์ด๊ฑด ๋ณต์ตํ๋ฉด์ ๊พธ์คํ ์ ๋ฆฌํด ๊ฐ ์์ !)
์ฐ์ ์์ฃผ์๋ ์ปค๋ ์์ฃผ๋ ๋ชปํ์ง๋ง, ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฑ ์ ์ ๋ฐ ์ด์ ์ฝ์๋ค๋ ์ ์์ ์ถฉ๋ถํ ๊ฐ์ง ๊ฒฐ๊ณผ๋ผ๊ณ ์๊ฐํ๋ค.
๐์ธ์ ๊น์๋ ๋ด์ฉ & ์๋กญ๊ฒ ์๊ฒ ๋ ๋ด์ฉ
๊ฐ์ฅ ์ธ์๊น์๋ ๋ถ๋ถ์ ์ญ์ CommonJS์ ESModule์ ๊ตฌ์กฐ์ ์ฐจ์ด์๋ค. ์ด ์ฑํฐ๋ฅผ ์ฝ๊ธฐ ์ ๊น์ง๋ require()๋, import๋์ ์ฐจ์ด ์ ๋๋ก๋ง ์๊ณ ์์์ง๋ง, ๋ด๋ถ ๋์๊ณผ ํธํ์ฑ ๋ฌธ์ ๋ฅผ ๊น์ด ๋ค์ด๋ค๋ณด๋ฉฐ ์ด์ ์ ์๊ธด ๋ฌธ์ ๊ฐ ์ ์๊ฒผ๋์ง ์๊ฒ ๋์๋ค. ์์คํ ์ ๋ํ ์ดํด ์์ด ๊ทธ๋ฅ ๋๊ฐ ๊ฐ์ด ์จ๋ณผ๊น,,,ํ๋๊ฒ ๋ฌธ์ ์์
์ด์ ๋ ๋น์ทํ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋นํฉํ์ง ์๊ณ ์์ธ์ ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ด ์ฐ๊ธฐ๋ ํ์ง๋ง ์ ์๋๊ฑด ์ด๋ฆ๋ฐ์ ์๋ ๋ฒ๋ค๋ฌ๋ค.webpack, vite, rollup ๋ฑ์ ๋ฒ๋ค๋ฌ๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๋์ง, ์ด๋ค ์ฒ ํ์ ๊ฐ์ง๊ณ ์ค๊ณ๋์๋์ง๋ฅผ ์๊ฒ ๋ ๊ฒ๋ ํฐ ์ํ์ธ ๊ฒ ๊ฐ๋ค. ์ด์ ์๋ ๊ทธ๋ฅ ์๊ฐ ๋น ๋ฅด๋ค๋๋ฐ? ์ ๋๋ก๋ง ์๊ณ ์ผ๋ค๋ฉด, ์์ผ๋ก๋ ๋ ๊ตฌ์ฒด์ ์ธ ์ฅ๋จ์ ๋น๊ตํ๊ณ ์ฌ์ฉํ ์ ์์ ๊ฒ ๊ฐ๋ค.
๐์ค๋ฌด์ ๋ฐ๋ก ์ ์ฉํ๊ณ ์ถ์ ๋ถ๋ถ
์์ผ๋ก๋ npm ๋ช ๋ น์ด๋ฅผ ๋ ์ ํ์ฉํ๋ ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ๋ค. ๊ทธ๋์์ ๊ฑฐ์ npm install, npm start ์์ค์์๋ง ๋ฉ์ถฐ ์์์ง๋ง, ์ด๋ฒ์ npm audit, npm dedupe, npm link, npx ๊ฐ์ ๋ค์ํ ์ ํธ์ฑ ๋ช ๋ น์ด๋ฅผ ๋ฐฐ์ฐ๋ฉด์ ์ ์ฉํ๊ฒ ์ธ ์ ์๊ฒ ๋๋ฐ? ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
๋ ๊ทธ๋์์ ๋ชจ๋ ธ๋ ํฌ๋ฅผ ๊ทธ์ ๋ฐฑ์๋+ํ๋ก ํธ์๋ ํด๋ ๊ฐ์ด ์๋ ๋ ํฌ ์ ๋๋ก๋ง ์๊ฐํ๊ณ ์ผ์๋๋ฐ, ์ํฌ์คํ์ด์ค, ํจํค์ง ๊ด๋ฆฌ์, ์์กด์ฑ ๋ฑ์ ๋ํ ๊ฐ๋ ์ ์ดํดํ๊ฒ ๋๋ฉด์ ์์ผ๋ก๋ ํจ์ฌ ๋ ๊น๋ํ๊ณ ํจ์จ์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์ฌ ๋ ํฌ๋ฅผ ๊ตฌ์ฑํ ์ ์์ ๊ฒ ๊ฐ๋ค.
โ ์ฝ๊ธฐ ์ ํ, ์ํ๊ณ์ ๋ํ ์ดํด
์๋ ์ ๋ชปํ์ง๋ง, ์ฝ๊ธฐ ์ ๊ณผ ๋น๊ตํ๋ฉด npm๊ณผ ์ํ๊ณ ๋๊ตฌ๋์ ๋ํ ์ดํด๋๋ ์์ ํ ๋ฌ๋ผ์ก๋ค. ์์ ์๋ ํจํค์ง ํ๋ ์ค์นํ ๋ ์ฝ์์ ๋จ๋ ๋ก๊ทธ๊ฐ ๊ทธ๋ฅ ์๋ฏธ ์๋ ๊ธ์์ฒ๋ผ ๋ณด์์ง๋ง, ์ด์ ๋ ํ๋ํ๋๊ฐ ๋์ ๋ค์ด์ค๊ณ ์ด๋ค ๊ณผ์ ์ด ์งํ๋๊ณ ์๋์ง๋ ์ ์ ์๊ฒ ๋์๋ค.
์ดํด๊ฐ ์์ด๋ ์ฌ๋ฏธ๋ ํจ์ฌ ์ปค์ก๊ณ ๋ด๊ฐ ๋ญ ํ๊ณ ์๋์ง ์๋ ์ํ์์ ์ฝ๋๋ฅผ ์ง ๋ค๋ ๋๋์ด ๋๋ฌด ์ข์๋ค.
์์ฆ AI ๋ฐ์ ๊ณผ ์๋ํ๋ก ์ธํด ๊ฐ๋ฐ์์ ์ญํ ์ ๋ํ ํ์๊ฐ๋ ๋ง์ด ๋๊ปด๋ํฐ๋ผ ๋งค๋๋ฆฌ์ฆ์ ๋น ์ ธ ์์๋๋ฐ, ์ด ์ฑ๋ฆฐ์ง๋ฅผ ํตํด ๊ฐ๋ฐ์ ๋ํ ํฅ๋ฏธ์ ํธ๊ธฐ์ฌ์ ๋ค์ ํ๋ณตํ ์ ์์ด์ ๋ ์ข์ ๊ฒฝํ์ด ๋์๋ค. AI๊ฐ ์ ์ง๋ ์ธ์์์, ์ํ๊ณ ๊ตฌ์กฐ์ ๋ํ ์ดํด๋ ๋ด๊ฐ ๊ฐ์ง ์ ์๋ ๊ฒฝ์๋ ฅ ์ค ํ๋๊ฐ ์๋๊น ์๊ฐ์ด ๋ค์ด์ ์์ผ๋ก ๋๋ฒ, ์ธ๋ฒ ๊ณ์ ์ฝ์ผ๋ฉฐ ์๋ฒฝํ๊ฒ ์ดํดํ ์ ์๋๋ก ๋ ธ๋ ฅํด๋ณด๋ ค๊ณ ํจ!
♥๏ธ์ด ์ฑ ์ ์ถ์ฒํ๊ณ ์ถ์ ์ด์
npm์ ํ๋ฒ์ด๋ผ๋ ์จ ๋ดค๋ค๋ฉด, ์ด ์ฑ ์ ๊ถํ๊ณ ์ถ๋ค. ์ ๋ง๋ก npm๊ณผ ๊ทธ ์ํ๊ณ๋ฅผ ์ธ ์ค ์๋๊ฒ๊ณผ, ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์์ ํ ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋๋ผ๊ฒ ํด์ฃผ๋ ์ฑ ์ด๋ค.
์ฌ์ค ํจํค์ง ํ๋๋ง ์ค์นํด๋, ์ ์ด๊ฒ ์๋์ง? ๊ฐ์ ์ํฉ์ ๋์ ๋ฐ์ํ๋ค. ๊ทธ๋ด ๋๋ง๋ค ๋ฌด์์ ๊ตฌ๊ธ๋งํ๊ฑฐ๋ ์ฑ์งํผํฐ์ผ ํด๊ฒฐํด์ฃ ํ๋ ๋์ , ๊ตฌ์กฐ ์์ฒด๋ฅผ ์ดํดํ๊ณ ๋๋ฒ๊น ํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ์ถ๊ฒ ํด์ฃผ๋ ์ฑ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
๋ชฉ์ฐจ๋ง ๋ณด๋ฉด ๋๋ฌด ๊น์ ๋ด์ฉ์ ๋ค๋ฃจ๊ณ ์๋ ๊ฒ ๊ฐ์์, ์ค๋ฌด ๋ฐ๋์กฐ์ฐจ ๋ชป๊ฐ ์ทจ์ค์ ๊ฐ๋ฐ์์ธ ๋ ์ฃผ์ ์ ๊ฐํ ์ดํดํ ์ ์์๊น? ๋ผ๋ ๊ฑฑ์ ๋ ์ปธ์ง๋ง, ์ค๋ช ๋ ๋๋ฌด ์ฌ๋ฏธ์๊ณ , ํ๋ฆ์ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์๊ฐ ์๋ฃ๋ ๋ง์ด ์ฒจ๋ถ๋์ด ์์ด์ ์ดํดํ๊ธฐ ์ด๋ ต์ง ์์๋ค. ์ ๋ง npm์ ํ๋ฒ์ด๋ผ๋ ์จ๋ดค๋ค๋ฉด ๊ฒฝ๋ ฅ, ๋ ์ฐจ, ์ค๋ ฅ ๋ฌด๊ดํ๊ฒ ๊ผญ ์ฝ์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ ์ฑ !!
์ฑ ์ ๋ค ์ฝ์ง ๋ชปํ์ง๋ง, ์ฝ์ ๋งํผ์ ํ์คํ ๋ด ๊ฒ์ด ๋์๋ค๋ ๋๋์ ๋ฐ์๋ค. ์ฑ๋ฆฐ์ง๋ฅผ ํตํด ์ ๋ฆฌ๋ ์ง์์ ๋งค์ผ๊ฐ์ด ์์๊ฐ๋ฉฐ ๊ธฐ์ด ์ฒด๋ ฅ์ ํค์ธ ์ ์์๊ณ , npm ์ํ๊ณ๋ฅผ ๋ฐ๋ผ๋ณด๋ ๋์ ๊ธฐ๋ฅผ ์ ์์๋ค!
๋งค์ผ๋งค์ผ ์ธ์ฆํ๋ ์ฑ๋ฆฐ์ง ์์คํ ์ด ์ฑ์คํจ(?) ๊พธ์คํจ์ ๊ธฐ๋ฅด๋๋ฐ ๋ง์ ๋์์ด ๋ ๊ฒ ๊ฐ์์ ์์ผ๋ก๋ ์๋ ์ฑ๋ฆฐ์ง๊ฐ ์๋ค๋ฉด ๊ผญ ๋์ ํด๋ณด๊ณ ์ถ๋ค(๋ค์์๋ ๊ผญ ์๋ ...)