Node.js
Node.js๋ JavaScript ๋ฐํ์ ํ๊ฒฝ์ผ๋ก, ์๋ฒ ์ฌ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋จ์ผ ์ค๋ ๋ ์ด๋ฒคํธ ๋ฃจํ๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ์์ด๋ node.js๋ฅผ ํตํด ์ด ์ฝ๋๋ฅผ ์คํํ ์ ์๋ค.
first-app.js ํ์ผ์ ์์ฑํ๊ณ ,
node first-app.js
ํ์ผ๋ช ์ ์ ๋ ฅํด ์คํํ๋ฉด, Hello Node!๊ฐ ์ถ๋ ฅ๋๋ค.
require
: Node.js์์ ๋ชจ๋์ ๋ถ๋ฌ์ค๋ ๋ฐ ์ฌ์ฉ๋๋ ํจ์๋ก, ๋ชจ๋์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ์กฐ๊ฐ์ ๋ด๊ณ ์๋ ํ์ผ์ด๋ฉฐ, require ํจ์๋ฅผ ํตํด ๋ค๋ฅธ ํ์ผ์์ ํด๋น ๋ชจ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
const fs = require("fs");
// fs ๋ชจ๋์ ํ์ฌ ์คํฌ๋ฆฝํธ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋จ
๋งค๊ฐ๋ณ์์ ๋ถ๋ฌ์ฌ ๋ชจ๋์ ์ด๋ฆ์ด๋ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ ๋๋ค.
Node.js๋ ๋ด์ฅ ๋ชจ๋๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์ ์ ์ ๋ชจ๋๋ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
๐๐ป require ํจ์๋ ๋ถ๋ฌ์จ ๋ชจ๋์ ๋ฐํํ๋ฉฐ, ํด๋น ๋ชจ๋์ ๊ธฐ๋ฅ์ด๋ ๋ณ์ ๋ฑ์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
writeFileSync
: Node.js์ ํ์ผ ์์คํ ๋ชจ๋(fs)์์ ์ ๊ณตํ๋ ๋ฉ์๋ ์ค ํ๋๋ก, ๋๊ธฐ์ ์ผ๋ก ํ์ผ์ ์ฐ๋ ์ญํ ์ ํฉ๋๋ค. ๋๊ธฐ์ ์ธ ๋ฉ์๋๋ ์์ ์ด ์๋ฃ๋ ๋๊น์ง ๋ค์ ์ฝ๋ ์งํ์ ์ฐจ๋จํ๋ฉฐ, ์์ ์ด ์๋ฃ๋๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
fs.writeFileSync(file, data[, options])
- file: ํ์ผ์ ๊ฒฝ๋ก ๋ฐ ์ด๋ฆ์ ๋ํ๋ ๋๋ค.
- data: ํ์ผ์ ์ฐ์ฌ์ง ๋ด์ฉ์ ๋ํ๋ ๋๋ค. ๋ฌธ์์ด ๋๋ ๋ฒํผ(Buffer) ํํ๊ฐ ๋ ์ ์์ต๋๋ค.
- options: ์ต์ ๊ฐ์ฒด๋ก, ํ์์ ๋ฐ๋ผ ์ธ์ฝ๋ฉ ๋ฐ ๊ธฐํ ์ค์ ์ ์ง์ ํ ์ ์์ต๋๋ค.
const fs = require("fs");
fs.writeFileSync("hello.txt", "Hello node!");
์๋ฒ์์๋ ๋ธ๋ผ์ฐ์ ์์ ํ ์ ์๊ฑฐ๋ ํ๊ณ ์ถ์ง ์์ ์ผ์ ์ํํ๋ค.
๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์(๋ถ๋ฌ์ค๊ธฐ, ์ ์ฅ), ์ฌ์ฉ์์ธ์ฆ, input validation, Bisiness Logic ๋ฑ
- ์๋ฒ๋ ์ ์ ๊ฐ ์ก์ธ์ค ํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ ํ๋ค.
- ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ํ์ ํ๋ ์ฝ๋๋ฅผ ์๋ฒ์ ์์ฑํด์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉํ๊ฒ ํ๋ค.
Node.js Role
- ์๋ฒ ์ฌ์ด๋ ํ๋ก๊ทธ๋๋ฐ:
- Node.js๋ ์ฃผ๋ก ์๋ฒ ์ฌ์ด๋ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉ๋ฉ๋๋ค. ์ฆ, ์น ์๋ฒ๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ๋ฐ์ ํ์ฉ๋ฉ๋๋ค.
- JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ ์ฌ์ด๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋๋ก ํจ์ผ๋ก์จ, ํ๋ก ํธ์๋์ ๋ฐฑ์๋ ์ธ์ด๋ฅผ ํต์ผ์์ผ์ค๋๋ค.
- ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ:
- Node.js๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ฐ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ์ด๋ฌํ ํน์ฑ์ ๋ง์ ๋์ ์ฐ๊ฒฐ์ ๋ค๋ฃฐ ๋ ํจ์จ์ ์ด๋ฉฐ, ๋์ ์ฒ๋ฆฌ๋์ ์ ๊ณตํฉ๋๋ค.
- ์ด๋ฒคํธ ๋ฃจํ์ ์ฝ๋ฐฑ ํจ์๋ฅผ ํตํด ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํ๋ฉฐ, ๋๊ธฐํ์ง ์๊ณ ๋ค๋ฅธ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
- ์ฑ๊ธ ์ค๋ ๋, ๋
ผ ๋ธ๋กํน I/O:
- Node.js๋ ์ฑ๊ธ ์ค๋ ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ, ๋ ผ ๋ธ๋กํน I/O๋ฅผ ํตํด ๋ง์ ์์ ๋์ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ์ด๋ ๋๊ท๋ชจ ์ค์๊ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ฉํ๋ฉฐ, ์๋ฅผ ๋ค์ด ์ฑํ ์ดํ๋ฆฌ์ผ์ด์ , ์จ๋ผ์ธ ๊ฒ์ ๋ฑ์ ์ ํฉํฉ๋๋ค.
- ๋ชจ๋ ์์คํ
:
- Node.js๋ ๋ชจ๋ ์์คํ ์ ์ง์ํ์ฌ ์ฝ๋๋ฅผ ๋ชจ๋๋ก ๋๋๊ณ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ ๋๋ค.
- require ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋์ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.