MongoDB는 대표적인 NoSQL 도큐먼트 데이터베이스입니다. 도큐먼트 데이터베이스는 데이터를 테이블이 아닌 문서처럼 저장하는 데이터베이스를 의미합니다. 도큐먼트 데이터베이스에서는 JSON 유사 형식으로 데이터를 문서화하는 것이 보통입니다. 각각의 도큐먼트는 데이터를 필드 - 값의 형태로 가지고 있고, 컬렉션이라고 하는 그룹으로 묶어서 관리합니다.
//컬렉션 [필드-값 형태(Field - Value pair)]
{
<field>:<value>,
<field>:<value>,
"name":"Jack",
"title":Captain",
"age":32
}
MongoDB에서 데이터는 도큐먼트의 형태로 저장됩니다. 도큐먼트들은 컬렉션이라고 부르는 곳에 저장
MongoDB는 NoSQL 데이터베이스입니다. NoSQL은 매우 넓은 범위에서 사용하는 용어로 관계형 테이블의 레거시한 방법을 사용하지 않는 데이터 저장소를 뜻합니다.
note : Sql vs noSql(거대한 DB그룹) = Korean food vs Non Korean food 범주 자체가 다름
1. 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우
NoSQL 데이터베이스는 관계에 대해 중점을 둔 SQL 데이터베이스에 비해 보다 자유로운 형태로 데이터를 저장할 수 있습니다. 그렇기 때문에 필요에 따라서 데이터의 새 유형을 추가할 수 있습니다. 따라서 소프트웨어 개발에 정형화 되지 않은 많은 양의 데이터가 필요한 경우, NoSQL을 적용하는 것이 효율적일 수 있습니다.
2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우
NoSQL 데이터베이스는 저장 공간의 효율적인 사용을 위한 방법으로 데이터베이스를 클라우드 기반으로 쉽게 분리 할 수 있도록 지원하고 있습니다. SQL 데이터베이스에서는보통 시스템이 커져가면서 DB를 증설해야 하는 시점이 오면 수직적 확장의 형태로 DB를 증설하기에 관리가 어려워질 수 있는데 NoSQL의 경우 수평적 확장의 형태로 증설을 하기에 숫자는 무한대로, 서버를 계속 분산시켜 DB를 증설할 수 있습니다.
3. 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우
NoSQL 데이터베이스의 경우 스키마를 미리 준비할 필요가 없기 때문에 빠르게 개발하는 과정에 매우 유용합니다. 시장에 빠르게 프로토타입을 출시해야 하는 경우, 소프트웨어 버전별로 많은 다운타임(데이터베이스 서버 오프라인) 없이 데이터 구조를 자주 업데이트 해야하는 경우, 일일이 스키마를 수정해주어야 하는 관계형 데이터베이스 보다는 NoSQL 기반의 비관계형 데이터베이스가 더 효율적입니다.
MongoDB에서는 아틀라스(Atlas)를 사용하여 클라우드에서 데이터베이스를 설정합니다.
이는 GUI 및 Shell로 데이터를 시각화, 분석, 내보내기 및 빌드하는 데 사용할 수 있습니다. 아틀라스 사용자는 클러스터를 배포 할 수 있으며 이는 그룹화된 서버에 데이터를 저장합니다.
너무어려웓ㅈ루ㅠㅏㅓㅈ됻조햐디ㅗㄹㄷ러재ㅗㅑ25ㅐㅛ52ㅜㅂ749[ㅜ90[ㅂ490ㅂ370ㅅ48ㅅㄷㅍ897ㅎㄷ교89ㄹㅁㄷ져ㅗㄹㄷ젷ㄷㄹ혀ㅔ혀ㅑㅔㅕ햐ㅔ
ㅑㅗㅑㅐㅎ209ㅛ ㅗ90[3솓랴ㅐHFeq'eh3trhfR28rg721g r[91yt-y3rt9089r3t[180r38[fehofqcq [039ㅛㅅ3290효