CLI ์๋ํฐ ์ข ๋ฅ
vim(vi), emacs, nano, VScode ๋ฑ๋ฑ
๐CLI ํ๊ฒฝ์์ hello.js๋ฅผ VScode๋ก ์ฌ๋ ๋ฐฉ๋ฒ ๐
code hello.js
๐ํ ์คํธ ์๋ํฐ nano๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ๐
nano hello.js # hello.js ๋ฅผ nano์์ ์ฝ๋๋ค.
nano # ๊ทธ๋ฅ ์คํํ ์๋ ์์ต๋๋ค.
ํจํค์ง ์์๋ ํ๋์ ํ๋ก๊ทธ๋จ์ด ์ ์์ ์ผ๋ก ์ค์น๋๊ณ ๋์ํ๊ธฐ ์ํ ๋ชจ๋ ํ์ผ์ด ์์ถ๋์ด ์๋ค.
ํจํค์ง ๋งค๋์ ๋ ํจํค์ง์ ์ค์น, ๋ณ๊ฒฝ, ์ญ์ ๋ฑ ๊ด๋ฆฌ๋ฅผ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ด๋ค.
ex)
๋ฆฌ๋ ์ค์ ํจํค์ง ๋งค๋์ => apt,
macOS์ ํจํค์ง ๋งค๋์ => brew
node.js ์ํ๊ณ์ ํจํค์ง ๋งค๋์ => npm
ํ๋ธ๋ฅHomebrew๋ ๋งฅOSmacOS ์ฉ ํจํค์ง ๋งค๋์ง ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ค.
brew ๋ช ๋ น์ด
- brew ์์ฒด ์ ๋ฐ์ดํธ: brew update
- ์ ๋ฐ์ดํธ ํ์ํ ํ์ผ ์กฐํ: brew outdated
- ํ๋ก๊ทธ๋จ ์ ๊ทธ๋ ์ด๋(์ ๋ฐ์ดํธ): brew upgrade ํ๋ก๊ทธ๋จ ์ด๋ฆ
- ํ๋ก๊ทธ๋จ ๊ฒ์: brew search ๊ฒ์์ด
- ํ๋ก๊ทธ๋จ ์ ๋ณด ํ์ธ: brew info ํ๋ก๊ทธ๋จ ์ด๋ฆ
- ํ๋ก๊ทธ๋จ ์ค์น: brew install ํ๋ก๊ทธ๋จ ์ด๋ฆ
- ํ๋ก๊ทธ๋จ ์ญ์ : brew uninstall ํ๋ก๊ทธ๋จ ์ด๋ฆ
- ์ค์น๋ ํ๋ก๊ทธ๋จ ๋ณด๊ธฐ: brew list
Homebrew ๋ก ์ค์นํ ์ ์๋ ์ ์ฉํ ํ๋ก๊ทธ๋จ => wget (URL์ ํตํด ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ํ๋ก๊ทธ๋จ)
* ๊ฐ๋ฐ์๋ ํฐ๋ฏธ๋ ๋ฉ์์ง๋ฅผ ์ฃผ์ ๊น๊ฒ ๋ณด๋ ์ต๊ด์ ๊ฐ์ง๋ ๊ฒ์ด ์ข๋ค. ์๋ฌ ๋ฉ์์ง ๋ฟ๋ง ์๋๋ผ ํฐ๋ฏธ๋์ ์ถ๋ ฅ๋ ๋ชจ๋ ๋ฉ์์ง์ ์ง์คํ๋ ์ต๊ด์ ๊ฐ์ง๊ธฐ!
๋ฐํ์์ด๋?
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๊ตฌ๋๋๋ ํ๊ฒฝ, ์ฆ ์ด๋ค ํ๋ก๊ทธ๋จ์ด ๋์ํ ๋, ํ๋ก๊ทธ๋จ์ด ๋์ํ๋ ๊ณณ
JavaScript ๋ฐํ์ : ํฌ๋กฌ, ์ฌํ๋ฆฌ์ ๊ฐ์ ์น ๋ธ๋ผ์ฐ์ , Node.js
nvm(Node Version Manager)= Node.js์ ๋ค์ํ ๋ฒ์ ์ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ (Node.js์ ๋ค์ํ ๋ฒ์ ์ ์ฝ๊ฒ ์ค์นํ ์ ์๋ค. )
npm(Node Package Manager) = ํ์ํ ๋ชจ๋์ ๋ค์ด๋ก๋ํ ์ ์๋, ๋ชจ๋๋ค์ด ๋ชจ์ฌ์๋ ๋ชจ๋ ์คํ ์ด
- ์ค์น ํ ์ ์์ ์ผ๋ก ์ค์น๊ฐ ์๋ฃ๋์๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ => version ๋ฌผ์ด๋ณด๊ธฐ
- Node.js๋ก JavaScript ํ์ผ ์คํํ๊ธฐ => node <file_name> ๋ช ๋ น์ด๋ฅผ ํ๋กฌํํธ์ ์ ๋ ฅํ๊ธฐ
nano helloWorld.js # helloWorld.js๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ํ
์คํธ ์๋ํฐ nano๋ก ์ด๊ธฐ
- ์ค์นํ Node.js๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๊ธฐ ๐
nvm install 12.18.3 #๋ฒ์ ๋๋ฒ
- ๋จ์ด ๋ง๋ค์ด๋์ ๋ชจ๋์ node.js ์์๋ npm ๋ชจ๋์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ถ๋ฅด๋ฉฐ, ์ด์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์๋ ๊ณณ์ด package.json ์ด๋ค.
- npm(Node Package Manager) = ํ์ํ ๋ชจ๋์ ๋ค์ด๋ก๋ํ ์ ์๋, ๋ชจ๋๋ค์ด ๋ชจ์ฌ์๋ ๋ชจ๋ ์คํ ์ด
<์ ๋ฆฌ>
๋ฆฌ๋ ์ค์ ํจํค์ง ๋งค๋์ => apt,
macOS์ ํจํค์ง ๋งค๋์ => brew
node.js ์ํ๊ณ์ ํจํค์ง ๋งค๋์ => npm
- package.json์๋ ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง, ํ๋ก๊ทธ๋จ์ ์คํ์ํค๋ ๋ฐฉ๋ฒ, ํ๋ก๊ทธ๋จ์ ํ ์คํธํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ๋ช ์๋์ด ์๋ค.
- package.json์๋ ์ด๋ค ๋ชจ๋์ธ์ง๋ง ์ ํ ์๊ณ (์ ํ ์นดํ๋ก๊ทธ์ฒ๋ผ), ํ๋ก๊ทธ๋จ์ ์คํ์ํค๊ธฐ ์ํด ํ์ํ ์ค์ ๋ชจ๋์ ๋ฐ๋ก node_modules์ด๋ผ๋ ํด๋์ ์ ์ฅ๋๋ค.
- package.json์ด ์ฃผ๋ ๋ ํ๋์ ์ด์ ์ ํ๋ก์ ํธ ์ฝ๋๋ฅผ ์ ๋ฌํ ๋, ํฌํจํ๊ณ ์๋ ๋ชจ๋ ๋ชจ๋์ ๋ค ์ ๋ฌํ์ง ์์๋ ๋๋ค. package.json์์ ํ์ํ๋ค๊ณ ํ๋ ๋ชจ๋์ npm์ ์ด์ฉํด ๋ค์ด๋ก๋ํ๋ฉด ๋๋ค. npm install ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๋ฉด, package.json์์ ํ์ํ๋ค๊ณ ํ๋ ๋ชจ๋์ ๋ค์ด๋ก๋ํ๋ค. npm install์ด ์๋ฃ๋๋ฉด node_modules ๋๋ ํ ๋ฆฌ๊ฐ ์๊ธด ๊ฑธ ํ์ธํ์ค ์ ์๋ค.
- package.json์ devDependencies์๋ ์ด ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ๋ ํ๊ฒฝ์์ ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง๊ฐ ์ ํ ์๋ค.
[์ฐธ๊ณ ]JSON ํ์์์, ํค์ ์ ํ ๊ฒ์ ๋ชจ๋ ์ด๋ฆ์ ๋๋ค. ๊ฐ์ ๋ฒ์ ์ด๋ค.
- npm install์ ์ด์ฉํ๋ฉด, npm์ ์๋ ๋ชจ๋์ ์ค์นํ ์ ์๋๋ฐ, ์ด๋ --save-dev ์ต์ ๊ณผ ํจ๊ป ์ค์นํ๋ฉด, ์๋์ผ๋ก devDependencies์ ์ถ๊ฐ๋๋ค.
$ npm install mocha --save-dev
- package.json์ dependencies๋ ํ๋ก์ ํธ๊ฐ ๋์๊ฐ๊ธฐ ์ํด ๋ฐ๋์ ํ์ํ ๋ชจ๋๋ค์ด ๋ฌด์์ธ์ง๊ฐ ์ ํ ์๋ค.
- --save ์ต์ ๊ณผ ํจ๊ป ์ค์นํ๋ฉด, ์๋์ผ๋ก dependencies์ ์ถ๊ฐ๋๋ค. --save ์ต์ ์ ์๋ตํด๋ ok.
$ npm install react
or
$ npm install --save react
์ฐ๋ฆฌ๊ฐ ํํ ํ๋ npm install์ package.json์ ์๋ dependency (์์กด์ฑ ๋ชจ๋)๋ฅผ ๋ฐํ์ผ๋ก ์ค์นํ๋ค.
๋ง์ฝ dependency ์ ๋ณด๋ฅผ ์ ์ง ์์๋ค๋ฉด => ์ฝ๋์์๋ ํด๋น ๋ชจ๋์ ์ฐ๊ณ ์์ง๋ง, ๋ฌด์์ ์ค์นํด์ผ ์ด ํ๋ก๊ทธ๋จ์ด ์๋๋๋์ง, ๋ฌด์์ ์ค์นํด์ผ ์ด ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ์ ์์์ง ์ ์๊ฐ ์์ ๊ฒ์ด๋ค.
- scripts ํญ๋ชฉ์ CLI์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ช ๋ น์ ๊ธฐ์ ํ๋ค. (npm script) / CLI์์ ์คํํ ๋์๋ "npm run <์คํฌ๋ฆฝํธ ์ด๋ฆ>" ์ผ๋ก ์คํ
<ํต์ฌ ์ ๋ฆฌ>
์ค์น ์ค ๋ฌด์ธ๊ฐ ์๋ชป๋๊ณ ์๋ค๊ณ ๋๊ปด์ง๋ ๊ฒฝ์ฐ
๋๋ฌด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ฑฐ๋, ๋ญ๊ฐ ๊ณผ์ ์ค์ ์์์น ๋ชปํ๊ฒ ๋ฉ์ถฐ์๋ ๊ฒฝ์ฐ
๊ฐ์ ์ข ๋ฃ์ ๋ฐฉ๋ฒ => Ctrl + C ํค // ์์ ์ ์ทจ์ํ๊ณ , ํฐ๋ฏธ๋์ ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ค์ ๋์ฐพ์์ค๋ ์ญํ ์ ํ๋ค.
'๐Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL) ํฌ์๋ฐฐ์ด, ๋ฐฐ์ด empty, ๋ฐฐ์ด undefined (0) | 2022.05.10 |
---|---|
TIL) ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ๊ธฐ์ด, ๋ฐฐ์ด ๋ฉ์๋ ์ ๋ฆฌ (0) | 2022.05.10 |
TIL) ๋ ผ๋ฆฌ์ฐ์ฐ์, alert() ๋ฉ์๋์ ๋ฆฌํด๊ฐ? (0) | 2022.05.03 |
์ผํญ ์กฐ๊ฑด ์ฐ์ฐ์ ์ฌ์ด ์ค๋ช (0) | 2022.05.01 |
TIL) ๋ฐ๋ณต๋ฌธ for, while, break ์ฌ์ฉํ๊ธฐ (0) | 2022.05.01 |