프로그래밍

Express.js를 이용한 간단한 REST API 서버 구축하기

에그티비 2025. 4. 7. 21:00

Express.js를 이용하여 간단한 REST API 서버를 구축하는 예제.

이 예제는 사용자 정보를 저장하고 관리하는 API입니다.

데이터베이스 없이 메모리(Array)에 저장하는 방식으로 기본 구조를 이해하기.


1단계: 프로젝트 초기화 및 Express 설치

mkdir express-rest-api
cd express-rest-api
npm init -y
npm install express

2단계: 기본 서버 구성 (index.js)

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

app.use(express.json()); // JSON 요청 본문 파싱

// 사용자 데이터를 저장할 배열
let users = [];

// 사용자 전체 조회
app.get('/users', (req, res) => {
  res.json(users);
});

// 특정 사용자 조회
app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ message: 'User not found' });
  res.json(user);
});

// 사용자 추가
app.post('/users', (req, res) => {
  const { name, email } = req.body;
  const newUser = {
    id: users.length + 1,
    name,
    email,
  };
  users.push(newUser);
  res.status(201).json(newUser);
});

// 사용자 수정
app.put('/users/:id', (req, res) => {
  const user = users.find(u => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ message: 'User not found' });

  const { name, email } = req.body;
  if (name) user.name = name;
  if (email) user.email = email;

  res.json(user);
});

// 사용자 삭제
app.delete('/users/:id', (req, res) => {
  const userIndex = users.findIndex(u => u.id === parseInt(req.params.id));
  if (userIndex === -1) return res.status(404).json({ message: 'User not found' });

  const deletedUser = users.splice(userIndex, 1);
  res.json(deletedUser[0]);
});

// 서버 실행
app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});

3단계: 테스트 예시 (Postman 또는 curl)

사용자 생성

POST /users
Body: { "name": "서영", "email": "seoyoung@example.com" }

전체 사용자 조회

GET /users

특정 사용자 조회

GET /users/1

사용자 정보 수정

PUT /users/1
Body: { "name": "서영이", "email": "sy@example.com" }

사용자 삭제

DELETE /users/1

확장 아이디어

  • MongoDB 연동 (Mongoose 사용)
  • 사용자 유효성 검사 (express-validator)
  • 환경변수 관리 (dotenv)
  • 라우터 파일 분리 (routes/user.js)
  • JWT 로그인 기능 추가.

 

Express.js로 만든 REST API 서버를 실행하는 방법

Express.js로 만든 REST API 서버를 실행하는 방법은 아래와 같습니다. 간단하게 순서대로 따라 하면 됩니다.


1단계: Node.js 설치 확인

먼저 Node.js가 설치되어 있어야 합니다. 아래 명령어로 확인합니다.

node -v
npm -v

만약 설치되어 있지 않다면, Node.js 공식 사이트에서 설치하세요.


2단계: 프로젝트 폴더로 이동

cd express-rest-api

위 예제에서 index.js 파일이 있는 디렉터리로 이동합니다.


3단계: 서버 실행

node index.js

혹은 nodemon을 사용하면 코드 변경 시 자동으로 재시작됩니다.

npm install -D nodemon
npx nodemon index.js

4단계: API 테스트

서버가 정상적으로 실행되면 콘솔에 아래 메시지가 출력됩니다:

Server running at http://localhost:3000

이제 REST API 요청을 보낼 수 있습니다. 아래 방법 중 하나로 테스트할 수 있습니다.


방법 A: Postman 사용 (추천)

  • Postman 설치
  • URL 입력: http://localhost:3000/users
  • HTTP 메서드 선택: GET, POST, PUT, DELETE
  • Body 탭에서 JSON 형식 입력 (POST/PUT)
{
  "name": "서영",
  "email": "seoyoung@example.com"
}

방법 B: curl 명령어 사용 (터미널)

curl -X POST http://localhost:3000/users \
-H "Content-Type: application/json" \
-d '{"name": "서영", "email": "seoyoung@example.com"}'

추가 팁: package.json에 스크립트 등록

"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js"
}

이후 아래처럼 실행 가능:

npm run start   # 일반 실행
npm run dev     # 개발 모드 실행 (자동 재시작)