유튜브 클로닝 #5-3 MongoDB: Introduction (finally) of MongoDB & Mongoose

이현정·2022년 4월 12일
1

🔖 강의 범위: #6.7~6.8

Preview

가짜 db 안녕. 진짜 db 의 시간.
데이터베이스의 종류는 다양하지만 그중 mongoDB 를 사용할 것이며,
mongoDB 사용을 원활히 하기 위해 또다른 패키지인 mongoose 에 대해 알아볼 것이다.

강의 내용

MongoDB

데이터 베이스 프로그램도 하나만 있는 게 아니라 여러가지가 있다고 한다.
그 중 유명한 데이터 베이스 중 하나인 MongoDB 를 사용할 것이다.

MongoDB 의 장점

  1. 보통 sql-based 인(행-열) 다른 데이터베이스들과 달리 document-based(키-값) 이다.
    ( JSON object 를 떠올려보면 쉽다. 데이터들이 이런식으로 정리된다.)

  2. 또 그러한 문서를 검색, 수정도 할 수 있다.

MongoDB 설치

MongoDB 다운로드 사이트
https://docs.mongodb.com/manual/installation

MongoDB 설치 (MacOS용)
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

  1. xcode-select --install

  2. brew tap mongodb/brew
    (Homebrew 설치가 안 되있으면 설치 필요)

  3. brew install mongodb-community@5.0
    (버전은 추후에 달라질 수 있습니다.)

MongoDB Compass (MongoDB GUI)
https://www.mongodb.com/products/compass

Mongoose


ㅈㅅ

node.js 와 mongoDB 연결을 도와준다.
(내가 이해한 바로는) db 에서는 자스를 사용하지 하지 않고, node.js 에서는 자스를 사용하기 때문에
-> 그 둘의 통신을 자바스크립트를 할 줄 아는 몽구스가 통역해 주는 것이다.

!주의: 반드시 mongoDB 가 먼저 설치된 상태에서 설치해야한다.
mongoDB가 제대로 설치됐는지는 terminal 에서 "mongod" 라고 쳤을 때 (mongod is not found 같은 문구가 아니라) 이상한 글자들이 여러줄 뜨면 설치된 것이다. 아래와 같이:

그다음 "mongo" 입력 => mongoDB shell 에 연결해준다.

>

위 와 같은 > 가 뜨면 이제 명령어를 통해 mongoDB 와 소통할 수 있게 되었음을 의미한다.

연결을 종료하고 싶다면 "exit" 을 입력하면 된다.

Mongoose 설치

$ npm install mongoose --save

https://mongoosejs.com/docs/index.html

Mongoose 사용

  1. 몽구스 설치 후 db.js 파일을 만든다.
    (server.js 옆에)

  2. db.js 파일에 아래와 같이 입력해준다.

import mongoose from "mongoose";

mongoose.connect("mongodb://127.0.0.1:27017/데이터베이스이름"); 
// 데이터베이스는 아직 존재하지 않는다. 따라서 데이터베이스 이름은 앞으로 만들 데이터 베이스의 이름을 미리 적어두면 된다.

3-1. server.js 파일 가장 상단에 db.js 파일을 연결해준다.

import "./db";

3-2. 서버를 실행해 warning 이나 error 없이 db 에 잘 연결되었나 확인해본다.

여기서 warning 이 뜬다면 차분히 읽어보고 주어주는 옵션을 그대로 복붙해 db 에 보내주면 된다. 이런식으로:

mongoose.connect("mongodb://127.0.0.1:27017/데이터베이스이름", {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

또 실행해보면 알겠지만, 가장 상단에 db.js 파일을 import 했음에도 모든 server 가 실행된 후 db 가 실행된다는 걸 알 수 있다.

  1. db 연결이 완결되었다면 몇 가지 이벤트들을 db 에 추가해주자.
const db = mongoose.connection;

const handleError = (error) => console.log("DB Error!", error);
const handleOpen = () => console.log("✅ DB Connected!");
db.on("error", handleError);
db.once("open", handleOpen);

참고! ononce 의 차이:
on 은 여러번 발생할 수 있는 이벤트에 사용
once 는 한 번만 발생하는 이벤트에 사용

추가 공부 ?

  • 강의 6.5~6.6 은 지난 개념들을 복습&연습하기 위한 부분들이라 건너뛰었다.
    나중에 알지 못하는 내용의 코드들이 있다면(그러나 핵심 내용은 없는) 이 강의 다시 들어보기

  • 서버와 db의 차이? 출처

요약

  • 진짜 db 들중 mongoDB 에 대해 알아보고 설치해보았다.
  • mongoDB 와 Node.js 를 이어주는 통역가/헬퍼 역할을 해주는 mongoose 에 대해서도 알아보고 설치해보았다.

0개의 댓글