#6_MongoDB

유상우·2023년 6월 9일
0

Nest.js 프로젝트

목록 보기
6/7

우리가 인터넷을 사용하고 여러 통신을 하는 궁극적인 목표는 Data를 주고 받는 것이라고 생각합니다.

이 데이터를 효과적으로 주고 받기 위해 Computer, OS, 입력 및 출력 장치, 네트워크, 서버, Software, Database등 이 발달하였죠.
이 중요한 data를 저장하는 저장 서버가 바로 Database입니다.

Database도 여러 종류가 있는데요, 대표적으로 관계형 데이터 베이스인 SQL과 관계 형이 아닌 NoSQL이 있습니다.
관계형은 말 그대로 각 데이터를 담을 수 있는 테이블마다 서로 관계가 되어 있는 것이고, NoSQL은 각 테이블(NoSQL은 Collection) 마다 서로 관계성이 없다는 것을 의미합니다.

먼저 NoSQL인 MongoDB를 먼저 다뤄보려고 합니다.

MongoDB는 객체 형태로 담을 수 있는 Document 형식의 DB로서 각 Document를 Collection이라고 표현합니다.

Collection 구조는 객체 형태, 즉 key와 value 값으로 이루어져 있어 저장하기 매우 간편한 구조로 되어있습니다.
하지만 MongoDB도 여러 기능들이 점차 업데이트 되고 있는 상황이어서 SQL만큼 아니지만 Populate 기능을 활요하여 각 Collection 마다 관계를 맺도록 할 수 있습니다.

MongoDB 설치

# MongoDB 설치 (Ubuntu)
apt install curl
curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list
echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list
apt-get update
apt-get install libssl1.1
apt-get install -y mongodb-org
systemctl enable mongod.service
systemctl start mongod.service

Docker 및 docker-compose 작성

# node 및 mongodb 연동
<docker-compose.yml>
version: "3.8"
services:
  nodejs:
    container_name: node
    build: .
    ports:
      - "3000:3000"
    networks:
      network:
        ipv4_address: 192.17.0.3
  mongo:
    image: mongo
    container_name: mongo
    networks:
      network:
        ipv4_address: 192.17.0.4
networks:
  network:
    ipam:
      driver: default
      config:
        - subnet: 192.17.0.1/16
profile
Potentialist

0개의 댓글

관련 채용 정보