PromleeBlog
sitemap
aboutMe

posting thumbnail
RDBMS와 NoSQL, 무엇을 선택해야 할까?
RDBMS vs. NoSQL, How to Choose the Right Database

📅

🚀

들어가기 전에 🔗

우리가 만드는 모든 애플리케이션의 심장은 바로 '데이터'입니다.
그리고 이 데이터를 효과적으로 저장하고 관리하기 위한 시스템이 바로 데이터베이스입니다.
오늘은 데이터베이스 세계를 양분하고 있는 두 가지 핵심 패러다임,
관계형 데이터베이스(RDBMS)
NoSQL
의 차이점에 대해 깊이 있게 탐구해 보겠습니다.

이 두 가지는 단순히 기술의 차이를 넘어, 데이터를 바라보는 철학 자체가 다릅니다.
어떤 것이 더 우월한 것이 아니라, 해결하려는 문제에 따라 더 적합한 도구가 있을 뿐입니다.
두 시스템의 특징을 명확히 이해하고, 상황에 맞는 최적의 데이터베이스를 선택할 수 있는 안목을 길러보겠습니다.

🚀

RDBMS 🔗

RDBMS(Relational Database Management System)
, 즉 관계형 데이터베이스는 이름 그대로 데이터 간의 '관계'를 기반으로 하는, 매우 체계적이고 구조화된 시스템입니다.
가장 대표적인 예로는 MySQL, PostgreSQL, Oracle 등이 있습니다.
RDBMS를 가장 쉽게 이해하는 방법은 잘 정리된
엑셀 스프레드시트
를 떠올리는 것입니다.
정형 데이터
정형 데이터

🚀

NoSQL 🔗

NoSQL
은 'Not Only SQL'의 약자로, 관계형 모델의 제약에서 벗어나 훨씬 더 유연하고 다양한 방식으로 데이터를 저장하는 시스템을 통칭합니다.
대표적으로 MongoDB, Redis, Cassandra 등이 있습니다.

🚀

주요 면접 예상 질문 🔗

두 데이터베이스의 차이점은 시스템 설계의 기본이므로, 면접에서 그 이해도를 확인하는 질문이 자주 나옵니다.

1. RDBMS와 NoSQL의 가장 근본적인 차이는 무엇인가요? 🔗

두 시스템의 핵심 철학을 비교하며 설명하는 것이 중요합니다.
가장 근본적인 차이는
데이터를 구조화하는 방식
확장성
에 있습니다.
RDBMS는 정해진 스키마에 따라 데이터를 테이블에 저장하고 테이블 간의 관계를 통해 데이터의 일관성을 보장하는 반면, NoSQL은 스키마 없이 유연한 형태로 데이터를 저장하여 비정형 데이터 처리에 용이합니다.
또한 RDBMS는 주로 서버의 사양을 높이는
수직적 확장
에, NoSQL은 여러 서버에 데이터를 분산하는
수평적 확장
에 더 최적화되어 있습니다.

2. ACID와 BASE에 대해 설명해주세요. 🔗

두 시스템의 데이터 일관성 철학을 이해하고 있는지 묻는 심화 질문입니다.
ACID
는 RDBMS가 데이터 무결성을 보장하기 위해 따르는 원칙입니다.
원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)을 의미하며, '모든 작업이 성공하거나 아니면 아예 실패해야 한다'는 엄격한 트랜잭션을 보장합니다.
반면,
BASE
는 NoSQL이 분산 환경에서의 가용성을 우선하기 위해 따르는 원칙입니다.
기본적인 가용성(Basically Available), 부드러운 상태(Soft state), 궁극적인 일관성(Eventually consistent)을 의미하며, 데이터가 실시간으로 완벽히 일치하지는 않더라도 '결국에는 일관된 상태로 수렴한다'는 것을 목표로 합니다.

3. 어떤 상황에 RDBMS를, 어떤 상황에 NoSQL을 선택하시겠어요? 🔗

이 질문은 실제 상황에 맞춰 기술을 선택할 수 있는 능력을 확인합니다.
데이터의 구조가 명확하고, 데이터 간의 관계가 중요하며, 트랜잭션을 통한 데이터 무결성이 최우선인
금융 서비스나 예약 시스템
등에는
RDBMS
를 선택하겠습니다.
반면, 데이터의 구조가 정해져 있지 않고, 향후 변경될 가능성이 높으며, 대규모 트래픽으로 인한 수평적 확장이 필수적인
소셜 미디어 피드나 로그 데이터, IoT 센서 데이터
등에는
NoSQL
을 선택하는 것이 더 유리할 것입니다.

🚀

결론 🔗

오늘은 데이터베이스 세계의 두 거인, RDBMS와 NoSQL에 대해 알아보았습니다.

참고 🔗