본문 바로가기

프로그래밍/AI

[DB] MongoDB Atlas

MongoDB atlas는 MongoDB사에서 직접 제공하는 클라우드 기반의 완전 관리형 데이터베이스 서비스(DBaaS)입니다. 서버 설치, 구성, 유지 보수, 백업 등을 사용자가 직접 관리할 필요 없이 클릭 몇 번으로 데이터베이스를 배포하고 운영할 수  있게 해 줍니다. 

 

왜 쓰는가? 
  • Zero Ops: 데이터베이스 서버 구축/관리에 시간을 낭비할 필요가 없다. 
  • 멀티 클라우드 : AWS, Google Cloud, Azure 중 원하는 곳을 골라 쓸 수 있다. 
    • 사용 예시) 백엔드를 AWS를 Seoul 리전에 배포, MongoDB atlas를 AWS/Seoul 리전 선택
    • 결과) 콘솔에 통합된 것은 아니지만 AWS 인프라 위에서 돌아가 두 영역이 효율적으로 통신함. 
  • 무료 사용: 평생 무료 등급(M0)이 있어 학습용으로는 최고이다. 

핵심 기능
Database ; 기본 데이터 저장소 : 웹/앱 서비스 데이터 저장 
  • JSON(Document) 형태로 그대로 저장 및 조회 
  • 하나의 문서 안에 배열(list)이나 하위 문서(Nested Object)를 자유롭게 포함
// User 컬렉션의 데이터 예시
{
  "_id": "user_123",
  "name": "홍길동",
  "skills": ["Java", "Python", "MongoDB"], // 배열 저장 가능
  "address": { "city": "Seoul", "zip": "04524" } // 하위 문서 저장 가능
}

Atlas Search ; 검색 엔진 내장 : 구글 같은 텍스트 검색 기능 구현 
  • 별도 서버 없이 MongoDB 쿼리 문법으로 검색 구행 
  • Aggregation Pipeline 첫 단계에 $search/ 연산자만 추가하면 됨
db.products.aggregate([
  {
    $search: {
      index: "default",
      text: { query: "galaxy", path: "description" }
    }
  }
])

Vector Search ; AI 벡터 검색 : RAG(AI 답변 생성), 추천 시스템 구축
  • 텍스트나 이미지를 AI 모델을 통과시켜 얻은 '실수 배열(Embedding)'을 MongoDB 문서의 필드(Field)로 저장
  • 사용자의 질문을 벡터로 변환한 뒤 $vectorSearch를 사용하여 가장 의미가 가까운 문서를 찾음
// 벡터 데이터가 포함된 문서 예시
{
  "title": "MongoDB 매뉴얼",
  "content": "...",
  "plot_embedding": [0.012, -0.234, 0.551, ...] // AI가 이해하는 좌표값
}

Charts ; 데이터 시각화 : 별도 툴 없이 대시보드/그래프 생성 
  • 쿼리 작성 없이, 드래그 앤 드롭으로 차트를 만들고 웹사이트에 심음.
  • Atlas 웹 UI에서 차트를 다 만든 후, 생성된 "IFrame 코드"나 "SDK"를 복사해 프론트엔드 코드에 붙여 넣음.

사용 흐름 
  • 배포(Cluster) : 무료 티어(Shared M0) 선택 -> 리전(Seoul 등) 선택 -> 생성 
  • 계정 (User) : DB에 접속할 ID/비밀번호 만들기. (로그인 계정과 다름) 
  • 네트워크 (IP) : 내 컴퓨터 IP 허용하기 (Add Current IP). --> 주의! 
  • 연결 (Connect) : 연결 문자열(mongodb+srv://...) 복사해서 코드에 붙여 넣기 

요금제 요약 
  • M0 (Free) : 512MB 제공, 평생 무료 (연습용 추천) 
  • M10 ~ (Dedicated) : 월 $57~, 실제 서비스 운영용 (오토 스케일링 지원) 
  • Serverless : 사용한 만큼만 지불, 트래픽 들쑥날쑥할 때 유리 

참고 문서