본문 바로가기
대외활동/코드잇부스트_백엔드 1기

mongoDB Atlas 사용하기

by 피스타0204 2024. 8. 23.

1. mongoDB Atlas를 통해 데이터베이스를 생성하고 연결 URL을 준비하는 방법

1) mongoDB ATlas 홈페이지에 가서 회원가입을 하고 Overview 페이지로 이동합니다.

https://cloud.mongodb.com/v2/667e798b2ad38554850cc0ea#/overview

 

Cloud: MongoDB Cloud

 

account.mongodb.com

 

2) 왼쪽 버튼을 눌러 Database 탭으로 이동하고 오른쪽 위, create 버튼을 눌러 cluster를 생성합니다. 

 

3) cluster를 한 개만 가지고 있다면 무료버전으로 cluster를 생성할 수 있습니다. 단, 삭제하고 나서 조금 시간이 지나야 무료버전 클릭버튼이 뜹니다. 

 

4) Quick Setup에서 preload sample dataset을 체크 안함으로 바꾸고 create Deployment를 누릅니다.

5) 자 이제 당신의 클러스터가 만들어졌습니다.

클러스터는 여러 개의 서버(노드)로 구성된 그룹으로, 데이터베이스가 저장되고 관리되는 서버 인프라를 말합니다. 이제 클러스터가 완성되었으니 클러스터(데이터베이스 모음)에 연결할 수 있습니다.


2. 클러스터와 내 코드(앱) 연결하기

 

클러스터를 생성하고 나서 다음과 같은 창이 뜹니다. 드라이버를 눌러 URL을 확인해주세요.

export const DATABASE_URL =
  'mongodb+srv://codeit:<password>@mongodb-cluster.t5eg2vz.mongodb.net/todo-api?retryWrites=true&w=majority';

붙여 넣을 때 <password> 부분을 기록해 둔 비밀번호로 대체하고 mongodb.net/ 뒤에 데이터베이스 이름(예: todo-api)을 써줘야 합니다. 예를 들어 아이디가 codeit, 비밀번호가 test123이고 데이터베이스 이름이 todo-api라면 아래와 같은 형태가 되는 거예요.

 

app.js 파일에서 아래와 같이 작성해 주세요.

//env.js
import mongoose from 'mongoose';
import { DATABASE_URL } from './env.js';

// ...

mongoose.connect(DATABASE_URL).then(() => console.log('Connected to DB'));


이제 Express나 Next.js 같은 프로그램에서 이 URL을 통해 MongoDB 데이터베이스에 접속할 수 있는 겁니다. 복사해서 .env 파일에 붙여넣고 app.js에서 import하면 내 MongoDB Atlas와 내 vscode의 코드가 연결됩니다.

드라이버 창을 실수로 껐다면 아래의 connect버튼을 눌러 다시 확인할 수 있습니다.


3.  클러스터 안에서 데이터베이스와 컬렉션 관리

1) overview에서 더보기 ...을 눌러 view all clusters를 누릅니다.

 

2) 내 클러스터에서 browse collections를 누르고 들어가 database를 만듭니다.

 

3) 데이터베이스 이름은 띄어쓰기가 들어가면 안됩니다.

 

4) browse collections에서 collection posts가 Memory_storate_Service 데이터베이스 안에 잘 생성된 것을 확인할 수 있습니다.

4. database 안에서 유저 생성하기

1) 왼쪽 Security 섹션에 DataBase Access버튼을 눌러 유저를 생성합니다.

2) "Add New Database User" 버튼을 클릭하여 새로운 유저를 추가하는 화면으로 이동합니다.

  • 역할 선택:
    • 새로운 유저를 추가하는 화면에서, Role 또는 Database User Privileges 항목이 있습니다.
    • "Add Default Roles" 버튼을 클릭하거나 드롭다운 메뉴에서 원하는 역할을 선택하세요. 일반적으로 "Read and Write to Any Database" 또는 "Atlas Admin" 역할을 선택할 수 있습니다.