데이터베이스
[NoSQL/몽고DB] 몽고DB 완벽가이드 3판 - 1
Hyun-danpung2
2023. 3. 23. 14:46
728x90
반응형
서론
1. 투입된 프로젝트에서 기존에 몽고DB를 사용하고 있었음
2. 진행하던 프로젝트에서 몽고DB를 활용하는 기능 제작이 필요해짐
3. 2번의 프로젝트에서 기존 mariaDB를 몽고DB로 옮기자는 이야기가 나옴
4. 요즘은 스토리지가 싸서 정규화고 뭐고 중복으로 데이터 때려박는 NoSQL이 많이 사용된다는 교수님의 농담
온 세상이 몽고DB를 사용하는 것 같은 기분,,,까진 아닌데 앞으로도 몽고DB를 활용할 일이 많아질 것 같았고, 지금까지는 그때그때 조각조각 찾아보면서 해왔지만 한번쯤 정리하고 가야할 필요성을 느끼게 되었다. 책으로 공부하는게 익숙하고 편해서 책부터 찾아봤고, 처음부터 훑기에는 몽고DB 완벽가이드라는 책이 괜찮을 것 같아서 이 책으로 시작하게 되었다.
더이상 관계형DB를 고집하지 않아도 되는 이유는 다음과 같다.
- 스토리지의 가격 하락
- 가용대역폭 증가
그렇기 때문에 빠르고 개발에 용이한 도큐먼트 지향 DB가 많이 도입되기 시작했다.
몽고DB: 도큐먼트 지향 DB. 범용 데이터베이스.
- 이점
- Scale-out(분산 확장)에 용이
- 복잡한 계층 관계를 하나의 레코드로 표현 가능
- 고정된 스키마가 없어 필드 추가 및 삭제에 용이
- 기능
- 인덱싱
- 집계
- 특수한 컬렉션 유형: 특정 시간에 만료해야하는 데이터(세션, 고정 크기 컬렉션 등)에 대해 유효시간(TTL, Time-to-live) 컬렉션을 지원, 기준 필터와 일치하는 도큐먼트에 한정된 부분 인덱스를 지원
- 파일 스토리지: 큰 파일과 파일 메타데이터를 편리하게 저장하는 프로토콜 지원
- 철학: 높은 확장성과 유연성, 빠른 속도 등 완전한 기능을 갖춘 데이터 스토리지
도큐먼트: 몽고DB 데이터의 기본 단위. 키와 값의 집합.
컬렉션: 도큐먼트의 모음
- 동적 스키마: 하나의 컬렉션 내 도큐먼트들이 모두 다른 구조를 가질 수 있음
- 네이밍: 컬렉션은 이름으로 식별
- 서브 컬렉션: 몽고DB의 데이터를 체계화하는 방법.
- 예를 들어, blog에 속한 데이터를 저장할 때 blog.posts, blog.authors 등으로 저장
데이터베이스: 몽고DB의 단일 인스턴스는 여러 데이터베이스를 호스팅할 수 있음. 각 데이터베이스는 독립적으로 취급.
728x90
반응형