MongoDB Series

공부의 기록·2022년 3월 19일
0

DB MongoDB

목록 보기
1/5
post-thumbnail

Introduce

본 문서는 2022년 3월 20일 에 작성되었습니다.

처음으로 MongoDB 를 사용한 것은 2021년 8월 이었습니다.
당시 노마드 코더의 Wetube 클론코딩 을 하게되면서 사용했습니다.

자연스럽게 MongoDB + Mongoose (ODM) 을 사용했었습니다. 이후에도 토이 프로젝트에서 DB 를 고를 때, 가장 손쉽게 사용했던 기억이 있습니다.

하지만,
사용횟수와는 전혀 무관하게 MongoDB 에 대한 이해와 성능에 대한 고찰이 전혀 없다고 생각하며,

동시에,
Wanted 에서 채용공고를 확인했을 때, 생각보다 PostgreSQL 과 MongoDB 가 많았기에 깊게 공부해볼 필요성을 느꼈습니다.

구버전의 MongoDB 포스트

Index

본 시리즈는 총 3 파트로 구분해보았습니다.

  1. BASIC | MongoDB CRUD with Mongoose
  2. Advanced |MongoDB High Quality
    2.1. 비정규화 와 성능 향상
    2.2. 인덱스 와 성능 향상
    2.3. 네스팅, 페이지네이션
    2.4. 트랜젝션 과 일관성
  3. 후기

Installation

MongoDB 는 2가지 방식으로 사용할 수 있습니다.

  1. 미설치 | MongoDB Atlas
  2. 설치 | MongoDB

기존까지는 MongoDB v5.0.2 를 사용했으나,
이번 시리즈 작성 시점에는 MongoDB Atlas 를 사용할 생각입니다.


MongoDB Atlas

MongoDB Atlas 는
MongoDB 를 Network 환경에서 사용할 수 있게 만들어 놓은 데이터베이스 통합 관리 서비스 입니다.

Structure

MongoDB Atlas 는 다음과 같은 구조를 지니고 있습니다.

  1. Organization
    Organization 은 복수의 Project 를 포함할 수 있는 개념입니다.

  2. Project
    Project 는 User, Team 등의 관리적 하위 요소와 Cluster 라는 네트워크적 하위요소를 포함할 수 있 습니다.

  3. Cluster
    Database store 및 Netwrok 를 포함한 설정입니다.
    Cluster Payment System, Network System(AWS etx), Network Station 등을 설정할 수 있습니다.

Organization

Organization 은 전술한 바와 같습니다.
또한, 이 계층 구조에서는 다음을 수행할 수 있습니다.

  1. Organization 의 모든 Project 에서 동일한 과금 설정을 사용합니다.
  2. Organization 의 모든 Project 에서 동일한 알람 설정을 사용합니다.
  3. Team 을 포함한 Project 에 사용자를 일괄 할당합니다.

출처 : MongoDB Docs - Organizations

Cluster

Cluster 는
직속 상위 계층인 Project 에서 사용할 실제 Database, Network 설정을 포함한 개념 입니다.

Configuration

Organization > Project > Cluster 순으로 만든 후에,
추가적으로 Cluster 에 대한 설정을 변경하고 싶으면 Configuration 버튼을 클릭하면 됩니다.

Connect

Organization > Project > Cluster 순으로 만든 후에,
실제로 이를 사용하기 위해서 2 가지 정보를 등록 해야 합니다.

  1. IP 등록 정보
  2. 접속 계정 정보
  3. 사용할 DB 환경

일반적으로 허용 IP 는 백앤드 서버 && 운영 회사 를 등록합니다.
하지만 개인 개발용이라면 0.0.0.0/0 를 통해서 모든 IP 를 접근 허용하게 할 수 있습니다.

접속 계정 정보는 계정명, 비밀번호 이 있습니다.
실제로는 환경변수를 통해서 전부 암호화 해야 하지만, 학습용이라면 Admin, 자동으로 생성해주는 문자열 을 사용해도 됩니다. (단, 까먹으면 피곤해지기 때문에 주의합시다.)

사용할 DB 환경은 `22.03.20 기준 다음과 같습니다.

  1. MongoShell
  2. Application (ex, Node... )
  3. MongoDB Compass (GUI)

# MongoDB Compass

위 옵션을 선택하고 나면, 아래와 같은 문자열을 제공해줍니다.
mongodb+srv://계정이름:비밀번호@프로젝트명.문자열.mongodb.net/데이터베이스명

위에서 계정이름, 비밀번호를 입력하고 나서 복사하여 MongoDB Compass - New Connection 에 옮기고 연결을 누르면 됩니다.

연결 시에, 기본으로 아래 3개의 설정 파일이 생성되어 있습니다.
이 파일들은 건드리지 않고 남겨두어야 합니다.

Forget Acess Account Password

Cluster 의 DB 에 접근 계정의 비밀번호를 잊어버렸다면,

Database - Access - 해당 Account 선택 - Edit - 새 비밀번호 만들기 을 한 이후에,
변경 사항이 적용 될떄까지 잠시 기다린 이후에 해당 비밀번호로 접속할 수 있습니다.

profile
2022년 12월 9일 부터 노션 페이지에서 작성을 이어가고 있습니다.

0개의 댓글