문서 데이터베이스란?

문서 데이터베이스 정의

문서 데이터베이스는 반정형 데이터를 문서로 저장하도록 설계된 비관계형 데이터베이스 유형입니다. 애플리케이션 계층의 데이터는 일반적으로 JSON 문서로 표시되기 때문에 개발자는 문서 데이터베이스를 직관적으로 사용할 수 있습니다. 개발자는 애플리케이션 코드에서 사용하는 것과 동일한 문서 모델 형식으로 데이터를 유지할 수 있습니다. 문서 데이터베이스에서 각 문서의 데이터 구조는 동일할 수도 있고 다를 수도 있습니다. 각 문서는 고유한 스키마를 포함하는 자기 기술적 형태로, 모두가 다른 문서로부터 독립적이지는 않습니다. 문서는 관계형 데이터베이스의 테이블과 비슷한 개념인 "컬렉션"으로 그룹화됩니다. 

예를 들어, 간단한 서적 데이터베이스에서 서적 항목을 설명하는 JSON 파일은 다음과 같은 코드로 구성될 수 있습니다.

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2,
            "genres" : ["Comedy", "Drama"],
            "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
            "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
            "actors" : ["David Matthewman", "Jonathan G. Neff"]
        }
    },
    {
        "year": 2015,
        "title": "The Big New Movie",
        "info": {
            "plot": "Nothing happens at all.",
            "rating": 0
        }
    }
]

사용 사례

콘텐츠 관리

문서 데이터베이스는 블로그 및 비디오 플랫폼과 같은 콘텐츠 관리 애플리케이션으로서 아주 훌륭합니다. 문서 데이터베이스를 사용하면 애플리케이션이 추적하는 각 엔터티를 단일 문서로 저장할 수 있습니다. 요구사항이 발전함에 따라 문서 데이터베이스는 개발자가 애플리케이션을 업데이트하는 데 더욱 직관적으로 사용할 수 있게 되었습니다. 게다가, 데이터 모델을 변경해야 하는 경우에도 영향을 받는 문서만 업데이트하면 됩니다. 스키마를 업데이트하거나 데이터베이스 가동 중단이 필요하지 않습니다. 

카탈로그

문서 데이터베이스는 카탈로그 정보를 효율적·효과적으로 저장할 수 있습니다. 예를 들어, 전자 상거래 애플리케이션에서 다른 제품의 개별 속성의 수는 서로 다릅니다. 관계형 데이터베이스에서는 수많은 속성을 관리하는 것이 비효율적이며 읽기 성능에도 영향을 줍니다. 문서 데이터베이스를 사용하면 각 제품의 속성을 단일 문서로 기술하여 관리가 쉽고 읽기 속도도 빨라집니다. 한 제품의 속성을 변경해도 다른 제품에는 영향을 주지 않습니다.

가장 많이 쓰이는 문서 데이터베이스

Amazon DynamoDB

Amazon DynamoDB는 규모와 관계없이 안정적인 성능을 제공하는 비관계형 데이터베이스입니다. 완전관리형 다중 리전 다중 마스터 데이터베이스로서,일관된 10밀리초 미만의 응답성을 제공하고 보안 기능, 백업 및 복원, 인 메모리 캐싱을 기본 제공합니다. DynamoDB는 기본 JSON을 지원하므로 JSON 문서를 DynamoDB 테이블에 직접 작성할 수 있습니다. 최대 항목 용량이 400KB인 DynamoDB를 사용하면 대용량 JSON 문서들과 중첩 객체들을 하나의 트랜잭션에 저장할 수 있습니다.

지금 바로 DynamoDB 시작하기

Amazon DynamoDB 시작하기

MongoDB

MongoDB는 오픈 소스 비관계형 데이터베이스로, JSON 같은 문서 지향적 스토리지 시스템에 대한 지원을 제공합니다. 또한, 어떤 구조의 데이터라도 저장할 수 있는 유연한 데이터 모델을 지원하며 전체 인덱싱, 샤딩, 복제를 비롯한 다양한 기능을 제공합니다. AWS를 통하여 MongoDB 배포 지원 인프라를 AWS 클라우드에서 유연성, 확장성, 비용 효율성 면에서 효과적인 방식으로 설정할 수 있습니다. 

AWS 클라우드에 MongoDB 클러스터를 배포하려면 AWS MongoDB Quick Start (PDF 형식으로도 제공)를 사용하십시오. MongoDB 개요 및 AWS에서의 구현 방법에 대한 내용은 AWS의 MongoDB: 지침 및 모범 사례 백서를 참조하십시오. MongoDB에 대한 AWS 보안 권장 사항도 반드시 확인하십시오.

Couchbase

모바일, IoT 및 웹 애플리케이션의 사용률을 높이고자 설계된 엔터프라이즈급 Couchbase Data Platform에는 Couchbase Server와 Couchbase Mobile도 포함됩니다. Couchbase Server는 분산 아키텍처로 설계되어 성능, 확장성, 가용성을 극대화한 클라우드 네이티브의 비관계형 데이터베이스입니다. 이를 통해 개발자는 JSON의 유연성과 SQL의 성능을 활용하여 애플리케이션을 구축할 수 있습니다. Couchbase Mobile에는 완전 통합된 내장형 데이터베이스와 함께 보안 기능도 내장되어 있으며 확장성이 뛰어난 Couchbase Server와 실시간 자동 동기화가 가능합니다.

AWS 클라우드에 Couchbase 클러스터를 배포하려면 AWS Couchbase Quick Start (PDF 형식으로도 제공)를 사용하십시오.