NoSQL 데이터베이스란 무엇인가요?

'SQL만이 아니라'의 줄임말인 NoSQL이라는 용어는 관계형 데이터베이스와 같은 규칙 기반의 관계형 테이블이 아닌 테이블 형식이 아닌 형식을 사용하여 데이터를 저장하는 비관계형 데이터베이스를 의미합니다. NoSQL 데이터베이스는 문서, 키-값, 와이드 칼럼, 그래프 등 다양한 비정형 데이터를 지원하는 유연한 스키마 모델을 사용합니다.

조직은 유연성, 수평적 확장성, 개발 용이성을 위해 NoSQL 데이터베이스를 선택합니다.

Google Cloud의 NoSQL 데이터베이스 Bigtable, Memorystore, Firestore가 확장성, 안정성 또는 잦은 데이터 변경에 대한 걱정 없이 애플리케이션을 개선하고 우수한 고객 경험을 제공하는 데 어떻게 도움이 되는지 알아보세요.

NoSQL 데이터베이스의 5가지 유형

NoSQL 데이터베이스에는 크게 5가지 유형이 있습니다. 

문서 데이터베이스

문서 중심 데이터베이스 또는 문서 저장소라고도 하는 문서 데이터베이스는 반정형 데이터를 저장하고 쿼리하는 데 사용됩니다. 데이터는 개발자가 애플리케이션 코드에서 사용하는 데이터 객체와 비슷한 JSON과 유사한 문서에 저장되므로 기본 스키마를 참조하지 않고도 애플리케이션을 쉽게 만들고 업데이트할 수 있습니다. 문서 데이터베이스는 블로그 플랫폼, 전자상거래 및 실시간 분석 애플리케이션, CMS 시스템에 가장 일반적으로 사용됩니다. 

키-값 데이터베이스

키-값 저장소라고도 하는 키-값 데이터베이스는 가장 간단한 유형의 NoSQL 데이터베이스입니다. 데이터는 '키-값' 구조에 저장되며, 고유 키는 문자열, 숫자, 불리언, 복합 객체 등의 값과 쌍을 이룹니다. 키를 사용하여 데이터를 쓰거나 쿼리할 수 있으며, 키는 연결된 값을 저장하거나 검색하는 데 사용됩니다. 키-값 저장소는 웹 애플리케이션의 사용자 환경설정, 장바구니 및 사용자 프로필에 가장 일반적으로 사용됩니다.

열 기반 데이터베이스

열 기반 데이터베이스 또는 와이드 칼럼은 데이터를 행에 저장하고 읽으며 열 집합으로 구성됩니다. 관계형 데이터베이스의 테이블 형식과 유사하지만 와이드 칼럼 저장소의 열 이름과 형식은 단일 테이블의 행마다 다를 수 있습니다. 데이터베이스의 특정 열을 쿼리하고 지정된 열의 값을 빠르게 집계해야 하는 분석 사용 사례에 적합합니다. 와이드 칼럼 저장소는 일반적으로 카탈로그, 사기 감지, 추천 엔진에 사용됩니다.

그래프 데이터베이스

그래프 데이터베이스는 데이터 요소 간의 관계에 초점을 맞춰 데이터를 노드로 구성합니다. 에지라고 하는 노드 간의 이러한 연결은 최고 수준의 요소로 저장되어 데이터 관계를 더 풍부하게 표현하는 동시에 더 간소화된 스토리지와 탐색을 제공합니다. 그래프 데이터베이스는 소셜 미디어 플랫폼, 예약 시스템, 물류 애플리케이션 등 관계를 매핑하는 시스템에서 가장 일반적으로 사용됩니다.

인메모리 데이터베이스

인메모리 데이터베이스는 메모리에 데이터를 저장하므로 실시간 애플리케이션에 지연 시간이 없습니다. 인메모리 NoSQL 데이터베이스의 예시로는 Redis가 있습니다. 인메모리 데이터베이스는 캐싱, 메시징, 스트리밍, 실시간 분석에 가장 일반적으로 사용됩니다.

NoSQL의 작동 방식

NoSQL 기능은 선택한 데이터베이스마다 고유합니다. 그러나 일반적으로 다음과 같은 몇 가지 유사한 높은 수준의 특성을 공유합니다.

  • 데이터에 고정 스키마를 결정하거나 선언할 필요가 없는 유연한 스키마를 따르므로 반정형 데이터와 비정형 데이터에 적합합니다.
  • 용량을 추가하기 위해 수직 확장에 의존할 필요 없이 범위 또는 해시 분포를 사용하여 수평으로 확장할 수 있습니다.
  • 키-값, 와이드 칼럼 또는 인메모리와 같은 특정 데이터 모델과 워크로드 패턴에 최적화되어 있습니다.
  • 많은 NoSQL 데이터베이스는 관계형 및 SQL 데이터베이스의 더 엄격한 ACID(원자성, 일관성, 격리, 내구성) 속성을 따르는 것이 아니라 나중에 어느 시점에서 일관성(예: eventual consistency 모델)을 보입니다.
  • 대부분의 NoSQL 데이터베이스는 샤드 간 트랜잭션 또는 유연한 격리 모드를 지원하지 않습니다.

이러한 기능으로 인해 비관계형 데이터베이스는 대규모, 안정성, 고가용성, 빈번한 데이터 변경이 필요한 애플리케이션에 이상적입니다.

NoSQL의 이점

유연한 데이터 모델 및 스키마

NoSQL 데이터베이스는 다양한 유형의 데이터를 저장하고 반정형 데이터와 비정형 데이터에 적합한 유연한 스키마를 제공합니다. 새로운 유형의 데이터에 쉽게 적용하고 변화하는 데이터 요구사항을 충족하도록 스키마를 발전시킬 수 있습니다.

민첩한 개발

NoSQL의 유연성은 민첩한 앱 개발을 보완합니다. NoSQL 데이터베이스는 다양한 유형의 데이터를 기본 형식으로 저장할 수 있으며, 필요에 따라 데이터 모델을 정의하고 조정할 수 있으므로 개발자는 빠르게 작업을 진행하고, 데이터 변환에 소요되는 시간을 줄이고, 신속하게 반복할 수 있습니다.

확장성

관계형 데이터베이스와 달리 NoSQL 데이터베이스는 데이터와 트래픽이 증가할 때 대부분의 경우 다운타임 없이 쉽게 용량을 늘릴 수 있습니다. 클라우드 기반 데이터베이스는 자동 확장 기능과 유연한 가격 책정 모델을 제공하므로 필요에 따라 손쉽게 확장할 수 있습니다.  

방대한 데이터 스토리지

NoSQL은 복잡한 대규모 데이터 세트를 처리하도록 설계되어 조직에서 빅데이터, 실시간 분석, IoT 사용 사례를 도입하고 확장할 수 있도록 지원합니다. 

고가용성

NoSQL 데이터 아키텍처는 설계에 따라 분산되며 단일 장애점이 없습니다. 또한 간편한 복제 기능을 제공하므로 예기치 않은 중단 및 장애에 대한 저항력이 더 뛰어납니다. 

쿼리 속도 향상

데이터 중복을 줄이기 위해 정규화되는 관계형 데이터베이스와 달리 NoSQL은 빠른 쿼리에 최적화되어 있습니다. 일반적으로 복잡한 조인이 필요하지 않습니다. 즉, 데이터베이스 쿼리가 결과를 더 빠르게 반환합니다. 

NoSQL의 단점

NoSQL 데이터베이스가 최근 몇 년 동안 큰 인기를 얻었지만 관계형 데이터베이스와 비교하면 몇 가지 단점이 있습니다. 비교적 최근에 출시되었으며 관계형 데이터 시스템보다 성숙도가 낮을 수 있습니다. 전반적으로 NoSQL의 경우 개발자 전문성이 낮고 사용 가능한 도구와 제품이 더 적으며 문서화되지 않은 문제가 발생할 경우 지원이 적습니다. 

또한 NoSQL에는 SQL과 같은 공통어가 없습니다. 데이터베이스마다 데이터 쿼리 및 관리를 위한 자체 언어가 있을 수 있습니다.

NoSQL 데이터베이스에는 SQL 데이터베이스의 표준인 데이터 무결성 보호 장치와 높은 수준의 데이터 일관성이 없는 경우가 많습니다. 그러나 FirestoreMongoDB와 같이 ACID 트랜잭션을 지원하는 일부 경우도 있습니다.

하지만 약간의 밀리초 지연 시간이 발생해도 상관없는 대부분의 NoSQL 사용 사례에는 eventual consistency 모델이 충분합니다. 많은 애플리케이션에서 고가용성과 속도는 전역적 strong consistency의 필요성을 훨씬 능가합니다.

SQL과 NoSQL 비교: 사용 사례 및 예시

그렇다면 조직에서 일부 애플리케이션에는 비관계형 NoSQL 데이터베이스를 사용하고 다른 애플리케이션에는 관계형 SQL 데이터베이스를 사용하는 이유는 무엇일까요? 올바른 데이터베이스 선택은 종종 사용 사례에 따라 결정됩니다. SQL과 NoSQL을 사용해야 하는 경우는 다음과 같습니다.

SQL 데이터베이스는 구조화된 관계형 데이터 및 복잡한 쿼리를 관리하는 데 탁월합니다. SQL 데이터베이스는 ACID를 준수하므로 트랜잭션 정보에 의존합니다.

SQL 사용 사례:

  • 금융 거래
  • 의료 데이터 분석 
  • 고객 및 트랜잭션 정보

NoSQL 데이터베이스는 고도로 개인화된 경험을 제공하기 위해 전 세계에 분산된 많은 사용자가 필요한 사용 사례에 특히 효과적입니다. 이러한 대화형 애플리케이션에는 NoSQL 데이터베이스의 민첩성이 적합합니다. 

또한 NoSQL 데이터베이스는 고가용성을 우선시하고, 일관된 성능을 제공하며, 다운타임 없이 빠르게 수평 확장하며, 다양한 유형의 데이터를 대량으로 처리할 수 있습니다. 

이러한 NoSQL 데이터베이스의 기능으로 인해 비관계형 데이터베이스가 대규모, 안정성, 고가용성이 필요한 애플리케이션에 이상적입니다.

가장 일반적인 NoSQL 사용은 다음과 같습니다. 

  • 모바일, 웹 및 IoT 애플리케이션
  • 실시간 웹 애플리케이션
  • 맞춤설정, 추천, 실시간 고객 경험
  • 인벤토리 및 카탈로그 관리
  • 사기 행위 감지 및 신원 인증 
  • 금융 서비스 및 결제
  • 애드테크

Google Cloud로 비즈니스 문제 해결

신규 고객에게는 Google Cloud에서 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
Google Cloud 영업 전문가에게 고유한 문제에 대해 자세히 논의해 보세요.

다음 단계 수행

$300의 무료 크레딧과 20여 개의 항상 무료 제품으로 Google Cloud에서 빌드하세요.

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
콘솔
Google Cloud