담비의 개발블로그

[개발관련이야기]인메모리 DB / RDBMS / NoSQL 용도차이 본문

개발관련이야기

[개발관련이야기]인메모리 DB / RDBMS / NoSQL 용도차이

담비12 2025. 11. 11. 20:59

 

인메모리 DB

 

주요 특징

1. 압도적인 속도: 디스크 I/O(입출력)를 건너뛰고 메모리에서 직접 데이터를 읽고 쓰기 때문에 기존 디스크 기반 DB보다 훨씬 빠른다.
2. 휘발성: 메모리에 데이터를 저장하므로, 시스템 종료나 오류 시 데이터가 손실될 수 있어, 보통 백업 및 복구를 위해 디스크 로깅을 병행한다.
3. 데이터 모델: RDBMS 모델을 따르는 것도 있고(예: SAP HANA, VoltDB), NoSQL 모델(주로 Key-Value 형태, 예: Redis, Memcached)을 따르는 것도 있다.

 

 

주요 용도

1. 캐싱(Caching): 자주 접근하는 데이터를 메모리에 저장하여 DB 부하를 줄이고 응답 속도를 높인다.
2. 실시간 데이터 처리: 금융 거래 시스템, 게임 랭킹, 실시간 광고 입찰 등 극도의 성능과 짧은 응답 시간이 요구되는 작업.
3. 세션 관리: 웹 서비스에서 사용자 세션 정보를 빠르게 저장하고 조회할 때.

 

 

 

 

RDBMS (관계형 데이터베이스 관리 시스템)

 

주요 특징
1. 정형 데이터/스키마: 데이터의 구조(스키마)가 명확하게 정의되어 있어야 합니다. 행과 열이 고정된 테이블에 데이터를 저장한다.
2. ACID 준수: 트랜잭션의 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), **지속성(Durability)**을 보장하여 데이터 무결성과 정확성이 매우 높다.
3. SQL 사용: 데이터를 질의하고 조작하기 위해 구조화된 질의 언어인 SQL(Structured Query Language)을 사용합니다.
4. 확장성 한계: 일반적으로 Scale-up (더 좋은 서버로 교체) 방식에 의존하며, 대규모 분산 환경에서의 Scale-out (서버 증설)이 NoSQL에 비해 복잡하다.

주요 용도
1. 정확성과 무결성이 중요할 때: 전자상거래 주문, 은행 거래, 재고 관리 등 데이터의 변경이 잦고 ACID 트랜잭션 보장이 필수적인 시스템.
2. 데이터 간 관계가 복잡할 때: 여러 테이블 간의 JOIN이 필요한 복잡한 보고서 생성이나 비즈니스 로직 처리. (예: 고객, 주문, 상품 정보 등)

 

 

NoSQL (Not Only SQL)

 

주요 특징
1. 유연한 스키마: 스키마가 미리 정해져 있지 않아(Schema-less), 데이터 구조 변경이나 필드 추가가 자유롭고 유연합니다.
2. 다양한 모델: Key-Value, Document, Column-Family, Graph 등 다양한 방식으로 데이터를 저장합니다.
3. 확장성: 데이터를 여러 서버에 분산하여 저장하는 Scale-out이 용이하여 대규모 데이터 처리와 분산 환경에 강력합니다.
4. CAP 이론: RDBMS처럼 엄격한 ACID를 모두 만족하기보다, 보통 가용성(Availability)이나 분할 내성(Partition Tolerance)을 우선시하는 경우가 많습니다.

주요 용도
1. 대용량 및 비정형 데이터: 로그 데이터, 소셜 미디어 피드, 실시간 사용자 데이터 등 데이터 양이 방대하고 구조가 유동적인 빅데이터 환경.
2. 빠른 읽기/쓰기 성능이 중요할 때: 콘텐츠 관리 시스템(CMS), 실시간 분석, 모바일 및 웹 애플리케이션의 사용자 프로필 저장 등.
3. 수평적 확장: 서버를 계속 추가하며 성능을 선형적으로 늘려야 하는 서비스.