Node.js 마스터 클래스 Ep 3. Express.js로 REST API 만들기

Ep 3. Express.js로 REST API 만들기

자바스크립트 파일(`*.js`)을 실행하는 것까지는 해봤는데, 웹 브라우저에서 접속할 수 있는 '서버'는 어떻게 만들까요? Node.js의 기본 모듈인 `http`를 써도 되지만, 우리는 더 쉽고 강력한 도구인 Express.js를 사용할 겁니다.

---

1. Express.js란 무엇인가?

Node.js를 위한 웹 프레임워크입니다. "바퀴를 다시 발명하지 말라"는 말처럼, 웹 서버를 만들 때 필요한 기본적인 기능(라우팅, 요청 처리 등)을 미리 만들어 둔 것이죠.

전 세계 Node.js 웹 서버의 대다수가 Express.js(혹은 이를 기반으로 한 NestJS 등)를 사용합니다.

2. 핵심 개념: 라우팅(Routing)과 미들웨어(Middleware)

(1) 라우팅 (Routing)

사용자가 어떤 주소로 들어왔느냐에 따라 다른 안내를 해주는 표지판입니다.

  • `/` (홈) -> "환영합니다!"
  • `/users` (사용자 목록) -> "여기 회원 명단입니다."

app.get('/', (req, res) => {
  res.send('Hello World!');
});

(2) 미들웨어 (Middleware)

요청(Request)과 응답(Response) 사이에서 특정한 작업을 수행하는 함수입니다. 공항 보안 검색대와 비슷합니다. 비행기를 타기 전(응답을 받기 전)에 짐 검사(로그인 확인, 데이터 파싱)를 거치는 과정이죠.

---

🛠️ 오늘의 미션: 나만의 API 서버 만들기

이제 직접 서버를 띄워봅시다!

1. 프로젝트 폴더를 만들고 초기화합니다.

   mkdir my-server
   cd my-server
   npm init -y
   

2. Express를 설치합니다.

   npm install express
   

3. `server.js` 파일을 만들고 아래 코드를 입력합니다.

const express = require('express');
const app = express();
const PORT = 3000;

// JSON 데이터를 받을 수 있게 설정 (미들웨어)
app.use(express.json());

// 1. 홈 화면 (GET /)
app.get('/', (req, res) => {
  res.send('<h1>나의 첫 번째 Node.js 서버!</h1>');
});

// 2. 데이터 반환 API (GET /api/profile)
app.get('/api/profile', (req, res) => {
  const me = {
    name: "홍길동",
    skill: "Node.js",
    level: "Beginner"
  };
  res.json(me);
});

// 서버 시작
app.listen(PORT, () => {
  console.log(`서버가 http://localhost:${PORT} 에서 실행 중입니다.`);
});

4. 터미널에서 `node server.js`를 실행하세요.

5. 웹 브라우저를 열고 `http://localhost:3000`과 `http://localhost:3000/api/profile`에 접속해 보세요.

화면에 글자와 JSON 데이터가 보이나요? 축하합니다! 여러분은 방금 백엔드 개발자가 되셨습니다. 🎉

---

🔗 다음 예고

서버를 껐다 켜면 데이터가 사라지죠? 데이터를 영원히 저장할 수 있는 "데이터베이스 연동과 비동기 처리"에 대해 알아보겠습니다.