본 문서는 2022년 3월 20일 에 작성되었습니다.
처음으로 MongoDB 를 사용한 것은 2021년 8월 이었습니다.
당시 노마드 코더의 Wetube 클론코딩 을 하게되면서 사용했습니다.
자연스럽게 MongoDB + Mongoose (ODM) 을 사용했었습니다. 이후에도 토이 프로젝트에서 DB 를 고를 때, 가장 손쉽게 사용했던 기억이 있습니다.
하지만,
사용횟수와는 전혀 무관하게 MongoDB 에 대한 이해와 성능에 대한 고찰이 전혀 없다고 생각하며,
동시에,
Wanted 에서 채용공고를 확인했을 때, 생각보다 PostgreSQL 과 MongoDB 가 많았기에 깊게 공부해볼 필요성을 느꼈습니다.
본 시리즈는 총 3 파트로 구분해보았습니다.
MongoDB 는 2가지 방식으로 사용할 수 있습니다.
기존까지는 MongoDB v5.0.2 를 사용했으나,
이번 시리즈 작성 시점에는 MongoDB Atlas 를 사용할 생각입니다.
MongoDB Atlas 는
MongoDB 를 Network 환경에서 사용할 수 있게 만들어 놓은 데이터베이스 통합 관리 서비스 입니다.
MongoDB Atlas 는 다음과 같은 구조를 지니고 있습니다.
Organization
Organization 은 복수의 Project 를 포함할 수 있는 개념입니다.
Project
Project 는 User, Team 등의 관리적 하위 요소와 Cluster 라는 네트워크적 하위요소를 포함할 수 있 습니다.
Cluster
Database store 및 Netwrok 를 포함한 설정입니다.
Cluster Payment System, Network System(AWS etx), Network Station 등을 설정할 수 있습니다.
Organization 은 전술한 바와 같습니다.
또한, 이 계층 구조에서는 다음을 수행할 수 있습니다.
Cluster 는
직속 상위 계층인 Project 에서 사용할 실제 Database, Network 설정을 포함한 개념 입니다.
Organization > Project > Cluster 순으로 만든 후에,
추가적으로 Cluster 에 대한 설정을 변경하고 싶으면 Configuration 버튼을 클릭하면 됩니다.
Organization > Project > Cluster 순으로 만든 후에,
실제로 이를 사용하기 위해서 2 가지 정보를 등록 해야 합니다.
일반적으로 허용 IP 는 백앤드 서버 && 운영 회사 를 등록합니다.
하지만 개인 개발용이라면 0.0.0.0/0 를 통해서 모든 IP 를 접근 허용하게 할 수 있습니다.
접속 계정 정보는 계정명, 비밀번호 이 있습니다.
실제로는 환경변수를 통해서 전부 암호화 해야 하지만, 학습용이라면 Admin, 자동으로 생성해주는 문자열 을 사용해도 됩니다. (단, 까먹으면 피곤해지기 때문에 주의합시다.)
사용할 DB 환경은 `22.03.20 기준 다음과 같습니다.
위 옵션을 선택하고 나면, 아래와 같은 문자열을 제공해줍니다.
mongodb+srv://계정이름:비밀번호@프로젝트명.문자열.mongodb.net/데이터베이스명
위에서 계정이름, 비밀번호를 입력하고 나서 복사하여 MongoDB Compass - New Connection 에 옮기고 연결을 누르면 됩니다.
연결 시에, 기본으로 아래 3개의 설정 파일이 생성되어 있습니다.
이 파일들은 건드리지 않고 남겨두어야 합니다.
Cluster 의 DB 에 접근 계정의 비밀번호를 잊어버렸다면,
Database - Access - 해당 Account 선택 - Edit - 새 비밀번호 만들기 을 한 이후에,
변경 사항이 적용 될떄까지 잠시 기다린 이후에 해당 비밀번호로 접속할 수 있습니다.