Develop Diary/Interview

[Interview] NoSQL이란 무엇인가요?

wakelight23 2025. 2. 12. 16:24

NoSQL과 RDBMS

● NoSQL, Not Only SQL의 약자입니다. 관계형 데이터베이스(RDBMS)와는 다른 방식으로
  데이터를 저장하고 관리하는 데이터베이스 아키텍처를 의미합니다.

 

● MySQL은 대표적인 RDBMS으로 정해진 스키마와 테이블 구조를 기반으로
  데이터를 관리합니다. 반면에 NoSQL은 key-value, wide-column, 그래프 등 다양한
  데이터 모델을 활용할 수 있습니다.

  (Hash, JSON 등)

 

● 어느 것이 더 좋다는 것은 없고 목적성에 따라서 사용처가 달라집니다.

  RDBMS는 데이터 안정성을 보장하고, NoSQL은 빠른 응답 속도와 처리량을 제공합니다.

 

NoSQL에 대해 더 자세히

● 높은 확장성과 빠른 응답 속도를 가집니다.

 

● 수평적 확장이 가능하고, 데이터 중복을 허용합니다.

 

● NoSQL은 데이터의 일관성을 보장하지는 않습니다. 데이터 중복에 대한 관리가 필요합니다.

   데이터가 중복이 가능하기 때문에 최신 데이터를 유지하기 위한 추가 작업이 필요합니다.

 

● 대규모 데이터 처리와 빠른 응답 속도가 중요한 애플리케이션에 적합합니다.

  예를 들어, 소셜 네트워크 서비스나 로그 데이터 저장에 사용될 수 있습니다.
  또한 서버에서도 사용이 되는데 분산 서버에서 동시성 처리, 세션 관리로 사용하기에 적합합니다.

 

 

정리하자면

특징 RDBMS(관계형DB) NoSQL(비관계형 DB)
스키마 - 고정된 스키마와 미리 정의된 테이블 구조 사용 - 유연한 스키마 사용으로 데이터 모델이 자유롭다
데이터 모델 - 행과 열로 구성된 테이블 형태 - 문서(Document), key-value, wide-column, 그래프 등 다양한 형태로 정의 가능
확장성 - 수직적 확장(서버의 성능, 하드웨어 업그레이드)에 의존 - 수평적 확장이 용이하며, 노드를 추가하여 쉽게 확장이 가능
쿼리 언어 - SQL을 사용, 복잡한 JOIN과 트랙잭션 지원 - 데이터 모델에 따라 특화된 쿼리 언어 사용
일관성 - ACID 트랜잭션을 보장하여 강력한 데이터 일관성을 제공 - Eventual Confistency(최종 일관성) 모델을 사용
- 가용성과 성능을 우선시함

 

 즉, RDBMS는 데이터 무결성과 관계를 중요시하는 프로그램에 사용됩니다. 정형화된 데이터를 관리하는 데 적합하지만, 애플리케이션 요구사항이 자주 변화하거나 대용량의 비정형 데이터를 다룰 때에는 NoSQL DB를 사용하는 것이 성능과 속도 면에서는 이득을 볼 수 있습니다.