[면접] 기술 면접 - RDBMS vs NoSQL
RDBMS vs NoSQL에 대해서 설명해주세요.
"네, 우선 RDBMS는 구조화된 데이터를 테이블 형태로 저장하는 시스템으로, 각 테이블은 열(속성)과 행(데이터 레코드)로 구성됩니다. RDBMS의 가장 큰 특징은 데이터 간의 관계를 정의할 수 있다는 점입니다. 이러한 관계를 통해 데이터의 무결성을 보장하고 복잡한 쿼리를 통한 정교한 데이터 분석이 가능합니다. 대표적인 RDBMS로는 MySQL, PostgreSQL, Oracle 등이 있습니다. RDBMS는 거의 모든 형태의 애플리케이션에 사용될 수 있으며, 특히 거래 처리가 중요한 금융, 회계 시스템에서 널리 사용됩니다.
반면, NoSQL 데이터베이스는 비관계형 데이터를 저장하는데 초점을 맞추며, 다양한 데이터 모델(Key-Value, Document, Column-Family, Graph 등)을 지원합니다. NoSQL은 스키마가 고정되어 있지 않아, 다양한 형태의 데이터를 유연하게 저장할 수 있습니다. 이는 대규모 분산 시스템에서 빠르게 증가하는 데이터 양을 효율적으로 처리할 수 있게 해줍니다. 대표적인 NoSQL 데이터베이스로는 MongoDB, Cassandra, Redis 등이 있습니다. NoSQL은 빅데이터 처리, 실시간 웹 애플리케이션, IoT(사물인터넷) 등의 분야에서 주로 사용됩니다.
요약하자면, RDBMS와 NoSQL 데이터베이스는 각각의 장단점이 있으며, 애플리케이션의 요구사항과 데이터의 특성에 따라 적합한 기술을 선택해야 합니다. RDBMS는 데이터의 관계와 무결성이 중요할 때 유리하며, NoSQL은 데이터 구조의 유연성과 확장성이 필요한 경우에 적합합니다."
꼬리 질문 과 답변
- RDBMS와 NoSQL을 선택할 때 고려해야 할 요소는 무엇인가요?
"데이터의 구조화 정도, 필요한 확장성, 처리 속도와 복잡성, 일관성과 가용성의 요구 사항 등을 고려해야 합니다. RDBMS는 잘 구조화된 데이터와 복잡한 쿼리, 강력한 트랜잭션 보장이 필요할 때 적합하며, NoSQL은 빠른 처리 속도와 수평적 확장성이 필요한 대용량 데이터 처리에 유리합니다."
- RDBMS의 ACID와 NoSQL의 BASE는 각각 무엇을 의미하나요?
"RDBMS의 ACID는 Atomicity(원자성), Consistency(일관성), Isolation(독립성), Durability(지속성)을 의미하며, 데이터의 신뢰성과 정확성을 보장합니다. NoSQL의 BASE는 Basically Available(기본적인 가용성), Soft state(유연한 상태), Eventually consistent(최종 일관성)을 의미하며, 높은 가용성과 유연한 일관성을 제공합니다."
- NoSQL 데이터베이스의 일반적인 유형에는 어떤 것들이 있나요?
"NoSQL 데이터베이스에는 크게 문서 지향(Document-Oriented), 키-값(Key-Value), 컬럼 패밀리(Column-Family), 그래프(Graph) 데이터베이스 등이 있습니다. 각각은 사용 사례와 데이터 모델에 따라 선택될 수 있습니다."
- RDBMS를 사용할 때의 제약 사항은 무엇인가요?
"RDBMS는 고정된 스키마와 테이블 구조를 요구하기 때문에, 데이터 구조가 자주 변경되는 애플리케이션에는 유연성이 떨어질 수 있습니다. 또한, 대규모 분산 시스템에서의 수평적 확장이 어렵고, 처리 용량 증가를 위한 복잡한 샤딩이나 파티셔닝이 필요할 수 있습니다."
- NoSQL 데이터베이스를 사용해야 하는 시나리오는 어떤 것들이 있나요?
"대규모 분산 환경에서의 대용량 데이터 처리, 데이터 스키마가 자주 변경되거나 정의되지 않은 경우, 빠른 데이터 쓰기와 읽기가 필요한 실시간 분석이나 캐싱, 다양한 형태의 데이터(문서, 그래프 등)를 저장하고 관리해야 하는 경우 등이 NoSQL 데이터베이스를 사용해야 하는 시나리오에 해당합니다."