pageservice.tistory.com

서버 & 백엔드 기초/Mongo DB

『 MongoDB Atlas 실전 연동 가이드 ⑤』 MongoDB Atlas와 연결된 Node.js에서 CRUD 실습하기

free21 2025. 6. 24. 12:15

5강. MongoDB Atlas와 연결된 Node.js에서 CRUD 실습하기

이번 강의에서 다룰 내용

이번 강의에서는 MongoDB Atlas에 실제 데이터를 삽입, 조회, 수정, 삭제(CRUD) 하는 실습을 진행합니다. 연결된 데이터베이스가 실제로 동작하는지 검증하는 가장 중요한 과정입니다.

Mongoose 모델 생성

  1. models/User.js 파일 생성
  2. 사용자 정보를 담을 스키마 작성
// models/User.js
import mongoose from 'mongoose';

const userSchema = new mongoose.Schema({
  name: String,
  email: String,
  age: Number,
});

const User = mongoose.model('User', userSchema);
export default User;


Express 라우팅으로 CRUD 구현

// server.js (이전 코드에 이어서 작성)
import express from 'express';
import connectDB from './db/mongoose.js';
import User from './models/User.js';

const app = express();
connectDB();
app.use(express.json());

// CREATE - 사용자 추가
app.post('/users', async (req, res) => {
  const user = new User(req.body);
  await user.save();
  res.json(user);
});

// READ - 모든 사용자 조회
app.get('/users', async (req, res) => {
  const users = await User.find();
  res.json(users);
});

// UPDATE - 사용자 수정
app.put('/users/:id', async (req, res) => {
  const updated = await User.findByIdAndUpdate(req.params.id, req.body, { new: true });
  res.json(updated);
});

// DELETE - 사용자 삭제
app.delete('/users/:id', async (req, res) => {
  await User.findByIdAndDelete(req.params.id);
  res.sendStatus(204);
});

app.listen(3000, () => {
  console.log('http://localhost:3000 서버 실행 중');
});


CRUD 테스트 방법

Postman 또는 Thunder Client 사용

  1. POST /users
  2. { "name": "홍길동", "email": "hong@example.com", "age": 30 }
  3. GET /users
    → 전체 사용자 목록 조회
  4. PUT /users/:id
    → 특정 사용자의 age만 수정
  5. DELETE /users/:id
    → 사용자 삭제

Atlas 웹 UI 확인

  • MongoDB Atlas → Cluster → Browse Collections
  • 데이터가 실시간으로 삽입/삭제되는 것을 확인 가능


단계 요약

  • mongoose 모델 생성으로 MongoDB 구조 정의
  • express로 CRUD API 구현
  • Atlas와 연동된 데이터베이스에서 실시간 데이터 조작 확인
  • Postman이나 VS Code 확장으로 테스트 가능


이로써 Node.js 백엔드와 MongoDB Atlas를 연동하고 실질적인 데이터 작업까지 마무리했습니다. 이후에는 React, Vue와 같은 프론트엔드와 연결하거나, 배포 환경에서 사용하는 방법까지 확장 가능합니다.

 

💬 댓글

이번 글이 도움이 되었길 바랍니다. 궁금한 점이나 요청이 있다면 언제든 댓글로 남겨주세요. 댓글은 저에게 큰 힘이 됩니다. 다음 글도 기대해주세요.
▲ TOP