node.js

node.js란 비동기적 이벤트 주도 방식, 논블로킹 I/O 모델을 사용하는 구글의 V8 엔진을 장착한 자바스크립트 런타임이다.

런타임이란, 프로그램이 실행될 때 그 프로그램이 머무는 공간을 의미한다. 때문에 브라우저는 자바스크립트 런타임이라고도 한다.

이와 동일하게 node.js 또한 자바스크립트 런타임이므로 자바스크립트로 만든 프로그램을 실행할 수 있다.

이번에는 node.js로 서버를 만들어서 API를 구현해보는 예시를 해보자.

실습

  1. nodejs를 설치한다.

  2. json 파일과 서버파일을 생성한다.

1
2
3
4
5
// a.json
{
"name": "Wix",
"tall": "178"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// b.js
import express from "express";
import fs from "fs";

const app = express();
const port = 3000;
app.get("/", (req, res) => {
const f = JSON.parse(fs.readFileSync("a.json", { encoding: "utf-8" }));
const data = {
name: f.name,
tall: f.tall,
};
res.send(data);
});
app.listen(port, () => {
console.log(`http://127.0.0.1:${port}`);
});
  1. express 모듈 설치
1
npm install express

express는 node.js에서 동작하는 웹 프레임워크이다. 라우팅, 미들웨어, 정적자원서버 설정이 쉬운 장점이 있다.

  1. 터미널로 node 프로그램을 실행해본다.
1
node b.js

get() 메서드에 설정한 경로 /로 get 요청이 보내졌고 서버에서는 name, tall이 담긴 자바스크립트 객체 데이터가 응답으로 전송되었다.

앞서 API의 특징을 설명할 때, 파일 내부가 변경되더라도 API를 변경되지 않도록 설계할 수 있다고 하였다.

a.json 파일 내용을 바꾸더라도 API를 바꿔줄 필요가 없다.