UMC 4기 프로젝트를 진행해보면서 사용했던 MongoDB에 대해 정리해보려 한다.
Mongo DB란?
MongoDB는 NoSQL 데이터베이스의 한 종류로, 분산형 문서 지향 데이터베이스 시스템이다.
MySQL vs Mongo DB
MySQL은 SQL(관계형 DB)을 사용하고 Mongo DB는 NOSQL(비관계형 DB)을 사용한다는 것이 가장 큰 차이점이다.
SQL의 특징
정적인 스키마를 가지며, 데이터를 저장하기 전에 스키마를 정의해야 한다. 또한, 스키마를 변경하려면 데이터베이스 구조를 수정해야 한다.
즉, SQL은 관계에 대해 엄격한 특징을 가진다.
NOSQL의 특징
동적인 스키마를 가지며, 각 문서가 서로 다른 구조를 가질 수 있다. 필드를 추가하거나 수정하는 것이 상대적으로 유연하다.
즉, SQL에 비해 관계에 대해 유연한 특징을 가진다.
Mongo DB 시작하기
Mongo DB 설치하기
Mongo DB 홈페이지에 접속하여 설치를 진행한다.
Mongo DB 서버와 연결하기
먼저 mongoose를 설치해준다.
1
npm install mongoose
몽고db 연결 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
// Connect to the database
mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const db = mongoose.connection;
const handleOpen = () => console.log("✅ Connected to DB");
const handleError = (error) => console.log("❌ DB Error", error);
db.on("error", handleError);
db.once("open", handleOpen);
MONGO_URI에는
1
MONGO_URI=mongodb+srv://test:<password>@cluster0.w9mqdtx.mongodb.net/
password에는 비밀번호를 입력해주면 된다.
느낀점
MySQL이외에 다른 데이터베이스를 써본적이 없었는데, 이번에 MongoDB를 써보면서 스키마에 대해 엄격한 SQL과는 달리 유연한 MongoDB에 대해 편리함을 느꼈다. 하지만 편한만큼 장단점이 존재한다는 것을 알았고, 각 프로젝트의 특징과 데이터들의 특징을 고려해 어떤 데이터베이스를 사용할 지에 대해 비교해보며 사용해야겠다고 느꼈다.