서버를 구축하고 애플리케이션을 만들 때 가장 먼저 하는 고민이 있습니다.
"데이터베이스(DB)는 뭘로 하지? 그냥 익숙한 MySQL 쓸까? 아니면 요즘 유행하는 MongoDB 쓸까?"
이 선택 한 번으로 나중에 서비스를 확장할 때 천국과 지옥을 오갈 수 있습니다.
전통의 강자 "RDBMS(SQL)"와 유연함의 대명사 NoSQL의 결정적 차이를 '엑셀'과 '메모장'에 비유하여 비교해 드립니다.

1. SQL (관계형 데이터베이스, RDBMS): 깐깐한 엑셀
"SQL(Structured Query Language)"을 사용하는 관계형 DB는 우리가 흔히 쓰는 *엑셀(Excel)'과 똑같습니다.
행(Row)과 열(Column)이 딱 짜여진 표(Table)에 데이터를 넣습니다.
엑셀에서 '이름' 칸에 숫자를 넣으면 에러가 나듯이, SQL도 미리 정해진 규칙(스키마)을 엄격하게 지켜야 합니다.
- 대표 주자: MySQL, Oracle, PostgreSQL, MariaDB
- 특징:
- 엄격함: 데이터 형식이 딱 맞아야 저장됩니다. 실수가 적습니다.
- 관계(Relation): 여러 개의 표(Table)를 만들고, 이들을 연결(JOIN)해서 복잡한 데이터를 효율적으로 관리합니다.
- 일관성: "돈을 보냈으면, 상대방 통장에 무조건 찍혀야 한다"는 트랜잭션(Transaction) 처리에 아주 강합니다.

2. NoSQL (비관계형 데이터베이스): 자유로운 메모장
"NoSQL(Not Only SQL)"은 '포스트잇'이나 '서류 봉투'*와 같습니다.
정해진 칸이 없습니다. 그냥 종이에 글씨를 써서 봉투에 쑤셔 넣으면 끝입니다.
어떤 봉투에는 '이름'만 있고, 어떤 봉투에는 '이름, 나이, 주소'가 다 있어도 상관없습니다.
- 대표 주자: MongoDB(문서형), Redis(키-값), Cassandra(컬럼형)
- 특징:
- 유연함: 데이터 구조가 수시로 바뀌어도 에러가 안 납니다. 개발 속도가 빠릅니다.
- 확장성: 데이터가 많아지면 서버를 여러 대 붙여서(Scale-out) 성능을 늘리기 쉽습니다.
- 속도: 복잡한 계산(JOIN) 없이 그냥 꺼내기만 하면 되므로, 읽기/쓰기 속도가 엄청나게 빠릅니다.

3. 결정적 차이: 확장성 (Scale-up vs Scale-out)
가장 큰 기술적 차이는 '서버를 키우는 방법'에 있습니다.
- SQL (MySQL)
데이터가 많아지면? "더 비싼 장비(CPU, RAM 업그레이드)"로 교체해야 합니다.
이를 '수직 확장(Scale-up)'이라 하며, 비용이 기하급수적으로 늘어납니다. - NoSQL (MongoDB)
데이터가 많아지면? 싼 컴퓨터를 여러 대 옆으로 연결하면 됩니다.
이를 '수평 확장(Scale-out)'이라 하며, 무한대로 확장이 가능합니다.
4. 선택 가이드: 그래서 뭘 써야 하나요?
"뭐가 더 좋아요?"라는 질문은 틀렸습니다. "어떤 데이터인가요?"가 맞습니다.
✅ SQL (MySQL)을 써야 할 때
- 돈(금융) 관련 데이터: 은행, 결제 시스템, 재고 관리. (데이터가 0.1원이라도 틀리면 안 될 때)
- 구조가 명확한 데이터: 회원 정보, 게시판, 사원 관리 등. (데이터 형식이 거의 안 바뀔 때)
- 복잡한 검색이 필요할 때: "서울에 살면서 30대이고 지난달에 가입한 남자 회원을 찾아줘" 같은 복잡한 쿼리가 많을 때.
✅ NoSQL (MongoDB)을 써야 할 때
- 비정형 데이터: 로그 파일, 소셜 미디어 피드, IoT 센서 데이터. (형식이 제각각일 때)
- 엄청난 양의 데이터: 하루에 수천만 건씩 쌓이는 빅데이터 처리.
- 빠른 개발이 필요할 때: 스타트업 초기처럼 기능이 매일매일 바뀌는 서비스.

5. 요즘은 둘 다 씁니다 (Polyglot Persistence)
최근 트렌드는 하나만 고집하지 않고 "적재적소에 섞어 쓰는 것"입니다.
예를 들어, 중요한 회원 정보와 결제 내역은 MySQL에 저장하고, 실시간 채팅 내역이나 상품 클릭 로그는 MongoDB에 저장하는 식입니다.
여러분의 서비스가 '규칙'이 중요한지, '속도와 확장'이 중요한지 먼저 고민해 보세요. 그 답이 바로 DB를 결정해 줄 것입니다.

📌 함께 읽어보면 좋은 글
데이터베이스의 세계에 입문하셨다면, 가장 기본이 되는 RDBMS인 MySQL을 직접 설치해 보는 것이 좋습니다. 리눅스 서버에 MySQL을 설치하고 설정하는 완벽 가이드를 확인해 보세요.
🔗 Rocky Linux 9에서 MySQL 설치 방법 글 보러가기
혹시 MySQL 대신 100% 무료이면서 호환성이 완벽한 MariaDB를 고려 중이신가요? MySQL의 형제나 다름없는 MariaDB 설치법도 준비되어 있습니다.
🔗 Rocky Linux 9에서 MariaDB 설치 및 설정 글 보러가기
데이터베이스도 결국은 하드디스크 위의 '파일' 형태로 저장됩니다. DB가 데이터를 저장하는 기반인 파일 시스템(File System)의 원리가 궁금하다면 읽어보세요.
🔗 파일 시스템이란?(파일시스템 기능, 종류, 차이점) 글 보러가기
'IT' 카테고리의 다른 글
| VMware 유료화의 대안! Proxmox VE가 도대체 뭐길래? (무료 가상화의 끝판왕) (0) | 2026.01.10 |
|---|---|
| 시놀로지(Synology) vs QNAP vs 자작 NAS: 나에게 맞는 NAS는? (0) | 2026.01.09 |
| VDI (데스크탑 가상화): 내 PC가 데이터센터에 있다? 재택근무의 핵심 VDI 기술과 망분리 환경의 이해 (0) | 2026.01.07 |
| CPU 코어(Core) vs 스레드(Thread): "4코어 8스레드"가 무슨 뜻일까? 물리적인 팔(Core)과 작업하는 손(Thread)의 비유 (0) | 2026.01.06 |
| 펌웨어(Firmware) vs 드라이버(Driver): 하드웨어를 움직이는 두 소프트웨어, 업데이트 순서와 역할의 차이 (0) | 2026.01.05 |