Node.js와 MongoDB 활용한 초간단 API 구축법

Node.js와 MongoDB를 이용한 간단한 API 구축하기

웹 개발에서 RESTful API는 핵심적인 요소라고 할 수 있습니다. 이번 포스트에서는 Node.js와 MongoDB를 활용하여 간단한 API를 구축하는 과정을 상세히 설명드리겠습니다. 이 과정을 통해 기본적인 CRUD(Create, Read, Update, Delete) 기능을 구현해 보실 수 있습니다.

개발 환경 설정

먼저, 개발을 시작하기 위해 필요한 환경을 설정해야 합니다. Node.js와 MongoDB가 설치되어 있어야 하며, 설치 방법은 공식 문서를 참조하시면 됩니다. 프로젝트를 시작하기 위해 다음과 같은 절차를 따르세요:

  • 새로운 디렉토리를 생성합니다.
  • npm을 사용하여 프로젝트를 초기화합니다.
  • 필요한 패키지를 설치합니다.

터미널에 아래의 명령어를 입력하시면 됩니다:

mkdir my-api-server
cd my-api-server
npm init -y
npm install express mongoose body-parser

서버 설정

패키지를 설치한 후, Express 서버를 설정하고 MongoDB와 연결하는 코드를 작성합니다. 다음과 같이 server.js 파일을 생성해 주세요:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const app = express();
const port = 3000;
// MongoDB 연결
mongoose.connect('mongodb://localhost:27017/mydatabase');
// 미들웨어 설정
app.use(bodyParser.json());
// 간단한 라우트
app.get('/', (req, res) => {
  res.send('Hello World!');
});
// 서버 시작
app.listen(port, () => {
  console.log(Server is running on http://localhost:${port});
});

모델 생성

저장할 데이터의 구조를 정의하기 위해 모델을 생성합니다. MongoDB의 데이터 스키마를 설정하겠습니다. 예를 들어 사용자 정보를 담을 스키마를 정의해 보겠습니다:

const userSchema = new mongoose.Schema({
  name: String,
  email: String,
  password: String,
});
module.exports = mongoose.model('User', userSchema);

라우트 구성

이제 사용자의 데이터를 생성하고 조회하는 API 엔드포인트를 설정하겠습니다. 아래 코드를 사용하여 routes/user.js 파일을 생성하세요:

const express = require('express');
const router = express.Router();
const User = require('../models/User');
// 사용자 생성 API
router.post('/users', async (req, res) => {
  try {
    const user = new User(req.body);
    await user.save();
    res.status(201).send(user);
  } catch (error) {
    res.status(400).send(error);
  }
});
// 사용자 조회 API
router.get('/users', async (req, res) => {
  try {
    const users = await User.find();
    res.status(200).send(users);
  } catch (error) {
    res.status(500).send(error);
  }
});
module.exports = router;

라우트 연결

마지막으로, 생성한 라우트를 서버 파일에서 연결해주어야 합니다. server.js 파일에 다음 코드를 추가합니다:

const userRouter = require('./routes/user');
app.use('/api', userRouter);

API 테스트하기

모든 설정이 완료되었다면 서버를 실행하여 API를 테스트할 수 있습니다. 터미널에서 아래 명령어를 입력하여 서버를 시작하세요:

node server.js

이제 Postman 같은 API 클라이언트를 사용하여 API를 호출해 보세요.

  • POST 요청: http://localhost:3000/api/users – 새 사용자 추가
  • GET 요청: http://localhost:3000/api/users – 모든 사용자 조회

비밀번호 암호화

사용자 정보를 저장할 때 비밀번호와 같은 민감한 데이터를 안전하게 처리하는 것이 중요합니다. bcrypt 패키지를 사용하여 비밀번호를 암호화할 수 있습니다. 먼저 bcrypt를 설치합니다:

npm install bcrypt

사용자를 생성할 때, 비밀번호를 암호화하는 로직을 추가해주십시오.

const bcrypt = require('bcrypt');
// 사용자 생성 API에서 비밀번호 암호화 추가
router.post('/users', async (req, res) => {
  try {
    const hashedPassword = await bcrypt.hash(req.body.password, 10);
    const user = new User({
      name: req.body.name,
      email: req.body.email,
      password: hashedPassword,
    });
    await user.save();
    res.status(201).send(user);
  } catch (error) {
    res.status(400).send(error);
  }
});

결론

Node.js와 MongoDB를 활용하여 간단한 API를 구축하는 방법에 대해 알아보았습니다. CRUD 기능을 구현하면서 API 설계의 기초를 이해하게 되었을 것입니다. 더 나아가 비밀번호 암호화와 같은 보안 요소를 추가하여 안전한 애플리케이션을 개발할 수 있습니다.

이러한 기본기를 바탕으로 더욱 복잡하고 다양한 기능을 추가하여 자신만의 프로젝트를 만들어 보시기 바랍니다. 감사합니다!

자주 물으시는 질문

Node.js와 MongoDB를 사용하여 API를 어떻게 구축하나요?

Node.js와 MongoDB를 결합하여 API를 만들려면 먼저 필요한 패키지를 설치하고, 서버를 설정한 후 데이터 모델을 정의해야 합니다. 그 다음 API 엔드포인트를 구성하면 됩니다.

MongoDB와의 연결을 어떻게 설정하나요?

MongoDB와 연결하려면 Mongoose 라이브러리를 사용하여 데이터베이스 URI를 통해 연결할 수 있습니다. 예를 들어, ‘mongodb://localhost:27017/mydatabase’와 같은 형식으로 연결합니다.

API를 테스트하는 가장 좋은 방법은 무엇인가요?

API를 테스트하기 위해 Postman과 같은 API 클라이언트를 활용할 수 있습니다. 이를 통해 다양한 HTTP 요청을 쉽게 보내고 응답을 확인할 수 있습니다.

비밀번호를 안전하게 저장하는 방법은?

비밀번호와 같은 민감한 정보를 안전하게 보호하기 위해 bcrypt 라이브러리를 사용해 해싱하는 것이 좋습니다. 이를 통해 데이터베이스에 평문 비밀번호가 저장되지 않도록 할 수 있습니다.

Tags: No tags

Add a Comment

Your email address will not be published. Required fields are marked *