Will find a way

[MongoDB] MongoDB 란 무엇인가? 본문

Database/MongoDB

[MongoDB] MongoDB 란 무엇인가?

Jaka_Park 2025. 2. 19. 14:14

들어가기 전

간단한 프로젝트로 프론트와 백을 구축하고 무료로 이용할 수 있는 DB를 찾던 중 MongoDB를 알게 되서 공부하게 됐다. 이번 글에는 MongoDB가 어떤건지에 대해서 알아보는 시간을 가지려고 한다.

 

[출처] : https://velopert.com/436

 

[MongoDB] 강좌 1편: 소개, 설치 및 데이터 모델링 | VELOPERT.LOG

소개 MongoDB는 C++로 작성된 오픈소스 문서지향(Document-Oriented) 적 Cross-platform 데이터베이스이며, 뛰어난 확장성과 성능을 자랑합니다. 또한, 현존하는 NoSQL 데이터베이스 중 인지도 1위를 유지하

velopert.com

 

1. MongoDB란?

MongoDB는 테이블 형태가 아닌 document(JSON)의 형태로 데이터를 저장하며 스키마형 DB다.

SQL 보다 쉽고 빠른 장점을 가지고 있고, NoSQL방식 중 가장 인기가 많다.

 

2. NoSQL?
우리가 DB 하면 흔히 생각 나는 것이 MySQL과 같은 SQL일 것이다. 그렇다면 NoSQL은 무엇일까?

NoSQL 'Not only SQL'의 의미를 가졌으며 기존의 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터 저장소이다.

관계형이 아닌 NoSQL은 Join이 존재하지 않는다.

 

MongoDB는 Document Oriented(문서지향) DB다. Document는 일반적으로 문서라는 뜻이다. 여기서 말하는 Document는 RDMS의 레코드와 비슷한 개념이다. 이 데이터 구조는 한 개 이상의 key-value pair으로 이루어져 있다.

MongoDB 샘플
{
   "_id" : "123",
  "username" : "Jaka",
  "name" : "Jaka_Park"
}

왼쪽이 Key, 오른쪽이 Value다.

 

Document는 동적(dynamic)의 schema 를 갖고있다. 같은 Collection 안에 Document 끼리 다른 schema를 갖고 있을 수 있다.

(즉, 서로 다른 데이터들을 가지고 있을 수 있다.)

 

3. Collection

Collection은 MongoDB Document의 모음이다. Doucment들이 Collection내부에 위치하고 있다. RDMS의 비슷한 개념이지만 RDMS와 달리 따로 Schema를 가지고 있지 않다. Document 부분 설명에 나와있듯이 각 Document들이 동적인 schema를 가지고 있다.

 

RDMS와의 비교

RDBMS MongoDB
Database Database
Table Collection
Tuple / Row Document
Column Key / Field
Table Join Embeded Documents
Primary Key Primay Key (_id)
mysqld mongod
mysql mongo

 

4. 장점

- Schema-less (Schma 가 없다. 같은 Collection 안에 있을지라도 다른 Schema를 가지고 있을 수 있다.)

- 각 객체의 구조가 뚜렷하다

- 복잡한 Join이 없다

- Deep Query ability 문서 지향적 Query Language 를 사용하여 SQL 만큼 강력한 Query 성능을 제공한다.

'Database > MongoDB' 카테고리의 다른 글

[MongoDB] MongoDB 설치 (Mac Homebrew)  (0) 2025.02.19