🚀 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 스타일 문법으로 간편한 삽입/조회 가능
  • 스키마가 자유로워 빠르게 시작할 수 있음
  • 대용량 데이터에 강하고, 클라우드 연동이 쉬움

 

도움이 되셨다면 공감과 구독도 부탁드립니다!😀

+ Recent posts