๐ค ์์งlog ๐ค
NPM ๊ณผ YARN ๋ณธ๋ฌธ
NPM(Node Package Manager)
์ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ์ํ ํจํค์ง ๊ด๋ฆฌ์๋ก, Node.js์ ๊ธฐ๋ณธ ํจํค์ง ๊ด๋ฆฌ์์ ๋๋ค.
์ ์ธ๊ณ์ ์ผ๋ก ๊ฐ์ฅ ๋ง์ ์ด๋ค์ด ์ฌ์ฉํ๊ณ ์๋ ํจํค์ง ๊ด๋ฆฌ ํด์ด์ฃ . ์ด๋ฌํ ๊ด๋ฆฌ ํด์ ์ด์ฉํ์ฌ Node.js๋ก ๋ง๋ค์ด์ง ๋ชจ๋์ ์น์์ ๋ฐ์์ ์ฝ๊ฒ ์ค์นํ๊ณ ๊ด๋ฆฌํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ฐ๋ฐ์ ์ ์ฅ์์๋ ๋จ ๋ช ์ค์ command๋ก ๊ธฐ์กด ๊ณต๊ฐ๋ ๋ชจ๋๋ค์ ์ค์นํ๊ณ ํ์ฉํ ์ ์์ต๋๋ค. (Java์์ maven๊ณผ ๋น์ทํ ์ญํ ์ ํ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.) ๋ํ ๊ทธ๋ ๊ฒ ์ค์น๋ ๋ชจ๋๋ค์ด ์ ๋ฐ์ดํธ๋์๋์ง๋ฅผ ์ฒดํฌํด์ฃผ๋ ๋ฑ JavaScript๋ก ์งํํ๋ ํ๋ก์ ํธ๋ฅผ ๊ต์ฅํ ํธํ๊ฒ ์งํํ ์ ์๋๋ก ๋์์ ์ค๋๋ค.
command-line client์ธ npm๊ณผ ์จ๋ผ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ npm registry๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก command-line client๋ฅผ npm์ด๋ผ๊ณ ์๊ฐํ๋๋ฐ, ์ค์ ๋ก npm์๋ npm registry๊น์ง ํฌํจ๋์ด ์์ต๋๋ค.
์ด๋ฌํ npm์ด ์์์ ๋์๋ ํ์๋ก ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด์ ์ง์ ์์ฑํ๊ฑฐ๋ github๋ฅผ ํตํด ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉํด์ผ ํ์ต๋๋ค.
์ด๋ฌํ ๋ถํธ์ ํด์ํ๊ธฐ ์ํด ๋ํ๋ฌ์ผ๋ฉฐ, Node.js๋ฅผ ์ค์นํ๊ธฐ๋ง ํ๋ฉด(๊ธฐ๋ณธ์ ์ผ๋ก npm์ Node.js ๋ด์ ๋ด์ฅ๋์ด ์์ต๋๋ค) ๋ช ๋ น์ด ํ ์ค๋ก ๊ธฐ๋ฅ์ ์ถ๊ฐ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
npm ๋ช ๋ น์ด
npm์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ช๊ฐ์ง ๋ช ๋ น์ด๋ฅผ ์์๋ ํ์๊ฐ ์๋๋ฐ, ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ํด์ ์ฌ์ฉํ๋ npm ๋ช ๋ น์ด๋ ๋ํ์ ์ผ๋ก ์๋์ ๊ฐ์ต๋๋ค.
- npm init : package.json ์์ฑ
- npm install : package.json ํ์ผ ๋ฐ ํด๋น ์ข ์์ฑ์ ๋์ด๋ ๋ชจ๋ ๋ชจ๋์ ์ค์น
- npm install <package_name>@๋ฒ์ : ํน์ ํจํค์ง์ ํน์ ๋ฒ์ ์ค์น
- npm install <URL> : ํน์ ์ ์ฅ์ ๋ด ํจํค์ง ์ค์น. ์ฃผ๋ก github์ ์ด์ ๊ฐ์ด ์ค์นํฉ๋๋ค.
- npm install <package_name> -g : ์ต์ . ๊ธ๋ก๋ฒ๋ก ์ค์น. ๋ก์ปฌ์ ๋ค๋ฅธ ํ๋ก์ ํธ๋ ์ด ํจํค์ง๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
- npm uninstall : ํจํค์ง ์ญ์ ๋ช ๋ น์ด์ ๋๋ค.
- npm update : ์ค์นํ ํจํค์ง๋ค์ ์ ๋ฐ์ดํธํด์ค๋๋ค.
- npm dedupe : ์ค๋ณต ์ค์น๋ ํจํค์ง๋ค์ ์ ๋ฆฌํด์ฃผ๋ ๋ช ๋ น์ด์ ๋๋ค.
package.json
์ ํ๋ก์ ํธ ์ ๋ณด์ ์์กด์ฑ(dependencies)์ ๊ด๋ฆฌํ๋ ๋ฌธ์์
๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด๋ค ํจํค์ง(์คํ์์ค)๋ฅผ ์ฌ์ฉํ๋์ง, ์ด๋ค ๋ฒ์ ์ ์ฌ์ฉํ๋์ง ๋ฑ์ ๊ธฐ๋กํจ์ผ๋ก์จ ์ด๋ ๊ณณ์์๋ ๋์ผํ ๊ฐ๋ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ค๋๋ค.
yarn
์ ํ์ด์ค๋ถ์์ ๋ง๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง ๋งค๋์ ์
๋๋ค. npm๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํ์ฃ . ๊ทธ๋ ์ง๋ง ์ฌ์ค npm๊ณผ yarn์ ๋ํด ๊ณต๋ถํด๋ณด์ง ์์๋ ์ด๋์ ๋ ํ๋ก์ ํธ ๊ฒฝํ์ด ์์ผ์ ๋ถ๋ค์ yarn์ด ์กฐ๊ธ ๋ ๊ฐ๋ณ๋ค๋ ๋๋์ ๋ฐ์๋ณด์
จ์๊ฑฐ๋ผ ์๊ฐํด์. ๊ทธ ์ด์ ๋ yarn์ ํ์ ๋ฐฐ๊ฒฝ์ ์์ต๋๋ค.
yarn์ ๊ธฐ๋ณธ์ ์ผ๋ก npm์ ๋จ์ ์ ๋๊ผ๊ธฐ์ ์ด๋ฅผ ํฅ์์ํค๊ธฐ ์ํด ๋ง๋ค์ด์ง ๋งค๋์ ํด์ธ๋ฐ, ์ฌ๊ธฐ์ ๋งํ๋
npm์ ๋จ์ ์ผ๋ก๋ ์๋(performance), ์์ ์ฑ(stability), ๋ณด์์ฑ(security) ๋ฑ์ด ์์ต๋๋ค.
์๋(perfomance)
yarn์ ๋ค์ด๋ฐ์ ํจํค์ง ๋ฐ์ดํฐ๋ฅผ ์บ์(cache)์ ์ ์ฅํ์ฌ, ์ค๋ณต๋ ๋ฐ์ดํฐ๋ ๋ค์ด๋ก๋ํ์ง์๊ณ , ์บ์์ ์ ์ฅ๋ ํ์ผ์ ํ์ฉํจ์ผ๋ก์จ ์ด๋ก ์ ์ผ๋ก npm์ ๋นํด ํจํค์ง ์ค์น์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ ๋๋ค. ๋ํ ์ฌ๋ฌ๊ฐ์ ํจํค์ง๋ฅผ ์ค์นํ ๋ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ performance์ speed๊ฐ ์ฆ๊ฐ ๋ฉ๋๋ค. (npm์ ์์ฐจ์ )
์์ ์ฑ(stability)/๋ณด์์ฑ(security)
npm์ ํจํค์ง๊ฐ ์ค์น๋ ๋ ์๋์ผ๋ก ์ฝ๋์ ์์กด์ฑ์ ์คํํ ์ ์๋๋ก ํ์ฉํ์ต๋๋ค. ์ด ํน์ง์ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ด์ง๋ง ์์ ์ฑ์ ์ํํ ์ ์์ต๋๋ค. ํนํ๋ ๋ณด์ฅ๋ ์ ์ฑ
์์ด ๋ฑ๋กํ ํจํค์ง๊ฐ ์กด์ฌํ ์ ์๋ค๋ ์ ์์ ๋์ฑ ์ํ๋๊ฐ ๋์ต๋๋ค.
๋ฐ๋ฉด yarn์ yarn.lock์ด๋ package.json์ผ๋ก ๋ถํฐ ์ค์น๋ง ํ๋ฉฐ,
yarn.lock์ ๋ชจ๋ ๋๋ฐ์ด์ค์ ๊ฐ์ ํจํค์ง๋ฅผ ์ค์นํ๋ ๊ฒ์ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ๋ฒ์ ์ ์ฐจ์ด๋ก ์ธํด ์๊ธฐ๋ ๋ฒ๊ทธ๋ฅผ ๋ฐฉ์งํด์ค ์ ์์ต๋๋ค.
yarn ๋ช ๋ น์ด
- yarn init : package.json ์์ฑ
- yarn or yarn install : package.json ํ์ผ ๋ฐ ํด๋น ์ข ์์ฑ์ ๋์ด๋ ๋ชจ๋ ๋ชจ๋์ ์ค์น
- yarn add <package_name>@๋ฒ์ : ํน์ ํจํค์ง์ ํน์ ๋ฒ์ ์ค์น
- yarn add <URL> : ํน์ ์ ์ฅ์ ๋ด ํจํค์ง ์ค์น. ์ฃผ๋ก github์ ์ด์ ๊ฐ์ด ์ค์นํฉ๋๋ค.
- yarn global add <package_name> : ์ต์ . ๊ธ๋ก๋ฒ๋ก ์ค์น. ๋ก์ปฌ์ ๋ค๋ฅธ ํ๋ก์ ํธ๋ ์ด ํจํค์ง๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
- yarn remove : ํจํค์ง ์ญ์ ๋ช ๋ น์ด์ ๋๋ค.
- yarn upgrade : ์ค์นํ ํจํค์ง๋ค์ ์ ๋ฐ์ดํธํด์ค๋๋ค.
- npm dedupe : ์ค๋ณต ์ค์น๋ ํจํค์ง๋ค์ ์ ๋ฆฌํด์ฃผ๋ ๋ช ๋ น์ด์ ๋๋ค.
yarn์ ๋ณ๋ ฌ์ ํจํค์ง ์ค์น๋ก ์ธํ ๊ฐ๋ฒผ์, ๋ํ ๋ฒ์ ์ ์ฐจ์ด๋ก ์ธํ ๋ฒ๊ทธ ๋ฐฉ์ง ๋ฑ์ ๊ธฐ๋ฅ์ yarn์ด npm๋ณด๋ค ๋ ์ข์ ํด์ด๋ผ๊ณ ์ค๋ช
ํ๊ธฐ ์ถฉ๋ถํ ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ ์ง๋ง npm ์ญ์ ๋ถ๋ช
ํ ์ฅ์ ์ด ์กด์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ฉ์ ์์ ์ ๊ทผ์ฑ์
๋๋ค. ์๋ฌด๋ฆฌ yarn์ด ์ข๋ค๊ณ ํ๋ค, ์์กฐ๋ ์ด๊ธธ ์ ์๋ ๋ฒ, perfomance ์์ผ๋ก ํ์ฐํ yarn์๊ฒ ๋ค์ณ์ง๋ ๋์๋ npm์ ๊ตณ๊ฑดํ packaged manager ๋ค ์ค ๊ฐ์ฅ ์ฌ์ฉ์๋ฅผ ๋ง์ด ๋ณด์ ํ๊ณ ์์์ต๋๋ค. ํ์ฌ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ฅ ๋ง์ ์ฌ์ฉ์๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ์ฐ์ํ ์ ๊ทผ์ฑ์ด ์ด๋ฌํ ํ์์ ์ผ๊ธฐํ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค. yarn์ ๊ฒฝ์ฐ๋ brew๋ npm์ ํตํด ํ๋ฒ ๋ ์ค์น๋ฅผ ํด์ค์ผํ๋ ๋ถํธํจ์ด ์กด์ฌํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ฐ์์ ์ฅ๋จ์ ์ด ๋๋ ทํ๊ณ ์ค์ง์ ์ธ ์ฑ๋ฅ์์๋ yarn์ด ๊ทผ์ํ๊ฒ ์์๊ณ ์์ง๋ง ์ฒ์ ์ฌ์ฉํด๋ณด์๋ ๋ถ๋ค์๊ฒ npm์ ์ถ์ฒ๋๋ฆฌ๋ ์ด์ ๋ ์ผ๋จ npm์ ์ง์ ์ฌ์ฉํด๋ณด์์ผ yarn์ ํ์์ฑ์ ๋ํด ํ๊ฐ๋ฆ์ ํ ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ค์ yarn์ ์ฌ์ฉํ๊ธฐ ์์ํ์ ๋ถ๋ค์ ๋ณด๋ฉด npm์ ํตํด ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ package๋ค ๊ฐ์ ๋ฒ์ ๋ฌธ์ ๋ก ์ธํด ์๋ฌ๋ฅผ ๊ฒช์ด๋ณธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
npm์ ์ฌ์ฉํด๋ด์ผ๋ก์ ์ง์ ์ด๋ฌํ ๊ฒ์ ๋ถ๋ชํ๋ณด๊ณ yarn์ด๋ผ๋ ๊ฒ์ด ์ ๋ง๋ค์ด์ก๋์ง, ํน์ npm๋ง์ผ๋ก๋ ์ถฉ๋ถํ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ์ง ์๋์ง ๊ทธ๋ฌํ ์ ๋ค์ ๋ํด ๊น๊ฒ ์๊ฐํด๋ณผ ์ ์๊ณ , ์ด๋ ๊ฐ๋ฐ์ ๋ณธ์ธ์๊ฒ ์ข์ ๊ฒฝํ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
โค๏ธ ๋์ ์ฃผ์ ๋ถ :
๐ NPM ๊ณผ YARN, ํผ์ฉํ๋ฉด ์๋๋ ์ด์
ํจํค์ง ๊ด๋ฆฌ์๋ก yarn ๋๋ npm์ค ํ๋๋ฅผ ์ผ๊ด์ ์ผ๋ก ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋์ฉ ์ค์๋ก ํผ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ์๊น๋๋ค.
npm๊ณผ yarn์ ํจํค์ง ๊ด๋ฆฌ ๋ฐฉ์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ถฉ๋์ด ๋ ์ ์์ผ๋ฏ๋ก ๊ฐ๊ธ์ ์ด๋ฉด ํผ์ฉํ์ง ์๋๊ฒ ์ข์ต๋๋ค.
yarn์ ์ค์นํ ํจํค์ง์ ์ข ์๋๋ ํจํค์ง๋ฅผ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ๋ ์ผ๋ ฌ๋ก ๋์ดํ ๋ค ์ค์น ํจํค์ง๋ก ๋งํฌํ๋ ๋ฐฉ์์ผ๋ก,
ํจํค์ง ์ค๋ณต์ด ์ ๊ฑฐ๋์ด ์ ์ ์ฉ๋์ผ๋ก ๋น ๋ฅธ ์คํ์ ๊พํ ์ ์์ผ๋ ๋ค์ดํฐ๋ธ ๋ฐ yarn์ ๊ณ ๋ คํ์ง ์์ ๋ฒ์ ๊ด๋ฆฌ๋ก ์ธํ ๋๋ฌธ ์ผ์ด์ค๋ก ํจํค์ง ์ถฉ๋์ด ์์ ์ ์์ต๋๋ค.
npm์ ๊ฐ ์ค์นํ ํจํค์ง๋ณ๋ก ์๋ธํจํค์ง๋ฅผ ์ด๋ฃจ๋ ํ์์ผ๋ก, ๊ฐ ์ค์นํ ํจํค์ง์ ๋ ๋ฆฝ์ฑ์ด ๋ณด์ฅ๋์ง๋ง ํจํค์ง ์ค๋ณต์ผ๋ก ์ธํ ํฌ๊ธฐ๊ฐ ์ ์ฒด์ ์ผ๋ก ์ปค์ง๋ค.
lock ํ์ผ์ ๋ ๋ค ์์ด๋ ์๊ด์ ์์ง๋ง, npm install ์ด๋ yarn add ๋ฉด ํ ๋ฒ ์์ํ๋ฉด ๋๊น์ง ์ฌ์ฉํ๋ ํจํค์ง ๊ด๋ฆฌ์๋ก ์งํํ๋ ๊ฒ ํจํค์ง ์ถฉ๋ ์ค๋ฅ๋ฅผ ๋ง๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
โ NPM ๊ณผ YARN install
npm ๊ณผ yarn ์ ๋์์ฌ์ฉ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ง์ด ๋ดค๋๋ฐ ๊ทธ๊ฑด ์ด๋ป๊ฒํ๋๊ฑด์ง ๊ถ๊ธํ์๋ค.. ๐ง
ํผ์ฉ ๋๋ ๋์ ์ฌ์ฉํ๋ฉด ์๋๋ค๋ ๊ธ๋ค์ ๋ดค์ด์ ๋์ฑ ํผ๋์ค๋ฌ์ ์ด์
๊ธฐ์กด ๋ง๋ค์ด๋ npm library๋ฅผ ์๋ฆฌ์กฐ๋ฆฌ ๋ง์ ธ๋ณด์์๊ณ , " Yarn Package๋ฅผ ๋ค์ ์ฒ์๋ถํฐ ๋ง๋ค์ด๋ณด์! " ํ์๋๋ฐ ์๊ณ ๋ณด๋
๐ก yarn ํจํค์ง๋ฅผ ๋ง๋ ํ ๋ด๊ฐ๋ง๋ค์ด๋ npm ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ add๋ก ๋ฐ์์ฃผ๋ฉด ๋๋ค !_!
๊ธฐ์กด npm์์ dependencies ๋ฅผ ์ถ๊ฐํ๋ฏ์ด yarn์๋ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. ๐ก
npm install -g yarn
์ ๋ช ๋ น์ด๋ก yarn ์ค์น ํด์ค๋๋ค.
yarn --version
์ ๋ช ๋ น์ด๋ก yarn์ด ์ค์น๊ฐ ๋์๋์ง ํ์ธํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
init์ผ๋ก package.json์ ์์ฑํด์ฃผ์๊ณ npm package๋ฅผ addํด์ฃผ์๋ฉด ๋!
yarn ๋ช ๋ น์ด
- yarn init : package.json ์์ฑ
- yarn or yarn install : package.json ํ์ผ ๋ฐ ํด๋น ์ข ์์ฑ์ ๋์ด๋ ๋ชจ๋ ๋ชจ๋์ ์ค์น
- yarn add <package_name>@๋ฒ์ : ํน์ ํจํค์ง์ ํน์ ๋ฒ์ ์ค์น
- yarn add <URL> : ํน์ ์ ์ฅ์ ๋ด ํจํค์ง ์ค์น. ์ฃผ๋ก github์ ์ด์ ๊ฐ์ด ์ค์นํฉ๋๋ค.
- yarn global add <package_name> : ์ต์ . ๊ธ๋ก๋ฒ๋ก ์ค์น. ๋ก์ปฌ์ ๋ค๋ฅธ ํ๋ก์ ํธ๋ ์ด ํจํค์ง๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
- yarn remove : ํจํค์ง ์ญ์ ๋ช ๋ น์ด์ ๋๋ค.
- yarn upgrade : ์ค์นํ ํจํค์ง๋ค์ ์ ๋ฐ์ดํธํด์ค๋๋ค.
- npm dedupe : ์ค๋ณต ์ค์น๋ ํจํค์ง๋ค์ ์ ๋ฆฌํด์ฃผ๋ ๋ช ๋ น์ด์ ๋๋ค.
'๐ธ Library' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Npm package install์ Invalid hook call ์๋ฌ (0) | 2022.11.11 |
---|---|
TypeScript๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ง๋ค๊ธฐ (0) | 2022.11.09 |
NPM Package Version (0) | 2022.11.07 |
NPM Package ์์ฑ ๋ถํฐ ๋ฐฐํฌ _์ง์ง์ง์ง์ต์ข ๐ (1) | 2022.11.02 |