안녕하세요! 오늘은 백엔드 개발의 중요한 개념 중 하나인 REST API를 활용하여 간단한 도서 관리 미니 프로젝트를 만들어보겠습니다. 이 프로젝트를 통해 RESTful 서비스의 기본적인 작동 방식을 이해하고, 실제로 API를 구현해보는 경험을 쌓을 수 있습니다.
프로젝트 개요
이번 프로젝트는 도서 정보를 CRUD(Create, Read, Update, Delete) 방식으로 관리할 수 있는 간단한 REST API를 개발하는 것입니다. 우리는 Node.js와 Express 프레임워크를 사용하여 서버를 구축하고, MongoDB를 이용하여 데이터베이스를 관리할 것입니다.
환경 설정
먼저, 프로젝트를 위해 필요한 개발 환경을 설정해보겠습니다.
- Node.js 설치: Node.js 공식 웹사이트에서 설치합니다.
- MongoDB 설치: MongoDB 공식 웹사이트에서 설치하거나, MongoDB Atlas를 이용하여 클라우드에서 데이터베이스를 생성합니다.
- 새 프로젝트 생성: 터미널에서 다음 명령어를 사용하여 프로젝트 폴더를 생성하고 초기화합니다.
- 필요한 패키지 설치:
- 도서 추가: POST 요청을
/books엔드포인트에 보내고, JSON 형식으로 도서 정보를 포함합니다. - 도서 목록 조회: GET 요청을
/books엔드포인트에 보내면 등록된 도서 목록을 확인할 수 있습니다. - 도서 수정: PUT 요청을
/books/:id엔드포인트에 보내고, 수정할 도서의 ID와 함께 변경할 정보를 JSON 형식으로 포함합니다. - 도서 삭제: DELETE 요청을
/books/:id엔드포인트에 보내면 해당 도서를 삭제할 수 있습니다.
mkdir book-management
cd book-management
npm init -y
npm install express mongoose body-parser
서버 구현
이제 기본적인 Express 서버를 설정해보겠습니다. server.js 파일을 생성하고 다음 코드를 입력합니다.
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
const PORT = process.env.PORT || 5000;
// MongoDB 연결
mongoose.connect('mongodb://localhost:27017/bookDB', { useNewUrlParser: true, useUnifiedTopology: true });
app.use(bodyParser.json());
// 도서 스키마 정의
const bookSchema = new mongoose.Schema({
title: String,
author: String,
publishedDate: Date
});
const Book = mongoose.model('Book', bookSchema);
// CRUD API 구현
// 도서 추가
app.post('/books', async (req, res) => {
const newBook = new Book(req.body);
await newBook.save();
res.status(201).send(newBook);
});
// 도서 목록 조회
app.get('/books', async (req, res) => {
const books = await Book.find();
res.status(200).send(books);
});
// 도서 수정
app.put('/books/:id', async (req, res) => {
const updatedBook = await Book.findByIdAndUpdate(req.params.id, req.body, { new: true });
res.status(200).send(updatedBook);
});
// 도서 삭제
app.delete('/books/:id', async (req, res) => {
await Book.findByIdAndDelete(req.params.id);
res.status(204).send();
});
// 서버 시작
app.listen(PORT, () => {
console.log(서버가 http://localhost:${PORT}에서 실행 중입니다.);
});
API 테스트
이제 API를 테스트해볼 차례입니다. Postman과 같은 API 테스트 도구를 사용할 수 있습니다. 각 메소드에 대한 요청을 보내어 기능을 확인해보세요.
{
"title": "JavaScript: The Good Parts",
"author": "Douglas Crockford",
"publishedDate": "2008-05-15"
}
마무리
여기까지 REST API 기반의 간단한 도서 관리 미니 프로젝트를 구현해보았습니다. 이 프로젝트를 통해 RESTful API의 기본적인 구조와 동작 방식을 이해하고, Express 및 MongoDB를 활용하는 방법에 대해 배울 수 있었습니다. 실제 프로젝트에는 인증, 에러 처리, 데이터 유효성 검사 등의 추가적인 요소들이 필요하지만, 이 튜토리얼을 통해 기본적인 CRUD 작업을 구현하는 데 도움을 받으셨길 바랍니다. 앞으로 더 복잡한 기능을 추가하거나 다른 기술 스택을 활용한 프로젝트에도 도전해보세요!