IT Developer/Node.js

Node.js 기초 <7. RESTful API 개발: CRUD 구현 및 HTTP 요청 처리>

TEMA_ 2025. 3. 9. 16:47
반응형

노드 Node.js

7. RESTful API 개발: CRUD 구현 및 HTTP 요청 처리 

 

안녕하세요! 태마입니다.

Node.js 기초 강좌입니다.

 

강좌의 경우 

1. 주제 간단 정리

2. 상세 주제 정리

으로 이루어져 있습니다.

 

노드 Node.js

포스팅 시작하겠습니다 :)

 


 

1. 주제 간단 정리

 

1. RESTful API란?

RESTful API는 웹 애플리케이션에서 데이터를 주고받기 위한 규칙을 정의한 아키텍처 스타일입니다.
Node.js와 Express를 사용하면 RESTful API를 쉽게 구축할 수 있습니다.

📌 RESTful API의 특징
클라이언트-서버 구조 → 백엔드와 프론트엔드가 독립적으로 개발 가능
무상태(Stateless) → 서버는 클라이언트의 상태를 저장하지 않음
자원(Resource) 중심 → URL을 통해 데이터 자원에 접근
표준 HTTP 메서드 사용 → GET, POST, PUT, DELETE 활용

RESTful API에서 사용하는 HTTP 메서드

HTTP 메서드설명예제 엔드포인트

GET 데이터 조회 /users (전체 조회), /users/:id (특정 사용자 조회)
POST 데이터 생성 /users (새 사용자 추가)
PUT 데이터 수정 /users/:id (특정 사용자 정보 수정)
DELETE 데이터 삭제 /users/:id (특정 사용자 삭제)

✅ 여기까지 RESTful API의 기본 개념을 배웠습니다!
👉 "그렇다면, Express.js를 사용하여 CRUD API를 어떻게 구현할까?"
2부에서 Express를 사용한 RESTful API 구축 방법을 배워봅시다!

 


반응형

2. 상세 주제 정리

 

1. Express로 RESTful API 기본 서버 만들기

프로젝트 설정 및 Express 설치

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

기본 Express 서버 코드

const express = require("express");
const app = express();

app.use(express.json()); // JSON 요청 본문 처리

app.listen(3000, () => {
  console.log("RESTful API 서버 실행 중 (포트 3000)!");
});

📌 서버 실행 후 http://localhost:3000에서 API 테스트 가능!


 

2. CRUD API 구현 – 사용자(User) 관리

1) GET 요청 – 모든 사용자 조회

const users = [
  { id: 1, name: "Alice" },
  { id: 2, name: "Bob" }
];

app.get("/users", (req, res) => {
  res.json(users);
});

📌 GET /users 요청 시 모든 사용자 데이터를 JSON 형식으로 반환

2) GET 요청 – 특정 사용자 조회

app.get("/users/:id", (req, res) => {
  const user = users.find((u) => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).send("사용자를 찾을 수 없음");
  res.json(user);
});

📌 GET /users/:id 요청 시 특정 사용자 데이터 조회

3) POST 요청 – 새 사용자 추가

app.post("/users", (req, res) => {
  const newUser = { id: users.length + 1, name: req.body.name };
  users.push(newUser);
  res.status(201).json(newUser);
});

📌 POST /users 요청 시 새 사용자 추가 (JSON 본문 필요)

4) PUT 요청 – 사용자 정보 수정

app.put("/users/:id", (req, res) => {
  const user = users.find((u) => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).send("사용자를 찾을 수 없음");

  user.name = req.body.name;
  res.json(user);
});

📌 PUT /users/:id 요청 시 사용자 정보 수정

5) DELETE 요청 – 사용자 삭제

app.delete("/users/:id", (req, res) => {
  const index = users.findIndex((u) => u.id === parseInt(req.params.id));
  if (index === -1) return res.status(404).send("사용자를 찾을 수 없음");

  users.splice(index, 1);
  res.send("사용자가 삭제되었습니다.");
});

📌 DELETE /users/:id 요청 시 특정 사용자 삭제


 

3. RESTful API 테스트 – Postman 활용

1) GET 요청 (모든 사용자 조회)
📌 GET http://localhost:3000/users
📌 응답(JSON)

[
  { "id": 1, "name": "Alice" },
  { "id": 2, "name": "Bob" }
]

2) POST 요청 (새 사용자 추가)
📌 POST http://localhost:3000/users
📌 요청 본문(JSON)

{ "name": "Charlie" }

📌 응답(JSON)

 
{ "id": 3, "name": "Charlie" }

3) PUT 요청 (사용자 정보 수정)
📌 PUT http://localhost:3000/users/3
📌 요청 본문(JSON)

{ "name": "Charlie Updated" }

📌 응답(JSON)

{ "id": 3, "name": "Charlie Updated" }

4) DELETE 요청 (사용자 삭제)
📌 DELETE http://localhost:3000/users/3
📌 응답

 
사용자가 삭제되었습니다.

📌 Postman을 활용하면 API 요청을 쉽게 테스트할 수 있음!


 

4. Express의 RESTful API 확장 – 데이터베이스 연결

현재 API는 메모리에 데이터를 저장하는 방식으로 구현됨.
실제 서비스에서는 MongoDB, MySQL 같은 데이터베이스와 연동하여 데이터를 저장해야 함.

MongoDB와 Mongoose를 사용한 API 확장 예제

$ npm install mongoose
const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/mydb", {
  useNewUrlParser: true,
  useUnifiedTopology: true
});

const UserSchema = new mongoose.Schema({ name: String });
const User = mongoose.model("User", UserSchema);

app.post("/users", async (req, res) => {
  const user = new User({ name: req.body.name });
  await user.save();
  res.status(201).json(user);
});

📌 MongoDB와 연결하여 데이터를 영구적으로 저장 가능!


 

✅ 여기까지 Express.js를 사용한 RESTful API 개발과 CRUD 구현 방법을 배웠습니다!
👉 "그렇다면, API에서 데이터를 영구적으로 저장하려면 어떻게 할까?"
다음 회차에서 Node.js와 데이터베이스 연결 방법을 배워봅시다!

반응형