UMC 4기 프로젝트를 진행해보면서 사용했던 MongoDB에 대해 정리해보려 한다.
MongoDB는 NoSQL 데이터베이스의 한 종류로, 분산형 문서 지향 데이터베이스 시스템이다.
MySQL은 SQL(관계형 DB)을 사용하고 Mongo DB는 NOSQL(비관계형 DB)을 사용한다는 것이 가장 큰 차이점이다.
정적인 스키마를 가지며, 데이터를 저장하기 전에 스키마를 정의해야 한다. 또한, 스키마를 변경하려면 데이터베이스 구조를 수정해야 한다.
즉, SQL은 관계에 대해 엄격한 특징을 가진다.
동적인 스키마를 가지며, 각 문서가 서로 다른 구조를 가질 수 있다. 필드를 추가하거나 수정하는 것이 상대적으로 유연하다.
즉, SQL에 비해 관계에 대해 유연한 특징을 가진다.
Mongo DB 홈페이지에 접속하여 설치를 진행한다.
먼저 mongoose를 설치해준다.
npm install mongoose
몽고db 연결 코드
// 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에는
MONGO_URI=mongodb+srv://test:<password>@cluster0.w9mqdtx.mongodb.net/
password에는 비밀번호를 입력해주면 된다.
MySQL이외에 다른 데이터베이스를 써본적이 없었는데, 이번에 MongoDB를 써보면서 스키마에 대해 엄격한 SQL과는 달리 유연한 MongoDB에 대해 편리함을 느꼈다. 하지만 편한만큼 장단점이 존재한다는 것을 알았고, 각 프로젝트의 특징과 데이터들의 특징을 고려해 어떤 데이터베이스를 사용할 지에 대해 비교해보며 사용해야겠다고 느꼈다.
좋은 글 감사합니다. 자주 방문할게요 :)