2024.09.08 - [DB/MongoDB] - [Mongo] 몽고DB 소개
[Mongo] 몽고DB 소개
몽고DB는 강력하고 유연하며 확장성이 높은 범용 데이터베이스입니다. 다양한 기능을 갖추고 있어 많은 개발자들이 선호하는 데이터베이스 중 하나예요.오늘은 몽고DB의 주요 특징과 장점들에
116116.tistory.com
몽고DB는 데이터베이스의 기본 단위인 도큐먼트를 기반으로 하는 NoSQL 데이터베이스입니다. 관계형 데이터베이스와 달리, 몽고DB는 유연한 도큐먼트 지향 모델을 사용하여 다양한 데이터 구조를 쉽게 처리할 수 있어요. 그럼 몽고DB의 기본 개념과 구성 요소에 대해 알아볼게요.
1. 도큐먼트(Document)
몽고DB의 핵심 데이터 단위는 도큐먼트입니다. 이는 정렬된 키와 그에 연결된 값의 집합으로, 관계형 데이터베이스의 행(Row)과 유사하지만 훨씬 유연해요. 도큐먼트는 다양한 프로그래밍 언어에서 자연스럽게 표현할 수 있고, 자바스크립트에서는 객체(Object)로 표현돼요.
예시:
{
"greeting": "Hello, world!",
"views": 3
}
여기서, 키는 "greeting"과 "views", 값은 각각 "Hello, world!"와 3이에요.
몽고DB는 데이터형과 대소문자를 구별하며, 키 중복은 허용하지 않아요.
2. 컬렉션(Collection)
컬렉션은 여러 도큐먼트를 모아둔 집합으로, 관계형 데이터베이스의 테이블과 유사해요. 하지만 몽고DB의 컬렉션은 동적 스키마를 가지기 때문에, 동일한 컬렉션 내에서도 각 도큐먼트가 다른 구조를 가질 수 있어요.
예시로, 다음과 같은 도큐먼트를 같은 컬렉션에 저장할 수 있어요:
{
"greeting": "Hello, world!",
"views": 3
}
{
"signoff": "Good night, and good luck"
}
위와 같이 다른 구조의 도큐먼트도 하나의 컬렉션에 저장할 수 있어요. 하지만 구조가 다른 도큐먼트를 무분별하게 섞어 사용하면 관리가 복잡해질 수 있으니, 관련된 도큐먼트끼리 그룹화하는 것이 좋아요.
3. 동적 스키마
몽고DB의 컬렉션은 동적 스키마를 가지며, 이를 통해 도큐먼트의 구조를 미리 정의하지 않아도 돼요. 즉, 개발 중에 필드를 추가하거나 제거할 수 있어요. 이는 데이터 저장 구조에 대한 유연성을 제공하여 개발 속도를 높여줍니다.
동적 스키마란?
데이터베이스에 저장되는 도큐먼트들이 고정된 스키마(데이터 구조)를 따르지 않아도 된다는 의미입니다. 이는 스키마리스(schema-less) 특성이라고도 불리며, 유연하고 자유로운 데이터 구조를 허용합니다.
예시:
MongoDB에서 동일한 컬렉션에 서로 다른 구조의 도큐먼트를 저장할 수 있습니다.
// 첫 번째 도큐먼트
{
"name": "John",
"age": 30
}
// 두 번째 도큐먼트
{
"name": "Alice",
"address": {
"city": "New York",
"zipcode": "10001"
},
"email": "alice@example.com"
}
4. 데이터베이스(Database)
몽고DB는 여러 컬렉션을 그룹화한 데이터베이스를 사용해요. 한 몽고DB 인스턴스는 여러 개의 독립적인 데이터베이스를 호스팅할 수 있어, 다양한 애플리케이션을 하나의 서버에서 운영할 수 있답니다.
예약된 데이터베이스 이름도 몇 가지가 있어요:
- admin: 인증과 권한 부여 관련 작업에 사용돼요.
- local: 단일 서버의 데이터를 저장하고, 복제 셋에서 복제 프로세스에 사용돼요.
- config: 샤딩된 몽고DB 클러스터에서 각 샤드의 정보를 저장해요.
이렇게 몽고DB의 기본 개념을 살펴보았어요. 도큐먼트 지향 모델 덕분에 유연하고 확장성이 뛰어나며, 동적 스키마를 통해 다양한 데이터 구조를 쉽게 처리할 수 있다는 것이 몽고DB의 강점이에요!
'DB > MongoDB' 카테고리의 다른 글
[Mongo] 몽고DB 소개 (4) | 2024.09.08 |
---|