Express에서 MongoDB Atlas 연결하기: 클라우드 데이터베이스 활용 가이드
Express에서 MongoDB Atlas 연결하기
MongoDB Atlas는 클라우드 기반의 데이터베이스 솔루션으로, 확장성과 관리의 편리함을 제공합니다. 이 문서에서는 Express 애플리케이션에서 MongoDB Atlas에 연결하는 방법을 단계별로 설명합니다. 또한 Mongoose를 활용하여 데이터베이스 작업을 효율적으로 처리하는 방법도 다룹니다.
1. MongoDB Atlas 계정 및 클러스터 생성
-
MongoDB Atlas 가입
MongoDB Atlas에 가입하고 계정을 만듭니다. - 클러스터 생성
- Atlas 대시보드에서 “Create a Cluster” 버튼을 클릭하고 무료 클러스터를 생성합니다.
- 클러스터를 설정한 후에는 몇 분 정도의 배포 시간이 필요합니다.
- 데이터베이스 사용자 생성 및 네트워크 IP 설정
- Database Access 메뉴에서 새로운 사용자(username, password)를 생성합니다.
- Network Access 메뉴에서 IP 주소를 추가합니다.
- 로컬 개발 환경에서는 “Add Current IP Address”를 클릭하거나
0.0.0.0/0
을 입력해 모든 IP를 허용할 수 있습니다.
- 로컬 개발 환경에서는 “Add Current IP Address”를 클릭하거나
- MongoDB URI 가져오기
- 클러스터 대시보드에서 “Connect” 버튼을 클릭합니다.
- “Connect your application” 옵션을 선택한 후 URI를 복사합니다.
URI는 다음과 같은 형식입니다:
mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/<dbname>?retryWrites=true&w=majority
2. Express 프로젝트 설정
- Express 프로젝트 생성
터미널에서 Express 프로젝트를 생성합니다.mkdir my-express-app cd my-express-app npm init -y npm install express mongoose dotenv
- 프로젝트 구조
프로젝트의 구조는 다음과 같이 설정할 수 있습니다:my-express-app/ ├── node_modules/ ├── .env ├── app.js ├── package.json ├── package-lock.json
3. 환경 변수 설정
- 프로젝트 루트에
.env
파일을 생성하고 MongoDB URI를 추가합니다:MONGODB_URI=mongodb+srv://<username>:<password>@cluster0.xxxxx.mongodb.net/<dbname>?retryWrites=true&w=majority
.env
파일을 안전하게 관리하기 위해.gitignore
에 추가합니다:.env
4. Express와 MongoDB 연결 코드 작성
app.js
파일 생성 및 작성const express = require("express"); const mongoose = require("mongoose"); const dotenv = require("dotenv"); // Load environment variables dotenv.config(); const app = express(); const PORT = 3000; // MongoDB 연결 const connectDB = async () => { try { await mongoose.connect(process.env.MONGODB_URI, { useNewUrlParser: true, useUnifiedTopology: true, }); console.log("MongoDB 연결 성공!"); } catch (error) { console.error("MongoDB 연결 실패:", error); process.exit(1); // 실패 시 프로세스 종료 } }; // Middleware 설정 app.use(express.json()); // 라우트 설정 app.get("/", (req, res) => { res.send("Hello, MongoDB with Express!"); }); // 서버 시작 및 DB 연결 connectDB().then(() => { app.listen(PORT, () => { console.log(`서버가 포트 ${PORT}에서 실행 중입니다.`); }); });
- MongoDB 연결 테스트
node app.js
- “MongoDB 연결 성공!” 메시지가 나오면 MongoDB Atlas와의 연결이 완료된 것입니다.
5. 추가 팁
- Mongoose 스키마 및 모델 작성
데이터베이스 작업을 위해Mongoose
의 스키마와 모델을 정의할 수 있습니다.const mongoose = require("mongoose"); const userSchema = new mongoose.Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true }, age: { type: Number, required: false }, }); const User = mongoose.model("User", userSchema); module.exports = User;
- CRUD 작업 예시
const User = require("./models/User"); app.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); } });
위의 내용을 따라 하면 Express에서 MongoDB Atlas에 안전하게 연결할 수 있습니다. 추가적인 질문이 있으면 언제든 물어보세요! 😊
Leave a comment