| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 스프링 스프링부트 차이점 공통점
- cs기술면접
- C#이론
- spring spring boot 차이점 공통점
- OPC-UA Download
- 스프링부트회원가입
- Prosys Opc-ua 다운로드
- 스프링부트 장점
- REST API
- jvm구성요소
- nosql
- C# Blazor
- C# CS
- opc-ua 다운로드
- 스프링부트로그인
- UaExpert download
- UaExpert다운로드
- 컴퓨터과학
- CS
- Blazor Web App
- Service Worker
- prosys opc-ua
- OPC-UA
- Blazor WebAssembly
- java란?
- 스프링부트 단점
- 스프링부트의 장단점
- java란 무엇인가
- 프론트엔드
- 기술면접
- Today
- Total
담비의 개발블로그
[개발관련이야기]인메모리 DB / RDBMS / NoSQL 용도차이 본문
인메모리 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. 수평적 확장: 서버를 계속 추가하며 성능을 선형적으로 늘려야 하는 서비스.
'개발관련이야기' 카테고리의 다른 글
| 키보드에서 a키를 눌렀을때 모니터 a라는 글자가 뜨는 과정은 무엇인가요? (0) | 2025.10.28 |
|---|---|
| url창에 naver.com을 입력하면 네이버가 뜨는 원리는 무엇인가요? (0) | 2025.10.27 |
| Hadoop(하둡이란) (0) | 2025.10.27 |
| [기타]Scheme이란? (1) | 2024.12.12 |
| [PWA]Service Worker가 필요한 이유 (0) | 2024.11.26 |