백엔드 복습-Day8

이예음·2022년 12월 5일
0

백엔드 복습하기

목록 보기
8/23
post-thumbnail
post-custom-banner

Mongodb

: 문서지향(Document-Oriented) 저장소를 제공하는 NoSQL 데이터베이스 시스템

특징

  • 스키마 제약 없이 자유로움
  • BSON(Binary JSON) 형태로 각 문서가 저장됨
  • 배열이나 날짜 등 기존 RDMS에서 지원하지 않던 형태로도 저장이 가능
  • 관계를 연결하는 JOIN이 필요 없이 한 문서에 좀 더 이해하기 쉬운 형태 그대로 정보를 저장할 수 있음
  • 객체지향 프로그래밍과 잘 맞고, JSON을 사용할 때 아주 유용함

Local에서 mongoDB 연결하기

GUI(Graphical User Interface)로 MongoDB에 데이터 생성하기
1. 데이터베이스 접속


2. Create database


3. collection에 데이터 추가


4. 결과


CLI(Command Line Interface)로 생성한 데이터 확인해보기
1. shell 접속


2. 여러가지 데이터베이스 명령어

08-01-docker-compose-with-mongo

Docker-compose

: 복수 개의 컨테이너를 실행시키는 도커 애플리케이션이 정의를 하기 위한 툴
YAML 파일로 여러 개의 docker 내부 속성을 설정하고 YAML 파일을 실행시켜 마치 docker를 일괄적으로 한 번에 실행시키는 것

Dockerfile.mongo 파일 만들기


Docker-Compose.yaml 파일 만들기
: 도커로 만들어진 각자의 다른 컴퓨터들의 포트포워딩을 위해 그룹핑해줌
Express와 mongoDB의 서버를 한번에 실행시키기 위한 yaml 파일 만들어주기


💡 오답노트

build를 하고 컨테이너를 실행시키려고 docker-compose up을 했더니 오류가 떴다
구글링을 해보니 3000번 포트에 이미 컨테이너가 켜져있다는 오류였다.
그래서 터미널에 docker container ls을 입력해서 켜져있는 컨테이너들을 조회하고, docker rm -f 컨테이너ID를 입력해서 지워줬다.
그러고 다시 docker-compose up을 하니까 잘 실행되었다.

08-02-docker-compose-with-mongoose

Dockerfile.mongodb를 image로 변경해보기

  1. Dockerfile.mongo 지우기
  2. Dockerfile.mongo로 정의해두었던 mongoDB의 설정을 yaml 파일에 직접 정의

Mongoose

: Node.js와 MongoDB를 위한 ODM(Object Data Mapping) library
호환성이 없는 JavaScript와 MongoDB의 데이터를 Mapping하여 간편한 CRUD를 가능하게 해줌
설치 - yarn add mongoose

[npm-mongoose]를 참고하여 index.js 파일 수정

👉 참고
mongoose.connect : 앱이 하나의 데이터베이스만 사용하는 경우
mongoose.createConnection : 추가 연결을 생성해야 하는 경우
mongoose.connect('mongodb://localhost/my_database')의 형태로 작성

Model 정의

board.model.js 파일 만들기


Get 데이터 조회 - index.js


Post 데이터 등록 - index.js

결과

게시물 등록


게시물 조회

profile
응애
post-custom-banner

0개의 댓글