D+43
- node.js์ ๊ด๋ จ ๋๊ตฌ -
(node.js, NVM, NPM, package.json)
node.js
•Java Script ๋ฐํ์
์ฆ, ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋์๊ฐ ์ ์๋ ํ๋ก๊ทธ๋จ์ ๋ํ๋ธ๋ค.
๋ฐํ์ (runtime)
•ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๊ตฌ๋๋๋ ํ๊ฒฝ(ํ๋ก๊ทธ๋จ)
•์ด๋ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋์ํ ์ ์๋ ํ๋ก๊ทธ๋จ
node.js์์ ์๋ฐ์คํฌ๋ฆฝํธ ์คํํ๊ธฐ
๋ง์ฝ์ runnode.js๋ผ๋ ํ์ผ์ด ์์ ๋ ์ด๊ฒ์ node.jsํ๊ฒฝ์์ ์คํ์ํค๊ณ ์ถ๋ค๊ณ ํ์.
// runnode.js
const testFunction = function(word){
console.log("Hello ", word);
}
testFunction("hi");
๊ทธ๋ด ๊ฒฝ์ฐ node <file_name>์ ํฐ๋ฏธ๋ ์ฐฝ์ ์ ๋ ฅํ๊ฒ ๋๋ฉด "Hello hi"๋ผ๋ ๋ฉ์์ง๋ฅผ ํ์ธํ ์ ์๋ค.
$ node runnode.js // node <file_name>
NVM (Node Version Manager)
node์๋ ๊ฐ๊ธฐ ๋ค์ํ ๋ฒ์ ์ด ์กด์ฌํ๋๋ฐ ๋ง์ฝ ๋ด๊ฐ ํ์ฌ ๋ฒ์ ์์ ์์ฑํ ์ฝ๋๋ฅผ ๋ค๋ฅธ ๋ฒ์ ์์ ์คํํ๋ ค๊ณ ํ๋ฉด ์ ์คํ๋์๋ ์ฝ๋๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์๋ ์๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ด๊ฐ ์์ฑํ ๋ ธ๋์ ๋ฒ์ ๋ณด๋ค ๋ฎ์๊ฒฝ์ฐ์ ์ ๊ทธ๋ ์ด๋๋ฅผ, ๋์ ๊ฒฝ์ฐ์ ๋ฒ์ ์ ๋ฎ์ถ๋ ๋ฐฉ๋ฒ์ด ์๋๋ฐ
ํด๋น ํ์ผ์ ๋ฒ์ ์ ๋ง์ถ๊ธฐ ์ํด ๋งค๋ฒ Node๋ฅผ ์๋ก ์ค์นํ๊ฑฐ๋ ์ ๊ทธ๋ ์ด๋๋ฅผ ๋ฐ๋ณตํ๋ ์ผ์ ์ฌ๊ฐ ๊ท์ฐฎ์ ์ผ์ด ์๋๋ค.
์ด๋ฐ ์๊ณ ์ค๋ฌ์์ ๋ํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ NVM์ ์ฌ์ฉํ๋๋ฐ
NVM์ ๊ฐ๋จํ ๋ช ๋ น์ด๋ก Node๋ฅผ ์ค์นํ๊ณ ๋ค์ํ ๋ ธ๋๋ฒ์ ์ ์์ฝ๊ฒ ์ฎ๊ฒจ ๋ค๋ ์ ์๋ค.
NVM ์ค์นํ๊ธฐ
์๋ ๋ช ๋ น์ด๋ฅผ ํฐ๋ฏธ๋์ ์ ๋ ฅํด ์ค๋ค.
$ touch ~/.bash_profile
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
์ฑ๊ณต์ ์ผ๋ก NVM์ด ์ค์น๋์๋ค๋ฉด NVM ๋ฒ์ ์ ๋ ฅ์ ์ ์์ ์ผ๋ก ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
$ nvm --version
node.js ์ค์นํ๊ธฐ
NVM ์ค์น๋ฅผ ์๋ฃํ๋ค๋ฉด NVM์ ์ด์ฉํด node.js๋ฅผ ์ค์นํ ์ ์๋ค.
๋ฐฉ๋ฒ์ ์ค์นํ๊ณ ์ํ๋ ๋ ธ๋ ๋ฒ์ ์ ์ ๋ ฅํด ์ฃผ๋ฉด ๋๋ค.
$ nvm install 12.18.3
์ฑ๊ณต์ ์ผ๋ก ๋ ธ๋์ค์น๊ฐ ์๋ฃ๋์๋ค๋ฉด node๋ฒ์ ์ ์ ๋ ฅ ํ์ธ ์ ์ ์์ ์ผ๋ก ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
$ node -v
NPM (Node Package Manager)
•ํ์ํ ๋ชจ๋์ ๋ค์ด๋ก๋ํ ์ ์๋ ๋ชจ๋๋ค์ด ๋ชจ์ฌ์๋ ๋ชจ๋ ์คํ ์ด
package.json
ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง, ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๋ฐฉ๋ฒ, ํ๋ก๊ทธ๋จ์ ํ ์คํธํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ๋ช ์๋์ด ์๋ ๊ฒ์ด๋ค.
์ค์ ๋ชจ๋์ด ๋ค์ด๊ฐ ์๋ ๊ฒ์ด ์๋ ์ด๋ค ๋ชจ๋์ธ์ง๋ง ์ ํ์๋ค.
ํ๋ก์ ํธ ์ฝ๋๋ฅผ ์ ๋ฌํ ๋, ํฌํจํ๊ณ ์๋ ๋ชจ๋ ๋ชจ๋์ ๋ค ์ ๋ฌํ์ง ์์๋ ๋๋ค๋ ์ฅ์ ์ด ์๋ค.
(package.json์ ์ฐธ๊ณ ํด ํ์ํ ๋ชจ๋์ npm์ ์ด์ฉํด ๋ค์ด๋ฐ์ผ๋ฉด ๋๋ค)
dependencies
ํ๋ก์ ํธ๊ฐ ๋์๊ฐ๊ธฐ์ํด ๋ฐ๋์ ํ์ํ ๋ชจ๋์ด ๋ฌด์์ธ์ง ์ ํ์๋ค.
"dependencies": {
"react": "^16.8.6",
}
devDependencies
ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ ํ๊ฒฝ์์ ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง ์ ํ์๋ค.
์ค์ ํ๋ก์ ํธ ๋์์ ์ง์ ์ ์ผ๋ก ์ํฅ์ ์ฃผ์ง ์๋ ๋ชจ๋๋ค์ด ๋ช ์๋์ด์๋ค.
"devDependencies": {
"jest": "^2.3.0",
"eslint" : "^2.0.0"
}
scripts
npm์ผ๋ก ์คํ์ํฌ ์ ์๋ ๋ช ๋ น์ด๋ฅผ ์ ์ํ๋ค.
๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด ์ด๋ค ๋์์ ํด์ผ ํ๋์ง ๋ช ์๋์ด์๋ค.
"scripts": {
"start": "node app.js", // npm start ์
๋ ฅ์ -> app.jsํ์ผ์ ๋
ธ๋์์ ์คํ์์ผ๋ผ
"test": "node test.js", // npm test ์
๋ ฅ์ -> test.jsํ์ผ์ ๋
ธ๋์์ ์คํ์์ผ๋ผ
}
'์๋ > Code-States' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[D+44] call, apply, bind ๋ฉ์๋ (0) | 2020.10.20 |
---|---|
[D+44] ํ์ดํ ํจ์, ๊ตฌ์กฐ๋ถํด ํ ๋น, this (0) | 2020.10.20 |
[D+42] Pre Course๋ฅผ ๋ง์น๋ฉฐ... (0) | 2020.10.18 |
[D+38 - 41] ๊ฐ์ธ์ ๋น์๊ฐ (0) | 2020.10.14 |
[D+37] Hiring Assessment 2์ฐจ (0) | 2020.10.13 |
๋๊ธ