⌨️/Node.js

[Node.js] MongoDB, Mongoose, schema, model 정리

S0 2024. 1. 28. 15:28

 

~오늘의 수강 과목~

1. Node.js 입문 1주차 (이용우 튜터님)

_ express, module, router, req / res, api

 

2. Node.js 입문 2주차 (이용우 튜터님)

_ MongoDB, schema, middleware

 


 

MongoDB

실습하며 작성한 api는 인메모리 형식으로 저장

🤔 인메모리 형식이란?

메모리는 컴퓨터 껐다켜면 날아가서 보존해야하는 데이터는 보조기억장치에 저장을 해야함
아무튼 그 메모리에 저장이 되기 때문에 이 api도 컴퓨터 껐다 켜면 날아감

서버를 껐다 켤때마다 사용자의 데이터가 초기화되는건 문제가 큼

그래서 등장한 기술이 데이터베이스

데이터베이스는 어플리케이션이 종료된 후에도 데이터가 보존된다

데이터베이스는 실제 데이터가 저장되는 집합체라고 이해

 

데이터베이스가 날아가지 않게 운영하고 관리하는 소프트웨어는

DBMS - 데이터베이스매니지먼트시스템

MongoDB는 DBMS 서비스 중 하나로 작성한 api가 보존되도록 관리 가능

NoSQL 데이터베이스로 분류

모든 데이터가 json 형태로 저장

서버를 병렬적으로 확장하기가 비교적 쉬움 -> 서버의 부하가 늘어나도 빠른 대응 가능

 


MongoDB Atlas는 클라우드 버전

: 로컬환경에 설치하는 것이 아니기 때문에 어디서나 데이터베이스에 접근 가능

 


RDBMS, MongoDB의 용어 차이 정리

(개인적으로 RDBMS 쪽 용어가 좀 더 친숙한 느낌이라 비교하며 학습하는 것이 도움이 됐다)

RDBMS MongoDB
table collection
rows documents
columns fields

 

MongoDB에서 가지고 있는 데이터 하나하나를 문서(documents)라고 정의하며 json 형태로 가지고 있음

컬렉션(collection)은 여러개의 문서를 보유할수있는 MongoDB의 구성요소로, 고정된 구성요소를 가지지 않고 유연하게 구성 가능

 


Mongoose

api와 데이터베이스를 연결해주는 자바스크립트 라이브러리

원래 api 몽고디비에 등록하려면 쿼리를 직접 작성해야함

Mongoose는 과정에서 대신 맵핑해주기 때문에 쉽게 이용 가능

 

schema

schema는 컬렉션(collection)에 들어가는 문서(documents)가 어떤 종류의 값을 가질 것인지 정의하는 몽구스의 기능

(구조, 제약사항, 필드, 데이터타입 등 )

아래와 같은 문법으로 사용

const product = new.mongoose.Schema({});

 

model

MongoDB의 데이터를 실제 사용하기 위한 개념이며 작성한 스키마를 바탕으로 만들어짐