IT/DB

NoSQL이란? 쉽게 이해하는 비관계형 데이터베이스 개념 정리

바다, 2025. 7. 23. 16:43
반응형

NoSQL이란?

NoSQL은 “Not Only SQL”의 줄임말로,
전통적인 관계형 데이터베이스(RDBMS)와는 달리,
테이블 구조 없이 다양한 형태의 데이터를 유연하게 저장할 수 있는 데이터베이스이다.

→ 즉, NoSQL은 "SQL이 필요 없다는 의미"가 아니라
"SQL뿐 아니라 더 다양한 데이터 구조를 지원한다"는 뜻이다.

 

NoSQL은 왜 생겼을까?

기존의 SQL 기반 관계형 DB는 다음과 같은 한계를 가지고 있었다.

고정된 스키마 → 데이터 구조가 바뀌면 테이블 설계도 바꿔야 함

수직 확장(Scale-up) 위주 → 서버 성능에 의존

대량의 비정형 데이터 (SNS, 로그, 센서 데이터 등) 처리에 어려움

실시간성 처리 요구 증가

→ 이를 해결하기 위해 유연한 구조 + 수평 확장 + 고성능 처리를 지원하는
NoSQL DB가 등장하게 됨.

 

NoSQL의 특징

특징 설명
스키마 없음 테이블 정의 없이 자유롭게 구조 변경 가능
유연한 구조 JSON, -, 그래프 다양한 형식 지원
수평 확장 용이 서버 여러 대로 분산 저장 처리 가능
실시간 처리 강점 캐시, 조회, 쓰기 속도 매우 빠름
다양한 데이터 유형 처리 정형/비정형/반정형 모두 가능

 

 

NoSQL의 데이터 저장 방식 유형

NoSQL은 내부 구조에 따라 아래처럼 여러 형태로 분류됨.

유형 설명 대표 DB
문서형(Document) JSON 형식 문서 단위 저장 MongoDB, CouchDB
-값형(Key-Value) 단순한 키와 저장 Redis, DynamoDB
컬럼형(Column-Family) 기반 저장 (대규모 분석에 유리) Cassandra, HBase
그래프형(Graph) 노드- 관계 중심 저장 Neo4j, Amazon Neptune

 

예시: MongoDB (문서형 NoSQL)

{

  "user_id": 1,

  "name": "홍길동",

  "email": "hong@test.com",

  "orders": [

    { "id": 101, "total": 50000 },

    { "id": 102, "total": 30000 }

  ]

}

하나의 문서에 사용자 정보와 주문 내역을 중첩 구조로 저장

RDBMS에서는 JOIN이 필요한 구조도 NoSQL에서는 한 문서로 해결 가능

 

 

NoSQL은 언제 사용할까?

상황 NoSQL 적합 여부
데이터 구조가 자주 바뀌는 경우 ✔️ 매우 적합
실시간 읽기/쓰기 성능이 중요한 경우 ✔️
대용량 데이터 분산 저장 ✔️
캐시/세션/로그 저장 ✔️
관계형 연산(JOIN ) 중요한 경우 부적합
데이터 정합성(ACID) 매우 중요한 경우 SQL 권장

 

 

NoSQL과 SQL의 차이 한눈에 보기

항목 SQL (RDBMS) NoSQL
구조 테이블 기반 문서, -
스키마 고정 유연하거나 없음
확장성 수직 확장 수평 확장
트랜잭션 ACID 보장 BASE 모델 (일관성 낮음)
관계 처리 JOIN 가능 대부분 불가능
사용 ERP, 회계, 금융 SNS, 캐시, 로그, IoT

 

마무리 요약

NoSQL은 정형화된 테이블 구조 없이,
유연한 방식으로 데이터를 저장할 수 있는 확장성과 성능 중심의 데이터베이스이다.

정합성이 중요한 전통 시스템에는 SQL,
빠른 처리와 유연성이 중요한 실시간 서비스에는 NoSQL 선택하는 것이 일반적이다.

반응형