๐ Node.js
Node.js๋ JavaScript ๋ฐํ์ ํ๊ฒฝ์ผ๋ก, ์๋ฒ ์ธก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด๋ฅผ ํตํด JavaScript๋ก ์๋ฒ ์ธก ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์คํํ ์ ์๋ค. Node.js๋ Chrome์ V8 JavaScript ์์ง ์์ ๊ตฌ์ถ๋์ด ์์ผ๋ฉฐ, ๋น๋๊ธฐ ์ด๋ฒคํธ ์ฃผ๋ ์ํคํ ์ฒ๋ฅผ ํตํด ๋์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.
Node.js๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋์ ๋์ผํ ์ธ์ด๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด ๊ฐ๋ฐ์์๊ฒ ํธ๋ฆฌํจ์ ์ ๊ณตํ๋ค. ์ด๊ฒ์ ์ ์ฒด ์คํ์ JavaScript๋ก ์ ์งํ๋ฉด์ ๊ฐ๋ฐ์๋ค์ด ํ๋ก ํธ์๋ ๋ฐ ๋ฐฑ์๋ ๊ฐ์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์์ ์๋ฏธํ๋ค.
(SpringFramework๋ก ํ ํ๋ก์ ํธ๋ฅผ ์งํํ์ ๋๋ ํ๋ก ํธ๋จ์ jQuery ๋ฐฑ๋จ์ java๋ฅผ ์ฌ์ฉํ๋ค.)
Node.js์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ์ธก๋ฉด ์ค ํ๋๋ ๋ด์ฅ ๋ชจ๋์ ํ๋ถํ๋ค๋ ์ ์ด๋ค. ์ด๋ฌํ ๋ด์ฅ ๋ชจ๋์ Node.js ์ค์น ์ ์๋์ผ๋ก ํฌํจ๋์ด ์์ด ๋ฐ๋ก ์ค์นํ ํ์๊ฐ ์๋ค. ์ด๋ฌํ ๋ชจ๋๋ค์ ๋ค์ํ ์์ ์ ์ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
๐ npm
npm(Node Package Manager)์ Node.js ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ๊ธฐ ์ํ ๊ณต์ ํจํค์ง ๊ด๋ฆฌ์๋ผ๊ณ ํ ์ ์๋ค.
npm์ Node.js์ ํต์ฌ ๋ถ๋ถ์ผ๋ก, JavaScript ํจํค์ง ์ํ๊ณ๋ฅผ ์ง์ํ๊ณ ์ฑ์ฅ์ํค๋ ๋ฐ ํฐ ์ญํ ์ ํ๋ค.
npm์ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ์ ํ์ํ ๋ค์ํ ํจํค์ง๋ฅผ ์ฝ๊ฒ ์ค์นํ๊ณ ๊ด๋ฆฌํ ์ ์๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- ํจํค์ง ์ค์น: npm์ ์ฌ์ฉํ๋ฉด ๋ช ๋ น ์ค์ ํตํด ํ๋ก์ ํธ์ ํ์ํ ํจํค์ง๋ฅผ ๊ฐํธํ๊ฒ ์ค์นํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, npm install package-name ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ํจํค์ง๋ฅผ ์ค์นํ ์ ์๋ค.
- ์์กด์ฑ ๊ด๋ฆฌ: npm์ ํจํค์ง ๊ฐ์ ์์กด์ฑ์ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ค. ํจํค์ง๋ฅผ ์ค์นํ ๋ ํด๋น ํจํค์ง๊ฐ ์์กดํ๋ ๋ค๋ฅธ ํจํค์ง๋ ํจ๊ป ์ค์น๋๋ค. ๋ํ, package.json ํ์ผ์ ํจํค์ง ์์กด์ฑ์ ๋ช ์ํด ํ๋ก์ ํธ์ ์์กด์ฑ์ ๊ด๋ฆฌํ ์ ์๋ค.
- ๋ฒ์ ๊ด๋ฆฌ: npm์ ๊ฐ ํจํค์ง์ ๋ฒ์ ์ ๊ด๋ฆฌํ๊ณ ์ ๋ฐ์ดํธํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ํจํค์ง์ ์๋ก์ด ๋ฒ์ ์ด ๋์ค๋ฉด ํด๋น ํจํค์ง๋ฅผ ๊ฐํธํ๊ฒ ์ ๋ฐ์ดํธํ ์ ์๋ค.
- ์คํฌ๋ฆฝํธ ์คํ: package.json ํ์ผ์ ์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, npm start ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ํ๋ก์ ํธ๋ฅผ ์์ํ ์ ์๋ค.
- ์ ์ญ ์ค์น: npm์ ์ฌ์ฉํ์ฌ ์ ์ญ์ ์ผ๋ก ์ค์น๋ ํจํค์ง๋ ์์คํ ์ ์ฒด์์ ์ฌ์ฉํ ์ ์๋ค. ์ ์ญ ์ค์น๋ ์ฃผ๋ก ๊ฐ๋ฐ ๋๊ตฌ๋ ์ ํธ๋ฆฌํฐ์ ๊ฐ์ ๊ฒ๋ค์ ์ค์นํ ๋ ์ฌ์ฉ๋๋ค.
- ํจํค์ง ๊ณต์ : npm์ ํจํค์ง๋ฅผ ๊ณต์ ํ๊ณ ๋ฐฐํฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๊ฐ๋ฐ์๋ค์ ์์ ์ด ๋ง๋ ํจํค์ง๋ฅผ npm ๋ ์ง์คํธ๋ฆฌ์ ๋ฐฐํฌํ์ฌ ๋ค๋ฅธ ์ฌ์ฉ์๋ค๊ณผ ๊ณต์ ํ ์ ์๋ค.
๐ Node.js ์ฃผ์ ๊ธฐ๋ณธ ๋ด์ฅ ๋ชจ๋
HTTP: Node.js์์ ์น ์๋ฒ๋ฅผ ๋ง๋ค ๋ ์ฌ์ฉ๋๋ค. HTTP ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฅผ ๋ง๋ค๊ณ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ต์ ๋ณด๋ผ ์ ์๋ค.
- http.createServer([options][, requestListener]): HTTP ์๋ฒ๋ฅผ ์์ฑํ๋ค.
- server.listen(port[, hostname][, backlog][, callback]): ์ง์ ๋ ํฌํธ ๋ฐ ํธ์คํธ์์ ์๋ฒ๋ฅผ ์์ ๋๊ธฐ ์ํ๋ก ๋ง๋ ๋ค.
- server.close([callback]): ์๋ฒ๋ฅผ ๋ซ๋๋ค.
FS(File System): ํ์ผ ์์คํ ์ ์ ๊ทผํ๊ธฐ ์ํ ๋ชจ๋์ด๋ค. ํ์ผ์ ์ฝ๊ณ ์ฐ๋ ๋ฑ์ ํ์ผ ์์ ์ ์ํํ ์ ์๋ค.
- fs.readFile(path[, options], callback): ํ์ผ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฝ๋๋ค.
- fs.writeFile(file, data[, options], callback): ํ์ผ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ค.
- fs.readdir(path[, options], callback): ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฝ๋๋ค.
Path: ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ฅผ ์กฐ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๋ชจ๋์ ์ฌ์ฉํ๋ฉด ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฝ๊ฒ ์กฐ์ํ๊ณ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ค.
- path.join([...paths]): ๊ฒฝ๋ก์ ๊ฐ ๋ถ๋ถ์ ๊ฒฐํฉํ์ฌ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์์ฑํ๋ค.
- path.resolve([...paths]): ์ ๋ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๋ค.
- path.dirname(path): ํ์ผ ๊ฒฝ๋ก์ ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ ๋ฐํํ๋ค.
Events: ์ด๋ฒคํธ๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ ์ ์๋ค.
- emitter.on(eventName, listener): ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๋ค.
- emitter.emit(eventName[, ...args]): ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
OS: ์ด์ ์ฒด์ ์ ์ํธ ์์ฉํ๊ธฐ ์ํ ๋ชจ๋์ด๋ค. ์ด ๋ชจ๋์ ์์คํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์์คํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
- os.hostname(): ํธ์คํธ ์ด๋ฆ์ ๋ฐํํ๋ค.
- os.totalmem(): ์์คํ ์ ์ด ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํธ ๋จ์๋ก ๋ฐํํ๋ค.
- os.platform(): ์คํ ์ค์ธ ์ด์ ์ฒด์ ํ๋ซํผ์ ๋ฐํํ๋ค.
Util: ๊ฐ์ข ์ ํธ๋ฆฌํฐ ํจ์๋ฅผ ์ ๊ณตํ๋ค. ๋ก๊น ๋ฐ ๋๋ฒ๊น ๊ณผ ๊ฐ์ ์์ ์ ๋จ์ํํ ์ ์๋ค.
- util.format(format[, ...args]): ์์ ๋ฌธ์์ด์ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ์์ฑํ๋ค.
- util.inspect(object[, options]): ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ๋๋ฒ๊น ์ ์ฌ์ฉํ๋ค.
Crypto: ์ํธํ ๋ฐ ํด์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ํต์ ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์๋ค.
- crypto.createHash(algorithm): ํด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค..
- hash.update(data[, inputEncoding]): ํด์ฑํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
- hash.digest([encoding]): ํด์ ๊ณ์ฐ์ ์๋ฃํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค.
Net: ๋คํธ์ํฌ ๊ด๋ จ ์์ ์ ์ํํ๊ธฐ ์ํ ๋ชจ๋์ด๋ค. TCP ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ ์ ์๋ค.
- net.createServer([options][, connectionListener]): TCP ๋๋ IPC ์๋ฒ๋ฅผ ์์ฑํ๋ค.
- server.listen(port[, host][, backlog][, callback]): ์ง์ ๋ ํฌํธ์ ํธ์คํธ์์ ์๋ฒ๋ฅผ ์์ ๋๊ธฐ ์ํ๋ก ๋ง๋ ๋ค.
- server.close([callback]): ์๋ฒ๋ฅผ ๋ซ๋๋ค.
'Node.js > Theory' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Node.js] Socket.io (0) | 2024.05.29 |
|---|---|
| [Node.js] Express ํ๋ ์์ํฌ (0) | 2024.05.24 |
๋๊ธ