[TIL] 20241118 TIL

Jaeyoung Ko·2024년 11월 18일
0

MongoDB

(1) Database 필요성과 MongoDB

Data와 관련하여, in-memory 방식은 임시 저장소에만 데이터를 저장하여 휘발성을 갖고 있기 때문에, persistency를 가진 Database를 사용해야 하는 필요성을 생각할 수 있다.

MongoDB는 일반적으로 자주 사용되는 NoSQL 데이터베이스 중 하나이다.

  • JSON형태의 데이터 저장
  • 복잡한 대용량 데이터도 쉽게 저장
  • DB 서버의 확장에 쉽게 대응

로컬 환경에 MongoDB를 설치하여 사용할 수도 있지만,

MongoDB Atlas 를 통해 클라우드 환경으로 어디에서나 쉽게 MongoDB에 접근이 가능하다.

MongoDB를 사용함에 있어서, 편리하게 GUI를 이용하여 관리할 수 있도록 도와주는 DB Client 툴로서 Studio 3T가 있다.

API Client가 웹 서비스의 API와 다양한 프로토콜을 지원하여 서버와 송수신하듯이,

DB Client는 직접 db에 접근해서 CRUD 기능을 다룰 수 있도록 한다.

나의 경우엔 이전에 Studio 3T와 MongoDB를 로컬에 설치하여 사용했었기 때문에, 기존의 로컬 DB를 이용하지 않고

MongoDB Atlas에 새롭게 만든 클라우드 환경에서의 db와 연결을 해서 사용할 예정이다.


(2) mongoose 라이브러리

이제 API에서 JS나 TS로 MongoDB에 연결하는 과정을 알아본다.

mongoose는 MongoDB에 데이터를 쉽게 읽고 쓰게 해주는 JS 라이브러리이다.

이 때, 이 몽구스를 ODM으로 분류하기도 한다.


ODM (Object Document Mapper)

이전에는 ORM 으로 객체 - 관계형DB간의 매핑을 알아봤다면,

ODM은 객체 - 문서 간의 매핑을 수행하는 도구이다.

여기서 우리가 정의하는 document란,

db에 가지고 있는 각 데이터 하나하나를 일컫으며, key-value pair로 이루어진 JSON 형식의 데이터이다.



결국 이제 예전 학부 시절 데이터베이스를 공부할 때를 떠올려 정리해본다면,

데이터 구조와 제약 사항을 정의한 Schema를 통해

데이터베이스에 데이터를 저장/불러오기를 할 때 사용되는 Model을 사용하여 데이터를 생성하고,

그 데이터 개체 하나하나를 Document라고 칭하는 것이다.

profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글