MongoDB
MongoDB(몽고DB)는 데이터를 표 대신 JSON 과 비슷한 문서 모양으로 저장하는 NoSQL 데이터베이스예요. 문서마다 항목이 달라도 돼서 모양이 자주 바뀌는 데이터에 잘 맞아요.
목차 보기
MongoDB(몽고DB)는 데이터를 표 대신 JSON 과 비슷한 "문서" 모양으로 저장하는 NoSQL 데이터베이스예요. 칸이 정해진 엑셀 대신, 손님마다 적는 내용이 달라도 되는 메모 카드 상자를 떠올리면 돼요.
글 서순명(솔리드그루 이사 · 퓨쳐인프라 운영) · 2026-10-29 작성 · 예시는 2026-10-29 Windows 11 · MongoDB 7.0.39 컨테이너에서 직접 실행
3줄 요약
MongoDB 는 데이터를 어떻게 담나요?
MongoDB 공식 문서는 레코드 하나를 "필드와 값의 쌍으로 된 문서"라고 설명해요. 문서는 JSON 객체와 비슷하고, 값 자리에 다른 문서나 목록(배열)을 넣을 수 있어요(MongoDB 문서). 저장할 때는 BSON 이라는 이진 형식으로 바꿔 담아요.
| MongoDB 말 | 뜻 | SQL DB 로 치면 |
|---|---|---|
| 데이터베이스 | 컬렉션들을 담는 큰 묶음 | 데이터베이스 |
| 컬렉션(collection) | 문서를 모아 두는 상자 | 표(테이블) |
| 문서(document) | 데이터 한 건, JSON 비슷한 모양 | 가로줄 한 줄 |
| 필드(field) | 문서 안의 이름표와 값 | 세로칸 |
| _id | 문서마다 붙는 고유 번호, 안 넣으면 자동 생성 | 기본 키(PRIMARY KEY) |
SQL 데이터베이스와는 뭐가 달라요?
NoSQL 은 흔히 "SQL 만 있는 건 아니다(Not Only SQL)"로 풀어요. 표가 아닌 방식으로 담는 DB 를 묶어 부르는 말이에요. MongoDB 는 그중 문서형이에요.
| 구분 | MongoDB | PostgreSQL · MySQL |
|---|---|---|
| 담는 모양 | 문서(카드마다 항목이 달라도 됨) | 표(모든 줄이 같은 칸) |
| 구조 정하기 | 나중에 바꾸기 쉬워요 | 먼저 칸을 정하고 바꿀 땐 표를 고쳐요 |
| 명령 | find·insertOne 같은 자기 명령 | SQL |
| 정보 잇기 | 한 문서에 같이 넣는 걸 선호 | 표를 나눠 JOIN 으로 이어 붙여요 |
| 라이선스 | SSPL(2018-10-16 이후 버전) | PostgreSQL License · GPL |
요즘은 경계가 흐려졌어요. MongoDB 도 여러 문서를 한 번에 묶는 트랜잭션을 지원해요. PostgreSQL 도 JSONB 칸으로 문서 모양 데이터를 담아요.
직접 해 보면 어떻게 나오나요?
2026-10-29 Windows 11 PC 에서 이미 있던 mongo:7 이미지를 도커로 잠깐 띄워 돌렸어요. 켜고 첫 명령을 받기까지 1,496ms(약 1.5초) 걸렸어요. 명령은 MongoDB 전용 셸인 mongosh 로 실행했어요.
$ cat menus.js (일부)
db.menus.insertMany([
{ name: "아메리카노", price: 4000, options: ["HOT", "ICE"] },
{ name: "케이크", price: 6000, allergy: { 우유: true, 밀: true } }
]);
printjson(db.menus.find({ price: { $lt: 5000 } }, { _id: 0 }).toArray());
db.menus.updateOne({ name: "케이크" }, { $set: { price: 6500 } });
printjson(db.menus.find({}, { _id: 0, name: 1, price: 1 }).sort({ price: -1 }).toArray());
printjson(db.menus.aggregate([{ $group: { _id: null, 평균가: { $avg: "$price" } } }]).toArray());
$ mongosh --quiet menus.js
MongoDB 7.0.39
[
{
name: '아메리카노',
price: 4000,
options: [
'HOT',
'ICE'
]
}
]
[
{
name: '케이크',
price: 6500
},
{
name: '아메리카노',
price: 4000
}
]
[
{
_id: null,
'평균가': 5250
}
]
- 아메리카노엔 온도 옵션을, 케이크엔 알레르기 정보를 넣었어요. 같은 컬렉션인데 문서 모양이 달라도 그대로 들어갔어요.
$lt: 5000은 "5,000 미만"이라는 뜻이에요. 아메리카노만 나왔어요.- 케이크 값을 6,500원으로 고친 뒤 비싼 순으로 정렬했고, 평균 가격 5,250원도 바로 계산했어요.
MongoDB 는 언제 쓰면 좋아요?
상품마다 옵션이 다른 쇼핑몰 카탈로그, 앱 이벤트 기록, 채팅 메시지처럼 모양이 제각각이고 자주 바뀌는 데이터에 잘 맞아요. 자바스크립트로 앱을 만들면 코드의 객체를 거의 그대로 저장할 수 있어 편해요.
반대로 회원·주문·결제·재고가 서로 얽혀 있고 숫자가 딱 맞아야 하는 서비스라면, 관계형 데이터베이스로 시작하는 쪽이 설계하기 쉬워요. 바이브코딩으로 첫 앱을 만든다면 AI 에게 둘 중 무엇이 맞는지 이유와 함께 물어보세요.
자주 하는 오해와 주의할 점
- "구조를 아예 안 정해도 된다" 처음엔 편하지만 같은 정보를 price·Price·가격처럼 제각각 적으면 찾기 어려워져요. 꼭 필요한 필드는 검사 규칙을 걸어 두세요.
- "문서에 뭐든 다 넣으면 된다" 문서 하나는 최대 16MiB 까지예요. 동영상 같은 큰 파일은 따로 저장하고 주소만 넣어요(공식 문서).
- "NoSQL 은 트랜잭션이 없다" MongoDB 는 4.0 부터 여러 문서를 묶는 트랜잭션을 지원해요.
- "무료로 쓰려면 직접 설치해야 한다" 클라우드판 Atlas 에 영구 무료 등급(M0, 저장 512MB)이 있어요(2026-10-29 요금표 확인).
퓨쳐인프라에서는 어떻게 쓰나요?
퓨쳐인프라 앱 호스팅의 원클릭 앱으로 MongoDB 를 버튼 하나로 띄울 수 있어요. PostgreSQL·Redis 도 같은 방식이에요. 개발하면서 데이터를 넣어 보거나 시연을 준비할 때 쓰기 좋아요.
앱 하나는 월 5,500원부터예요(부가세 포함, 분 단위 계산). 가입하면 받는 2,000원 크레딧으로 첫 앱을 만들 수 있어요.
자주 묻는 질문
MongoDB 는 무료예요?
직접 설치해 쓰는 커뮤니티판은 무료예요. 다만 2018-10-16 이후 버전은 SSPL 이라는 라이선스라, MongoDB 자체를 남에게 서비스로 파는 경우엔 조건이 붙어요. 클라우드판 Atlas 에는 저장 512MB 짜리 무료 등급이 있어요(2026-10-29 기준).
BSON 은 JSON 과 뭐가 달라요?
BSON 은 JSON 을 컴퓨터가 빨리 읽게 이진 형식으로 바꾼 거예요. 날짜나 큰 숫자처럼 JSON 에 없는 자료형도 담아요. 사람은 JSON 처럼 보고 쓰면 되고, 저장할 때만 BSON 으로 바뀌어요.
mongosh 는 뭐예요?
MongoDB 에 접속해서 명령을 치고 결과를 보는 셸(터미널 프로그램)이에요. 자바스크립트 문법으로 명령을 써요. 이 글의 예시도 mongosh 로 스크립트 파일을 실행해서 얻었어요.
MongoDB 에서 SQL 을 쓸 수는 없어요?
기본 명령은 find·insertOne·aggregate 같은 자기 명령이에요. SQL 을 쓰지 않아요. 그래서 SQL 에 익숙한 사람은 처음에 낯설 수 있어요. AI 에게 'SQL 로 치면 어떤 뜻인지 같이 적어 줘'라고 부탁하면 이해가 빨라요.
관련 용어
- 데이터베이스 글에는 MongoDB 가 속한 DB 종류와 고르는 법이 있어요.
- SQL은 MongoDB 가 쓰지 않는 표 DB 의 언어예요.
- PostgreSQL은 JSONB 로 문서도 담는 관계형 DB예요.
- MySQL은 웹에서 오래 쓰인 관계형 DB예요.
- JSON은 MongoDB 문서와 생김새가 같은 데이터 형식이에요.
- Redis는 또 다른 NoSQL, 키-값 저장소예요.
- 글쓴이는 서순명(솔리드그루 이사)이에요. 솔리드그루는 국내 IDC 에서 클라우드 서버·앱 호스팅·AI API 서비스 퓨쳐인프라를 운영해요. 2026-10-29에 썼어요.
- 운영사는 솔리드그루예요. 사업자등록번호 875-44-00335 · 서울특별시 구로구 디지털로29길 38, 7층 707호 · 전화 02-6933-6229 · support@futureinfra.ai · 고객센터 · 이용약관
- 한계도 있어요. 실행 결과는 2026-10-29 Windows 11 PC 한 대에서 MongoDB 7.0.39 컨테이너로 한 번 돌린 값이에요. 시작 시간은 PC 사양에 따라 달라요. Atlas 무료 등급과 라이선스는 같은 날 MongoDB 공식 페이지 기준이에요.
- 이해관계를 밝혀 둬요. 퓨쳐인프라(솔리드그루) 블로그예요. 글 안에 자사 앱 호스팅·원클릭 앱 안내가 있어요.
연관 서비스
많이 본 글
-
블로그
도메인 구매 사이트 추천 2026 — 가비아·후이즈 등 15곳 갱신·이전비 비교
같은 .co.kr 도 등록업체 15곳의 3년 값이 3.8만~8.6만 원이에요(11월 3일 KRNIC 표). 갱신가·이전비·해외 업체 조건, 11월 인상 뒤 가비아 실제 화면, 구매처 확인과 기관이전까지 정리했어요. -
블로그
무료 도메인 사이트 추천 2026 — 내도메인.한국·DuckDNS 발급 방법
내도메인.한국·DuckDNS 처럼 계속 무료인 주소 10곳을 11월 3일 서울에서 다시 재고(6곳 6ms 안), 발급 순서·구글·네이버 무료 주소·'첫해 무료'의 2년째 값까지 정리했어요. -
블로그
클로드 MCP·Gemini MCP 연동 방법 2026, MCP 서버 9곳
클로드 MCP(데스크톱·Claude Code)와 Gemini MCP 연동(Gemini CLI·안티그래비티·Gemini 앱·API) 등 9곳의 MCP 서버 연결법을 공식 문서로 정리했어요. 원격 57ms 실측과 오류 해결까지. -
블로그
Gemini 3.9 Flash 나왔나요? 지금 최신은 3.8 Flash — 3.7과 직접 잰 속도·비용
2026년 9월 22일 기준 Gemini 3.9 Flash는 미출시입니다. 최신 3.8 Flash의 사양·가격(2027년 2배 인상)과, 3.7 Flash와 같은 과제로 직접 잰 속도·비용·JSON 형식 준수 차이를 정리했습니다. -
블로그
서버비 한 달 얼마? 방문자 10만 명도 월 3만 2천 원(2026 계산)
월 방문자 1천·1만 명은 1만 4천 원, 10만 명은 3만 2천 원이에요. 요금제별 트래픽 기본 제공량까지 넣어 다시 계산하고 AWS·카페24·가비아·네이버클라우드 값과 숨은 비용을 비교했어요(2026-10-26 확인).
댓글
로그인하면 댓글을 남길 수 있습니다.