
NoSQL(Not Only SQL) 은
전통적인 관계형 데이터베이스(RDBMS)의 한계를 보완하기 위해 등장한
비관계형 데이터베이스 계열을 의미한다.
NoSQL의 핵심 개념은 다음과 같다.
❗ 핵심 포인트
- “SQL을 안 쓴다” ❌
- “관계형 모델이 아닌 저장 구조를 사용한다” ⭕
즉, NoSQL은 SQL의 대체제가 아니라
다른 문제를 해결하기 위한 데이터 저장 방식이다.
관계형 데이터베이스는 오랫동안 표준으로 사용되어 왔다.
| 문제 | 설명 |
|---|---|
| 수평 확장 | 서버 추가(Scale-out)가 어려움, Scale-up 중심 |
| 스키마 변경 | 운영 중 ALTER TABLE 비용 큼 |
| 대용량 로그/이벤트 | 조인 중심 구조와 부적합 |
| 글로벌 서비스 | 단일 DB 병목 및 지연 발생 |
| 클라우드 환경 | 동적 확장에 비효율적 |
➡ 대규모 트래픽과 데이터를 다루는 웹 서비스 / 클라우드 환경에서는
새로운 저장 방식이 필요해졌다.
| 구분 | 설명 |
|---|---|
| Schema-less | 사전에 테이블 구조를 고정하지 않음 |
| Scale-out | 서버를 추가하여 성능·용량 확장 |
| 분산 저장 | 데이터가 여러 노드에 분산 |
| 고가용성 | 복제(Replica) 기반 장애 대응 |
| 유연한 데이터 | JSON, Key-Value, Column 기반 구조 |
NoSQL은 정합성보다 확장성과 가용성을 우선시하는 경우가 많다.

key → value

| RDB | MongoDB |
|---|---|
| Database | Database |
| Table | Collection |
| Row | Document |
| Column | Field |
| Schema 고정 | Schema 유연 |
{
"name": "Kim",
"age": 29,
"skills": ["AWS", "Docker", "Kubernetes"],
"created_at": "2026-01-01"
}
NoSQL은 다음 상황에서 강점을 가진다.
❗ 중요한 점
NoSQL이 RDB를 완전히 대체하지는 않는다.
대부분의 실무에서는 RDB + NoSQL을 함께 사용한다.
NoSQL은 “관계형 DB의 대체”가 아니라
확장성과 유연성을 위한 또 하나의 선택지다.