본문 바로가기
Node.js

[Node.js] 노드제이에스 - 몽고DB

by Seong-Jun 2024. 2. 9.
728x90
반응형
SMALL

Do it! Node.js 프로그래밍 입문 7일차 입니다.

 

데이터베이스

수 많은 자료들을 저장해서 정리하고 관리하는 방법이 필요한데 이때 사용하는 것이 데이터베이스 입니다. 데이터베이스에 새로운 자료를 추가하거나 데이터베이스에 있는 자료를 가져와 브라우저 창에 보여주는 것을 웹 개발이라고 할 수 있습니다.

 

데이터베이스의 종류

관계형 데이터베이스 : 저장할 자료의 구조를 행과 열로 구분해서 표 형태로 관리합니다. SQL언어를 사용합니다.

NoSQL 데이터베이스 : NoSQL은 SQL을 사용하지 않는다는 의미입니다. NoSQL데이터베이스는 문서 형태로 저장합니다.

 

NoSQL 데이터베이스의 장점

  • 자료를 구조변경하기가 쉽습니다.
  • 자료형식이 JSON이거나 JSON과 비슷한 형태여서 DB언어를 따로 공부하지 않아도 됩니다.
  • NoSQL은 자료를 컴퓨터 여러 대에 나누어 저장하고 처리할 수 있습니다.
관계형 데이터베이스는 자료의 일관성과 자료 간의 관계가 중요한 경우에 주로 사용하고 NoSQL 데이터베이스는 자료 구조가 자주 변하고 구조가 서로 다른 자료를 처리할 때 편리합니다.

 

몽고DB

몽고DB는 NoSQL 데이터베이스 입니다. 자료를 저장한 문서를 도큐먼트라고 합니다. 몽고DB 아틀라스를 사용하면 클라우드에서 데이터베이스를 관리할 수 있어서 더욱 편리합니다. AWS나 애저, 구글 클라우드 같은 클라우드에 몽고DB를 올려놓고 사용하는 서비스를 아틀라스라고 합니다.

 

컬렉션과 도큐먼트

몽고DB의 데이터베이스는 컬렉션으로 구성되고 컬렉션은 여러 개의 도큐먼트로 이루어집니다.

 

몽고DB 연결하기

몽구스 모듈과 dotenv모듈

mongoose.connect(URL[,옵션])

몽구스에서 connect함수를 사용해서 DB에 연결합니다.

 

.env 파일

.env 파일은 애플리케이션에서 사용하는 환경변수를 저장하는데, 주로 작업 폴더의 가장 상위 폴더인 루트 디렉터리에 저장합니다. 환경변수란 데이터베이스 주소나 비밀번호처럼 애플리케이션마다 달라지는 정보를 가리킵니다.

 

process 객체

.env 파일에는 중요한 정보가 담기므로 외부에 드러나지 않게 환경 변수에 접근해야 합니다. 이럴 때 사용하는 것이 process 객체입니다. process 객체는 노드에서 지원하는 글로벌 객체이므로 import하지 않고 어떤 모듈에서나 사용할 수 있습니다.

 

.env 파일에 몽고DB 연결정보 저장하기

npm install mongoose dotenv 로 패키지 설치

 

 

몽고DB 회원가입 후 데이터베이스에 들어가서 아래 빨간색 부분 클릭

 

 

 

DB_CONNECT = mongodb+srv://<username>:<password>@cluster0.2jaxqlk.mongodb.net/DB이름

 

dbConnect.js

const mongoose = require("mongoose")
require("dotenv").config()

const dbConnect = async () => {
    try {
        const connect = await mongoose.connect(process.env.DB_CONNECT) // process 객체
        console.log("DB Connected")
    } catch (error) {
        console.log(error.name)
    }
}

module.exports = dbConnect

 

app.js

const express = require("express")
const dbConnect = require("./config/dbConnect") // 추가
const app = express()
const port = 3000
dbConnect() // 추가

// 코드 생략...
728x90
반응형
LIST

댓글