프로그래밍/CS

[데이터베이스] RDMS와 NoSQL의 차이는 무엇인가요?

노란구슬 2026. 6. 16. 21:49
728x90
반응형
RDBMS와 NoSQL는 어떠한 차이가 있나요?

 

백엔드 개발자 면접에서 자주 나오는 질문 중 하나가 “RDBMS와 NoSQL의 차이는 무엇인가요?”입니다.

이 질문은 데이터 정합성, 트랜잭션, 확장성, 스키마 설계, 데이터 모델링에 대한 이해도 함께 필요한 질문입니다.

 

 

💡 실전 핵심 답변

RDBMS는 데이터를 행과 열로 구성된 테이블에 저장하고, 테이블 간 관계를 SQL과 JOIN으로 처리하는 데이터베이스입니다. 스키마가 명확하고 트랜잭션과 데이터 정합성이 중요한 주문, 결제, 정산 시스템에 적합합니다.
반면 NoSQL은 문서형, 키-값형, 그래프형 등 다양한 데이터 모델을 사용하며, 스키마가 유연하고 수평 확장에 유리한 경우가 많습니다. 따라서 로그, 캐시, 실시간 이벤트처럼 데이터 구조가 자주 바뀌거나 대규모 트래픽 처리가 필요한 환경에 적합합니다.
둘 중 하나가 무조건 우수한 것은 아니며, 데이터 관계와 정합성이 중요하면 RDBMS, 유연성과 확장성이 중요하면 NoSQL을 우선 검토합니다.

 

구분 RDBMS NoSQL
저장 구조 테이블, 행, 열 문서, 키-값, 와이드 컬럼, 그래프
스키마 엄격한 스키마 유연한 스키마
질의 방식 SQL DB별 쿼리 API
관계 처리 JOIN 중심 중첩, 참조, 중복 저장
트랜잭션 ACID에 강함 제품별로 다름
확장 방식 수직 확장 중심 수평 확장에 유리
적합한 데이터 구조화된 데이터 반정형, 비정형 데이터
대표 사용 사례 결제, 주문, 정산, ERP 로그, 캐시, 피드, 이벤트 데이터

 

👩‍💻 RDBMS란?

RDBMS는 Relational Database Management System의 약자로, 관계형 데이터베이스 관리 시스템을 의미합니다.

데이터를 행과 열로 이루어진 테이블에 저장하고, 테이블 간 관계를 기반으로 데이터를 관리합니다.

대표적인 RDBMS로는 MySQL, PostgreSQL, Oracle, SQL Server가 있습니다.

users
- user_id
- name

orders
- order_id
- user_id
- amount
주문 생성
→ 재고 차감
→ 결제 정보 저장
→ 모두 성공하면 COMMIT
→ 하나라도 실패하면 ROLLBACK

주문, 결제, 송금처럼 데이터가 정확하게 일치해야 하는 업무에서 강점이 있습니다.

그래서 저는 대부분 RDBMS를 사용하고 NoSQL 성격이 필요할 경우 PostgreSQL를 사용해서 확장해서 사용합니다. (PostgreSQL를 어떻게 사용하는지는 다음에 또 정리해서 올게요~)

 

🧑‍💻 NoSQL이란?

NoSQL은 전통적인 관계형 테이블 구조에만 의존하지 않는 데이터베이스 계열입니다.

NoSQL은 하나의 특정 데이터베이스를 의미하는 것이 아니라, 문서형, 키-값형, 와이드 컬럼형, 그래프형 등 다양한 데이터 모델을 포함하는 개념입니다.

대표적인 NoSQL 데이터베이스로는 MongoDB, Redis, Cassandra, DynamoDB, Neo4j 등이 있습니다.

MongoDB는 문서형 데이터베이스, Redis는 key-value 저장소, Cassandra는 wide-column 계열, Neo4j는 graph database에 해당합니다.

{
  "orderId": 100,
  "user": {
    "id": 1,
    "name": "Kim"
  },
  "products": [
    {
      "id": 10,
      "name": "Keyboard",
      "quantity": 1
    }
  ]
}

 

 

🤔 RDBMS VS NoSQL 선택하는 상황

RDBMS는 데이터 정합성이 중요한 경우에 적합합니다.

 

  • 주문·결제·정산처럼 데이터 정합성이 중요할 때
  • 여러 데이터가 하나의 트랜잭션으로 처리되어야 할 때
  • 테이블 간 관계가 복잡하고 JOIN이 자주 필요할 때
  • SQL을 이용한 검색, 집계, 통계가 중요할 때
  • 데이터 구조가 비교적 명확하고 안정적일 때
  • 회원, 주문, 결제, 재고, 정산, 계좌 정보 등

 

NoSQL은 데이터 구조가 자주 바뀌거나, 대량의 읽기/쓰기 트래픽을 처리해야 하거나, 수평 확장이 중요한 경우에 적합합니다.

 

  • 데이터 구조가 자주 변경될 때
  • 읽기 또는 쓰기 트래픽이 매우 많을 때
  • 여러 서버에 데이터를 분산해야 할 때
  • 복잡한 JOIN보다 단순한 조회가 많을 때
  • 특정 데이터 모델에 최적화해야 할 때
  • 캐시, 세션, 로그, 클릭 이벤트, 채팅, 실시간 피드 등

 

 

참고자료:

https://docs.oracle.com/en/database/oracle/oracle-database/21/cncpt/introduction-to-oracle-database.html?utm_source=chatgpt.com

 

Database Concepts

This chapter provides an overview of Oracle Database.

docs.oracle.com

https://www.mongodb.com/resources/basics/databases/nosql-explained?utm_source=chatgpt.com

 

What Is NoSQL? NoSQL Databases Explained

Learn what a NoSQL database is, why (and when!) you should use one, and how to get started using one.

www.mongodb.com

https://www.ibm.com/think/topics/sql-vs-nosql?utm_source=chatgpt.com

 

SQL vs. NoSQL Databases: What's the Difference? | IBM

Explore key differences between SQL and NoSQL databases and learn which type of database is best for various use cases.

www.ibm.com

http://f-lab.kr/insight/rdbms-vs-nosql-20240528

 

RDBMS와 NoSQL의 차이점과 사용 사례

이 글에서는 RDBMS와 NoSQL의 차이점과 각각의 사용 사례에 대해 알아봅니다. RDBMS는 데이터 안정성을 보장하고, NoSQL은 대규모 데이터 처리와 빠른 응답 속도가 중요한 애플리케이션에 적합합니다.

f-lab.kr:443

 

728x90
반응형