-
[Database] RDB vs NoSQL - 1업무 자동화/Database 2025. 12. 9. 11:23
1. 데이터베이스 세상의 큰 그림
1-1. 관계형 데이터베이스(RDB, Relational Database)
- 데이터를 테이블(표) 구조로 저장하는 데이터베이스
- 테이블은 행(row, 레코드)과 열(column, 필드)로 이루어짐
- 테이블 간 관계를 PK(Primary Key), FK(Foreign Key) 로 표현
- 데이터를 조작하고 조회하기 위해 SQL(Structured Query Language) 사용
- 예시 제품
- MySQL / MariaDB
- PostgreSQL
- Oracle DB
- MS SQL Server
1-2. NoSQL (Not Only SQL)
- 기존 RDB의 테이블/스키마 모델에서 벗어난 다양한 데이터베이스 계열
- “SQL을 안 쓴다”는 의미가 아니라, SQL만 고집하지 않는다는 의미에 가깝다
- 데이터 구조와 확장 방식에서 RDB와 다른 접근을 취함
- 대표적인 유형
- 문서 지향(Document) DB – 예: MongoDB
- 키-값(Key-Value) 스토어 – 예: Redis
- 칼럼 패밀리(Column Family) – 예: Cassandra
- 그래프(Graph) DB – 예: Neo4j
2. NoSQL의 주요 유형과 특징
2-1. 문서 지향(Document-Oriented) DB
- 데이터를 문서(Document) 단위로 저장
- JSON 또는 JSON 유사 구조(BSON 등)를 사용
- 한 문서 안에 중첩 구조, 배열 등을 자유롭게 넣을 수 있음
- 예시: MongoDB, CouchDB 등
특징
- 스키마가 비교적 유연하다 (필드 추가/삭제가 자유로운 편)
- API 응답(JSON) 구조와 자연스럽게 맞아떨어지는 경우가 많다
- 수평 확장(샤딩)에 초점을 둔 설계가 많다
2-2. 키-값(Key-Value) 스토어
- 데이터를 단순히 키(key) - 값(value) 쌍으로 저장
- 예시: Redis, Memcached 등
- 특징
- 매우 빠른 읽기/쓰기
- 캐시, 세션, 일시적인 데이터 저장에 자주 사용
- 구조가 단순한 대신, 복잡한 조회/집계에는 적합하지 않음
2-3. 칼럼 패밀리(Column Family) DB
- RDB의 테이블과 비슷해 보이지만, 내부 구조와 분산 방식이 다름
- 예시: Cassandra, HBase 등
- 특징
- 매우 큰 규모의 데이터에 대해 수평 확장을 적극적으로 활용
- 특정 패턴의 조회에 매우 빠른 성능을 제공
- 데이터 모델링 시 접근 패턴을 매우 신중하게 설계해야 함
2-4. 그래프(Graph) DB
- 데이터를 노드(Node)와 엣지(Edge) 로 표현
- 예시: Neo4j, JanusGraph 등
- 특징
- 사람-사람, 상품-상품, 노드-노드 간 관계 자체를 1급 데이터로 취급
- 추천, 소셜 네트워크, 경로 탐색 등 복잡한 관계 분석에 특화
3. RDB vs NoSQL, 사고방식의 차이
3-1. 설계 출발점
- RDB
- 정규화를 통해 데이터 중복을 최소화
- 스키마를 먼저 설계하고 그 틀에 맞게 데이터를 적재
- 복잡한 조인을 활용해 관계형 데이터를 조회
- NoSQL
- 중복을 어느 정도 허용하면서, 읽기 패턴 기준 설계를 자주 사용
- “어떤 화면/기능에서 어떤 데이터가 함께 필요할까?”를 먼저 생각
- 자주 같이 조회되는 데이터는 한 문서/레코드 안에 묶기도 한다
3-2. 스키마 유연성과 변경
- RDB
- 스키마(테이블 구조, 컬럼 타입)를 명시적으로 정의
- 스키마 변경(ALTER TABLE)이 필요할 때마다 전체 데이터에 영향
- 안정성, 예측 가능성이 큰 장점
- NoSQL
- 스키마가 느슨하거나, 애플리케이션 레벨에서 관리
- 필드를 추가/변경해도 기존 문서를 반드시 일괄 변환할 필요는 없는 경우가 많음
- 빠른 실험과 변경에 유리
4. MariaDB와 MongoDB
4-1. MariaDB
- 유형: 관계형(RDBMS)
- 특징
- MySQL과 높은 호환성을 유지하는 오픈소스 DB
- SQL 기반 쿼리
- 트랜잭션, 조인, 정규화에 강점
- 사용 예시
- 전통적인 웹 서비스(게시판, 쇼핑몰, ERP 등)
- 금융/회계/정산/재고 관리 등 정합성이 중요한 시스템
4-2. MongoDB
- 유형: 문서 지향(Document) NoSQL DB
- 특징
- JSON 유사 구조(BSON) 문서 저장
- 컬렉션(Collection) 단위로 도큐먼트(Document) 관리
- 스키마 유연성, 수평 확장성(샤딩)에 강점
- 사용 예시
- 로그/이벤트 데이터
- 빠르게 변하는 서비스 모델
- JSON 기반 API 서버와 연계된 데이터 저장소
5. 실무에서 왜 둘을 같이 쓰는가?
현실의 서비스에서는 “RDB vs NoSQL 중 하나만”을 고르는 대신,
각각의 장점을 살려서 함께 사용하는 패턴이 점점 많아지고 있다.예시 패턴
- 핵심 비즈니스 데이터
- 주문, 결제, 정산, 계약, 재고 등
- → MariaDB / 다른 RDB 에 저장 (트랜잭션, 정합성 우선)
- 부가/분석용 데이터
- 사용자 행동 로그, 이벤트, 알림 기록, 추천용 프로필 등
- → MongoDB / NoSQL 에 저장 (확장성, 유연성 우선)
이렇게 하면
- 돈과 관련된 중요한 숫자는 RDB의 안정성을 활용하고,
- 양이 많고 자주 변하는 데이터는 NoSQL의 확장성과 유연성을 활용할 수 있다.
6. 정리
RDB와 NoSQL은 “서로 경쟁하는 관계”라기보다, 각자 강점이 다른 도구 세트에 가깝다.
MariaDB는 전통적인 관계형 DB, MongoDB는 문서 지향 NoSQL DB의 대표 사례로 볼 수 있다.
이후 시리즈에서는- MongoDB의 개념과 용어
- MongoDB vs MariaDB 설계 비교
- 서비스별 DB 선택 가이드
- 실무 체크리스트
를 순서대로 정리한다.
'업무 자동화 > Database' 카테고리의 다른 글
[Database] MongoDB vs MariaDB, 설계 관점 비교 - 3 (0) 2025.12.15 [Database] MongoDB 기본 개념과 용어 정리 - 2 (0) 2025.12.11 [Database] SQL WHERE 구문 정리: 정의와 활용 예시 (0) 2025.11.18 [Database] SELECT 문 실행 순서 (0) 2025.11.16 [Database] SQL 서브쿼리(Subquery) 정리: 개념, 위치별 활용 (0) 2025.11.15