← 질문 목록
#251깊이 0
RDB와 NoSQL 중 무엇을 기준으로 선택하는가?
데이터의 정형성도와 쓰기/읽기 부하량에 따라 결정한다. 엄격한 스키마가 필요하면 RDB를, 유연한 구조와 대용량 처리가 우선이면 NoSQL을 쓴다.
| 기준 | RDB | NoSQL |
|---|---|---|
| 스키마 | 고정적 | 유연함 |
| 확장성 | 수직 확장(Scale-up) | 수평 확장(Scale-out) |
| 트랜잭션 | 대개 ACID를 갖춘다 | 제품과 설정에 따라 ACID일 수도 최종 일관성일 수도 있다 |
정형 데이터는 RDB가 유리하다. 중복은 정규화로 줄이고 무결성은 기본키와 외래키 같은 제약으로 지킨다. 조인은 나눠 둔 것을 다시 붙이는 일이다. 반면 NoSQL은 중복을 허용하며 데이터 접근 속도를 높인다.
트랜잭션 보장 수준이 중요하다면 RDB를 쓴다. 금융 거래처럼 정확한 데이터 일관성이 필수적인 곳에 적합하다.
분산 환경에서 빠르게 확장해야 한다면 NoSQL이 낫다. 샤딩(Sharding)이나 복제(Replication)로 수평적 확장이 용이해 데이터 양이 늘어나도 대응이 가능하다.