contents

NoSQL에 대해 알아보기 위해 먼저 관계형 데이터베이스와의 간단한 비교를 먼저 해보겠습니다.


1. 데이터 모델 및 구조


2. 트랜잭션 및 일관성


3. 확장성 및 성능


4. 쿼리 및 개발 유연성


5. 사용 사례 및 장단점

구분 RDB (관계형 데이터베이스) NoSQL (비관계형 데이터베이스)
대표 시스템 MySQL, PostgreSQL, Oracle, MSSQL MongoDB, Cassandra, Redis, DynamoDB
적합한 데이터 구조 구조화되어 있으며 안정적 비정형/반정형 데이터, 빠르게 변화하는 데이터
트랜잭션 복잡하고 엄격한 트랜잭션 필요 단순/빠른 CRUD, 복잡한 트랜잭션은 어려움
확장성 수직 확장, 비용/물리적 한계 수평 확장, 저비용 고가용성
데이터 무결성 엄격 (ACID 보장) 느슨하거나 필요시 ACID 지원
개발 유연성 스키마 변경 복잡, 확정적 구조 스키마리스, 형태와 구조의 변화에 유연
주요 활용 사례 금융, ERP, 재고관리 등 소셜 미디어, IoT, 빅데이터, 웹 앱

6. 선택 기준


요약:
관계형 데이터베이스(RDB)는 구조화, 일관성, 신뢰성이 요구되는 곳에, NoSQL은 성능, 확장성, 유연성, 비정형 데이터, 빠른 개발이 중요한 곳에 사용됩니다.
현대 시스템에서는 필요에 따라 두 가지를 혼합하여 사용하는 경우도 많습니다.


1. NoSQL 인덱싱 기본

NoSQL에서 인덱스는 방대한 데이터에서 원하는 문서, 키, 값을 빠르게 찾게 해주는 핵심 역할을 합니다. 전통적인 관계형 데이터베이스가 주로 테이블에 B-트리나 해시 인덱스를 사용하는 것과 달리, NoSQL은 데이터 모델별로 다양한 인덱싱 전략을 사용할 수 있습니다.

주요 NoSQL 인덱스 종류

데이터베이스별 인덱싱


2. 성능 최적화 전략

인덱스 관리 및 최적화

데이터 배치 및 분산

캐싱 활용


3. 데이터 일관성 전략

NoSQL은 성능과 일관성 사이에서 다양한 모델과 기술로 균형을 맞춥니다.

일관성 모델

원자적 연산과 락

충돌 해결


요약 표

항목 NoSQL 접근 방식 장점 단점/트레이드오프
인덱싱 기본, 보조, 복합, 텍스트, 지리 빠른 검색, 다양한 쿼리 쓰기 성능 저하, 인덱스 남용 주의
분산 저장 샤딩, 수평 확장 대규모 확장성, 가용성 일시적 불일치, 복잡성 증가
일관성 최종/강한/가변적 일관성 성능, 선택적 일관성 완전 일치 보장 어려움

결론
NoSQL 데이터베이스는 다양한, 데이터모델별 유연한 인덱싱과 잘 설계된 일관성 전략으로 현대 애플리케이션에 맞게 빠른 조회, 확장성, 신뢰성을 제공합니다. 어떠한 전략을 채택할지는 읽기/쓰기 비율, 일관성 요구, 확장성 목표에 따라 달라집니다.

references