관리 메뉴

평행우주 : world 1

[데이터베이스] NoSQL 기본 소개 본문

텃밭 3 : BE/Database

[데이터베이스] NoSQL 기본 소개

parallelworlds 2022. 2. 16. 04:18

MongoDB

 

  • MongoDB는 대표적인 NoSQL 도큐먼트 데이터베이스
  • 도큐먼트 데이터베이스는 데이터를 테이블이 아닌, 문서처럼 저장.
  • 일반적으로 도큐먼트 데이터베이스에서는 JSON 유사 형식으로 데이터를 문서화
  • 각각의 도큐먼트는 데이터를 필드-값 의 형태로 가지고 있고, 컬렉션이라고 하는 그룹으로 묶어서 관리

 

 

NoSQL Database?

MongoDB는 NoSQL 데이터베이스이다.

  • NoSQL 데이터베이스에서는 데이터를 행과 열이 아닌, 체계적인 방식으로 저장
  • MongoDB는 데이터를 도큐먼트의 형태로 저장
  • 도큐먼트는 컬렉션에 저장되기 때문에  MongoDB가 NoSQL 도큐먼트 데이터베이스로 분류되는 이유



NoSQL 기반의 비관계형 데이터베이스가 주로 사용되는 경우.

1. 비구조적인 대용량의 데이터를 저장하는 경우

  • NoSQL 데이터베이스는 관계에 중점을 둔 SQL 데이터베이스보다 자유로운 형태로 데이터를 저장할 수 있다.
  • 소프트웨어 개발에 정형화되지 않은 많은 양의 데이터가 필요한 경우, NoSQL이 효율적

 

2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우

 

  • NoSQL 데이터베이스는 데이터베이스를 클라우드 기반으로 쉽게 분리 할 수 있도록 지원하여, 저장 공간을 효율적으로 사용.
  • DB를 증설할 때, SQL 데이터 베이스에서는 비교적 관리가 어려운 수직적 확장을 하는 반면,
  • NoSQL은 수평적 확장의 형태로 증설하므로, 이론상 무한대로 서버를 계속 분산시켜 DB 증설 가능.

 

3. 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

 

  • NoSQL 데이터베이스의 경우 스키마를 미리 준비할 필요가 없다
  • 따라서 시장에 빠르게 프로토타입을 출시해야 하는 경우 또는,
  • 소프트웨어 버전별로 많은 다운타임(데이터베이스의 서버를 오프라인으로 전환하여 작업하는 시간) 없이 데이터 구조를 자주 업데이트 해야하는 경우에는 일일이 스키마를 수정해주어야 하는 관계형 데이터베이스 보다 NoSQL 기반의 비관계형 데이터베이스가 더 효율적

 

 

Atlas Cloud

MongoDB에서는 아틀라스(Atlas)로 클라우드에 데이터베이스 설정

아틀라스는 GUI와 CLI로 데이터를 시각화, 분석, 내보내기, 그리고 빌드하는 데에 사용

아틀라스 사용자는 클러스터를 배포 할 수 있으며, 클러스터는 그룹화된 서버에 데이터를 저장

 

 

클러스터 배포

이 서버는 레플리카 세트(Replica set)로 구성됨.

레플리카 세트는 동일한 데이터를 저장하는 몇 개의 연결된 MongoDB 인스턴스의 모음.

 

인스턴스는 특정 소프트웨어를 실행하는 로컬 또는 클라우드의 단일 머신.

이 경우 인스턴스는 클라우드에서 실행되는 MongoDB 데이터베이스

 

 

레플리카 세트

 

도큐먼트나 컬렉션을 변경할 경우, 변경된 데이터의 중복 사본이 레플리카 세트에 저장


이 설정으로 레플리카 세트의 인스턴스 중 하나에 문제가 발생하더라도 데이터가 그대로 유지

또한, 레플리카 세트의 애플리케이션에서 나머지 작업 가능.

이를 위해 클러스터(서버 그룹)를 배포하면, 자동으로 레플리카 세트가 구성됨

 

 

 

용어 정리

 

레플리카 세트

  • 동일한 데이터를 저장하는 소수의 연결된 머신
  • 레플리카 세트 중 하나에 문제가 발생하더라도, 데이터를 그대로 유지한다. 

인스턴스

  • 로컬 또는 클라우드에서 특정 소프트웨어를 실행하는 단일 머신.
  • MongoDB에서는 데이터베이스

클러스터

  • 데이터를 저장하는 서버 그룹
  • 여러 대의 컴퓨터를 네트워크를 통해 연결하여 하나의 단일 컴퓨터처럼 동작하도록 제작한 컴퓨터

 

 
Comments