NoSQL 데이터베이스

NoSQL 데이터베이스를 시작하는 데 도움이 되는 개요를 소개합니다.

NoSQL 데이터베이스란?

NoSQL 데이터베이스는 행과 테이블을 사용하는 관계형(SQL) 데이터베이스보다 훨씬 다양한 방식으로 빠르게 바뀌는 대량의 비정형 데이터를 처리할 수 있다는 점을 강조하기 위해 “비관계형”, “NoSQL DB” 또는 “non-SQL”이라고도 합니다.

1960년대부터 다양한 이름으로 존재해 온 NoSQL 기술은 데이터 환경이 변화하고 개발자들이 클라우드, 모바일, 소셜 미디어와 빅 데이터로부터 생성되는 다양한 대규모 데이터를 처리해야 할 필요가 늘어남에 따라 그 인기가 급증하고 있습니다.

바이럴 성격의 유명인 트윗에서 전자 의료 기록에 포함된 의학 정보에 이르기까지, 새로운 데이터와 데이터 형식이 놀라운 속도로 만들어지고 있습니다. NoSQL 데이터베이스는 개발자가 새로운 정보를 저장할 데이터베이스 시스템을 빠르게 만들고 검색, 통합 및 분석을 위해 언제든지 사용할 수 있도록 지원하기 위해 발전을 거듭해 왔습니다.

NoSQL 데이터베이스(NoSQL DB)의 이점

IT 전문가와 개발자들은 NoSQL 데이터베이스를 사용하여 갈수록 다양해지는 데이터 형식 및 모델이라는 문제를 관리하는 한편 예측 불가능한 데이터를 매우 효과적이고 빠른 쿼리 속도로 처리할 수 있습니다. 또한 NoSQL 데이터베이스에서는 기존 NoSQL 워크로드를 클라우드로 원활하게 마이그레이션할 수 있습니다.

민첩한 개발

계획에 없던 상황에 대응할 수 있는 뛰어난 능력을 갖춘 NoSQL DB는 빈번한 소프트웨어 릴리스 주기에도 유연하게 대응하며, 보다 빠르고 민첩한 앱 개발에 적합합니다.

유연한 데이터 처리

개발자들은 NoSQL을 바탕으로 스키마와 쿼리를 빠르고 유연하게 변경하여 데이터 요구 사항에 부응할 수 있습니다. 정보가 집계 데이터로 저장되기 때문에 초기에 스키마 설계를 수행하지 않아도 빠르게 개선을 적용할 수 있습니다.

원하는 규모로 운영

NoSQL DB는 수평적으로 스케일 “아웃”이 가능하며 업그레이드 없이 상대적으로 저렴한 서버를 추가할 수 있기 때문에 뛰어난 운영 이점을 제공하고 비용을 절약해 줍니다. 확장을 통해 더 많은 데이터를 처리하거나 고도로 분산된 서버 클러스터 내에 규모가 큰 단일한 데이터베이스를 보관할 수 있습니다.

NoSQL 데이터베이스로 사용할 수 있는 데이터 모델의 유형

“not only SQL”이라고도 하는 대부분의 고성능 비관계형 데이터베이스는 관계형(SQL) 데이터베이스처럼 고정된 데이터 모델로 제한되지 않고 고도의 정형 데이터도 처리할 수 있습니다.

가장 널리 사용되는 네 가지 NoSQL 데이터베이스 유형은 다음과 같습니다.

키-값

키-값은 해시 테이블을 사용하여 키와 값의 쌍을 저장합니다. 키는 알려졌지만 키 값은 알려지지 않은 경우에 키-값 유형이 가장 적합합니다.

문서

문서 데이터베이스는 문서 전체를 컬렉션이라 불리는 그룹으로 구성하여 키-값 데이터베이스의 개념을 확장합니다. 문서 데이터베이스는 중첩된 키-값 쌍을 지원하며, 문서 내에 있는 모든 속성에 대한 쿼리를 허용합니다.

열 형식

열 형식, 와이드 열 또는 열 패밀리 데이터베이스는 희소 데이터 행에 걸쳐 데이터와 쿼리를 효율적으로 저장하며 데이터베이스의 특정 열에 대한 쿼리 실행 시 이점을 제공합니다.

그래프

그래프 데이터베이스는 노드 및 에지 기반 모델을 바탕으로 상호 연결된 데이터(예: 소셜 네트워크를 사용하는 사용자들 간의 관계)를 표현하고 복잡한 관계를 간단하게 스토리지하고 살펴볼 수 있도록 지원합니다.

관계형(SQL) 데이터베이스와 비관계형(NoSQL) 데이터베이스 중에서 선택하는 방법

사용할 수 없음 NoSQL(비관계형) SQL(관계형)
적합한 환경:
  • 대규모 데이터, 관련 없는 데이터, 확정되지 않은 데이터 또는 빠르게 변화하는 데이터의 처리
  • 스키마 중립적 데이터 또는 앱에 의해 결정되는 스키마
  • 강력한 일관성보다 성능과 가용성이 더 중요한 앱
  • 세계 각지의 사용자에게 서비스를 제공하는 상시 가동형 앱
  • 사전에 파악 가능한 논리적이고 뚜렷한 요구 사항이 있는 관계형 데이터의 처리
  • 앱과 데이터베이스 간에 동기화된 상태로 유지해야 하는 스키마
  • 관계형 구조를 위해 빌드된 레거시 시스템
  • 복잡한 쿼리 또는 다중 행 트랜잭션이 필요한 앱
시나리오:
  • 모바일 앱
  • 실시간 분석
  • 콘텐츠 관리
  • 맞춤화
  • IoT 앱
  • 데이터베이스 마이그레이션
  • 회계, 재무, 뱅킹 시스템
  • 재고 관리 시스템
  • 트랜잭션 관리 시스템
규모:
  • 데이터를 여러 서버로 분할하여 수평적으로 확장
  • 서버 부하를 증가하여 데이터를 수직으로 확장
데이터 모델:
  • 데이터베이스 형식: 키-값, 문서, 열 형식 및 그래프 데이터베이스
  • 데이터베이스 형식에 따라 데이터 저장
  • 데이터베이스 형식: 행으로 구성된 테이블, 관계로 그룹화
  • SQL(구조적 쿼리 언어) 사용
  • 테이블에 있는 행으로 데이터 저장, 관련 있는 데이터는 별도로 저장되고 복잡한 쿼리를 위해 조인됨
사용할 수 없음 비관계형 데이터 모델에 대해 자세히 알아보기 관계형 데이터모델에 대해 자세히 알아보기

어떤 방식으로 NoSQL DB를 평가할 수 있나요?

데이터 모델 선택

여러 NoSQL 데이터베이스가 집계 데이터(하나의 단위로 사용하는 데이터의 컬렉션)를 지향합니다. 따라서 최신 개체 지향 프로그래밍 언어에 사용하기에 좋습니다. NoSQL DB를 선택할 때는 먼저 데이터 모델을 선택한 후에 이를 지원하는 NoSQL 데이터베이스와 각 데이터베이스가 지원하는 프로그래밍 언어 및 SDK를 평가하게 됩니다.

프로그래밍 언어 및 API에 대해 자세히 알아보기

일관성의 장단점 판단

대부분의 NoSQL DB의 경우 강력한 일관성(최신 데이터를 가져올 수 있긴 하나 대기 시간이 필요함)에서 결과적 일관성(응답 속도가 빠르긴 하나 오래된 데이터를 보게 될 수 있음)까지, 일관성 스펙트럼의 양 끝 중에서 선택할 수 있습니다. 그뿐만 아니라 양 끝 사이에 대개 더 많이 있는 다른 일관성 수준을 지원하는 NoSQL 데이터베이스도 여럿 존재합니다. 필요에 맞는 일관성 모델로 가장 뛰어난 유연성과 제어를 제공하는 NoSQL DB를 선택하세요.

일관성, 가용성 및 파티션 허용 오차에 대해 자세히 알아보기

클라우드 및 데이터베이스 마이그레이션 고려하기

분산되어 있으며 수평 확장이 가능하다는 특징을 갖는 NoSQL DB는 클라우드 컴퓨팅에 적합합니다. 물론 온-프레미스에서 또는 하이브리드 시나리오에서 실행되도록 설계된 NoSQL 데이터베이스 시스템도 있긴 합니다.

클라우드 옵션을 평가할 때는 다음을 고려하시기 바랍니다.

  • 지원되는 데이터 모델. 앞으로 사용하려는 모든 데이터 모델을 클라우드 공급자가 지원하나요?
  • 배포 및 운영. 데이터베이스를 배포하고 필요할 때 다른 지역에 복제하는 작업을 얼마나 쉽게 수행할 수 있나요?
  • 지리적 입지. 클라우드 공급자의 데이터 센터는 어디에 있나요? 데이터를 원하는 위치에 둘 수 있나요? 유럽연합 GDPR과 같은 글로벌 데이터 개인 정보 보호 규정을 준수할 수 있나요?
  • 복제 용이성. 데이터베이스를 다른 지리적 지역으로 복제하는 과정은 어떻게 되나요?
  • 확장성. NoSQL 데이터베이스 리소스를 사용하여 충분한 성능을 바탕으로 규모를 확장할 수 있나요? 규모 확장/축소 또는 수평적 확장이 가능한가요?
  • 고가용성. 예기치 않은 장애가 발생할 경우 어떤 일이 일어날까요? 고가용성 및 재해 복구를 기본적으로 제공하는 서비스인가요?
  • 서비스 수준. 제공되는 가용성 또는 대기 시간 보장 수준은 어느 정도인가요?
  • 에코시스템. 이 데이터베이스는 클라우드 플랫폼의 나머지 부분과 긴밀하게 통합되어 있으며 빠르게 연결하여 새로운 솔루션을 만들 수 있나요?

NoSQL 데이터베이스 시스템의 다양한 용도

게임, 전자상거래, 빅 데이터 분석, 실시간 웹앱 등 유연하고 확장성이 뛰어난 고성능 고기능 데이터베이스를 바탕으로 모바일, 웹, 사물 인터넷(IoT) 및 게임 앱을 빌드하여 향상된 사용자 환경을 제공하려는 기업은 NoSQL 기반 데이터 모델을 사용하는 것이 좋습니다.

전 세계에 앱 배포

고가용성 및 재해 복구를 바탕으로 향상된 앱 성능으로 세계 각지에서 더 많은 사용자를 확보할 수 있습니다.

실시간 고객 경험 제공

NoSQL DB를 사용하여 맞춤화, 실시간 추천 및 향상된 사용자 환경을 제공할 수 있습니다.

다양한 IoT 워크로드 처리

IoT 앱의 향상된 쿼리 성능을 통해 즉각적이고 탄력적으로 확장하여 일관된 쓰기 중심의 데이터 수집을 처리할 수 있습니다.

전자상거래 앱 강화

유연한 스키마와 계층 구조 데이터를 사용하는 NoSQL은 제품마다 서로 다른 특성을 갖는 제품 카탈로그 데이터를 저장하는 데 적합합니다.

새로운 콘텐츠로 게이머들의 흥미 유발

게임 내 통계, 소셜 미디어 통합, 순위표와 같은 콘텐츠로 맞춤형 경험을 제공할 수 있습니다. 짧은 대기 시간과 탄력 있는 확장성이 게임 출시 이벤트와 대회 중에 발생하는 트래픽 급증 상황을 지원합니다.

서버리스 앱 빌드

즉각적인 가용성, 자동 인덱싱, 안정적인 수집 속도와 쿼리 성능으로 데이터 수집, 처리량 및 데이터양을 매끄럽게 확장할 수 있습니다.

빅 데이터에서 향상된 인사이트 확보

빠르게 변화하는 방대한 데이터에 대규모로 기계 학습을 구현하여 분석을 통해 더 많은 인사이트를 얻을 수 있습니다.

기존 NoSQL 워크로드를 클라우드로 마이그레이션

클라우드로 마이그레이션하여 온-프레미스 데이터베이스를 관리하는 시간을 절약하면서도 기존의 도구, 드라이버, 라이브러리 및 SDK를 그대로 사용할 수 있습니다.

NoSQL의 기초 및 클라우드로의 데이터베이스 마이그레이션

새로운 수준의 민첩성, 유연성 및 확장성으로 데이터베이스 시스템과 다양한 데이터 형식을 관리하여 앱을 개발하는 방법과 기존 NoSQL 워크로드에 대한 클라우드로의 데이터베이스 마이그레이션에 대해 알아보세요. 개발자를 위한 Azure Cosmos DB 기술 개요를 살펴보고 글로벌 규모로 분산되고 뛰어난 확장성을 자랑하는 다중 모델 데이터베이스 서비스에서 기본 제공하는 NoSQL 지원에 대해 자세히 알아보세요.

NoSQL 데이터를 위한 Azure Cosmos DB에 대해 자세히 알아보기

자세히 보기