🚀 MongoDB 기본기, RDBMS와 비교하며 쉽게 이해하기
안녕하세요! 이 글에서는 MongoDB의 기본 개념을 RDBMS(MySQL 등)와 비교하면서 쉽게 정리해볼게요.
SQL은 익숙한데 NoSQL이 처음이라면, 아래 비교와 실습 예제만 따라와도 MongoDB 감이 팍 잡힐 거예요!
✅ MongoDB란?
MongoDB는 NoSQL 기반의 문서형 데이터베이스입니다.
데이터를 테이블이 아닌 JSON 형태의 Document로 저장하고, 유연한 스키마를 지원해요.
📌 NoSQL = Not Only SQL
기존 SQL 방식 외에도 다양한 구조의 데이터를 저장할 수 있는 DB
- 스키마가 자유로워서 빠른 개발에 적합
- JSON 형태의 데이터 저장 (BSON으로 처리)
- 수평 확장(Sharding)에 강해 대규모 데이터 처리 가능
1️⃣ RDBMS vs MongoDB 구조 비교
RDBMS (MySQL 등) | MongoDB |
---|---|
Database | Database |
Table | Collection |
Row | Document (JSON 형태) |
Column | Field |
SQL | Mongo Query Language (JavaScript 기반) |
핵심 차이: MongoDB는 스키마 정의 없이, 자유롭게 JSON 형태로 데이터를 저장합니다.
2️⃣ 설치 & 실행 (로컬)
MongoDB 공식 다운로드에서 Community 버전 설치
# MongoDB 서버 실행
mongod
# Mongo Shell 접속
mongosh
최근에는 mongosh가 기본 쉘입니다 (기존 mongo 명령어에서 변경됨).
3️⃣ MongoDB 기본 명령어
# 데이터베이스 목록
show dbs
# DB 선택/생성
use myDB
# 컬렉션에 도큐먼트 삽입
db.users.insertOne({ name: "Alice", age: 25 })
# 컬렉션 조회
show collections
# 도큐먼트 전체 조회
db.users.find()
# 조건 검색 (나이 ≥ 20)
db.users.find({ age: { $gte: 20 } })
4️⃣ 데이터 삽입 비교
🟦 RDBMS
CREATE TABLE users (
id INT AUTO_INCREMENT,
name VARCHAR(50),
age INT
);
INSERT INTO users (name, age) VALUES ('Alice', 25);
🟩 MongoDB
use myDB;
db.users.insertOne({ name: "Alice", age: 25 });
MongoDB는 컬렉션이 없어도 자동 생성되고, 스키마 없이 바로 삽입 가능해요.
5️⃣ 데이터 조회 비교
🟦 MySQL
SELECT * FROM users WHERE age >= 20;
🟩 MongoDB
db.users.find({ age: { $gte: 20 } });
조건문은 SQL과 달리 $gte
, $lte
, $in
같은 연산자를 사용합니다.
6️⃣ 유연한 스키마란?
MongoDB에서는 컬렉션 내 도큐먼트 구조가 서로 달라도 저장이 가능합니다.
// 첫 도큐먼트
{ name: "Tom", age: 30 }
// 두 번째 도큐먼트
{ name: "Jane", email: "jane@example.com" }
→ 초반 개발 속도가 빠르고, 구조가 자주 바뀌는 프로젝트에 적합해요.
7️⃣ 기타 기능 비교 요약
기능 | RDBMS | MongoDB |
---|---|---|
트랜잭션 | 강력 (ACID 보장) | 다중 도큐먼트 트랜잭션 지원 (최신 버전) |
스키마 | 엄격 (정의 필수) | 자유로움 (필요 시 유효성 검사 가능) |
조인 | JOIN으로 자유롭게 가능 | JOIN은 제한적 (Aggregation 사용) |
확장성 | 수직 확장 (서버 성능 ↑) | 수평 확장 (Sharding 지원) |
✨ 마무리 요약
- MongoDB는 테이블 대신 컬렉션, 행(Row) 대신 도큐먼트를 사용
- JSON 스타일 문법으로 간편한 삽입/조회 가능
- 스키마가 자유로워 빠르게 시작할 수 있음
- 대용량 데이터에 강하고, 클라우드 연동이 쉬움
도움이 되셨다면 공감과 구독도 부탁드립니다!😀
'NoSQL > MongoDB' 카테고리의 다른 글
[MongoDB] RDBMS DBA 관점에서의 MongoDB 커리큘럼 (0) | 2025.04.25 |
---|---|
[MongoDB] 성능 튜닝 실전편: 인덱스 전략과 Aggregation Pipeline 최적화 (0) | 2025.04.21 |
[MongoDB] MongoDB 운영 중 자주 발생하는 문제와 실전 대응법 (0) | 2025.04.20 |
[MongoDB] MongoDB DBA가 꼭 챙겨야 할 관리 포인트 정리 (0) | 2025.04.19 |
[MongoDB] MongoDB OpLog 변경하기 (0) | 2025.04.18 |