← 아티클 목록

SQL vs NoSQL 차이와 언제 무엇을 쓸까

2028-06-05#database#SQL#NoSQL

"요즘은 NoSQL이 빠르다던데 MySQL 대신 MongoDB를 써야 하나요?" 데이터베이스를 고를 때 흔히 빠지는 고민입니다. 둘은 우열을 가리는 관계가 아니라 데이터를 저장하고 꺼내는 방식이 다른 도구입니다. SQL은 미리 정한 표(테이블) 구조에 데이터를 칸칸이 채우고, NoSQL은 그 틀을 느슨하게 풀어 유연함과 확장성을 얻습니다. 차이를 알면 선택은 의외로 단순해집니다.

핵심 차이 한눈에

항목SQL (관계형)NoSQL
데이터 모델행·열 테이블문서·키값·그래프 등
스키마미리 고정유연하거나 없음
관계 표현JOIN으로 연결보통 중첩·중복 저장
확장 방식수직 확장 위주수평 확장에 강함
일관성ACID 강함종종 결과적 일관성
대표 제품PostgreSQL, MySQLMongoDB, Redis, Cassandra

위 표가 전부입니다. SQL은 구조가 단단해서 데이터 무결성에 강하고, NoSQL은 구조가 느슨해서 변화와 대용량 분산에 강합니다.

예시로 보는 차이

같은 주문 데이터를 SQL은 여러 테이블로 쪼개고 관계로 잇습니다.

SQL
SELECT o.id, u.name, o.total
FROM orders o
JOIN users u ON o.user_id = u.id
WHERE o.status = 'paid';

usersorders를 분리해 두고 JOIN으로 합치니, 사용자 이름이 바뀌어도 한 곳만 고치면 됩니다. 중복이 없어 무결성이 좋습니다.

NoSQL(문서형)은 같은 주문을 통째로 한 문서에 담습니다.

TEXT
{ "id": 1, "user": { "name": "김지훈" }, "total": 30000, "status": "paid" }

조회 한 번에 필요한 정보가 다 들어 있어 빠르지만, 사용자 이름이 바뀌면 관련 문서를 전부 찾아 고쳐야 합니다.

언제 무엇을 고르나

  • SQL — 데이터 간 관계가 분명하고 정확성이 중요한 경우. 결제, 회계, 재고처럼 0 이하 잔액이나 중복 주문을 절대 허용하면 안 되는 도메인에 잘 맞습니다.
  • NoSQL 문서형 — 스키마가 자주 바뀌거나 한 덩어리로 읽고 쓰는 데이터. 상품 카탈로그, 사용자 프로필, 로그가 대표적입니다.
  • NoSQL 키값(Redis) — 캐시, 세션처럼 키로 빠르게 꺼내는 단순 데이터.

판단 기준은 "이 데이터에 관계와 무결성이 핵심인가, 아니면 유연함과 확장이 핵심인가"입니다. 실무에서는 한쪽만 쓰지 않고 주문은 SQL, 캐시는 Redis처럼 함께 쓰는 경우가 더 많습니다.

요점 정리

  • SQL은 고정된 테이블·관계·ACID로 정확성에 강하다.
  • NoSQL은 유연한 스키마와 수평 확장으로 변화·대용량에 강하다.
  • "관계가 핵심이냐 유연함이 핵심이냐"로 고르고, 둘을 섞어 쓰는 게 흔하다.

JOIN으로 테이블을 잇고 스키마를 직접 설계하며 SQL이 무결성을 어떻게 지키는지 확인하는 실습은 데이터베이스 트랙에서 회원가입 없이 무료로 할 수 있습니다.