데이터베이스(DB) 종류 및 특징 로드맵
데이터베이스는 데이터의 형태, 저장 방식, 그리고 사용 목적에 따라 다양하게 분류됩니다. 현대 소프트웨어 아키텍처에서 주로 사용되는 유형들을 정리했습니다.
1. 관계형 데이터베이스 (RDBMS)
데이터를 테이블(Table) 형태로 관리하며, 엄격한 스키마와 SQL을 사용하여 데이터 간의 관계를 정의합니다.
- 특징: ACID 트랜잭션 준수, 데이터 무결성 보장, 복잡한 Join 연산 가능.
- 주요 DB: MySQL, PostgreSQL, Oracle, Microsoft SQL Server, MariaDB.
2. NoSQL (비관계형 데이터베이스)
고정된 스키마가 없거나 유연하며, 대용량 데이터 처리와 수평적 확장(Scale-out)에 최적화되어 있습니다.
- Document DB: 데이터를 JSON/BSON 형태의 문서로 저장 (예: MongoDB, CouchDB).
- Key-Value DB: 단순한 Key-Value 쌍으로 데이터를 저장, 속도가 매우 빠름 (예: Redis, DynamoDB).
- Wide-Column DB: 행마다 다른 컬럼을 가질 수 있어 대규모 데이터 처리에 용이 (예: Cassandra, HBase).
- Graph DB: 데이터 간의 관계를 노드와 간선으로 연결하여 저장 (예: Neo4j, JanusGraph).
3. NewSQL
RDBMS의 ACID 특성(데이터 일관성)과 NoSQL의 확장성을 결합한 차세대 데이터베이스입니다.
- 특징: SQL 인터페이스를 제공하면서도 분산 환경에서 높은 확장성을 가짐.
- 주요 DB: CockroachDB, TiDB, Google Spanner.
4. 특수 목적 데이터베이스 (Specialized DB)
특정 비즈니스 요구사항이나 데이터 특성에 맞게 최적화된 DB입니다.
- In-Memory DB: 데이터를 디스크가 아닌 메인 메모리(RAM)에 저장하여 극도의 속도 제공 (예: Redis, Memcached).
- Time-Series DB (TSDB): 시간 흐름에 따른 데이터(로그, IoT 센서 데이터) 저장에 최적화 (예: InfluxDB, Prometheus).
- Vector DB: AI/LLM 시대에 필수적인 벡터 임베딩 데이터를 저장하고 유사도 검색 수행 (예: Pinecone, Milvus, Weaviate).
- Search Engine: 텍스트 검색 및 분석에 특화 (예: Elasticsearch, Solr).
데이터베이스 선택 가이드
| 구분 | RDBMS | NoSQL | NewSQL |
|---|---|---|---|
| 데이터 구조 | 정형 (Strict Schema) | 반정형/비정형 (Flexible) | 정형 |
| 확장성 | 수직적 (Scale-up) | 수평적 (Scale-out) | 수평적 (Scale-out) |
| 우선순위 | 일관성, 무결성 | 가용성, 처리량 | 일관성 + 확장성 |
| 주요 용도 | 금융, ERP, 일반 웹 서비스 | 실시간 빅데이터, 캐싱 | 글로벌 분산 서비스 |