Backend 8강

최창서·2022년 7월 1일
0

두개의 도커를 하나로 => Docker-Compose

백엔드 서버용 docker, db 서버용 docker를 하나씩 모두 띄워놓으면 포트포워딩에서 많이 복잡해질 수 있다. 이를 해결하기위해 Docker-Compose로 묶어주면 편리하다
docker-compose.yaml 파일을 만들어 환경 세팅을 해준다.
version은 3.xx 버전이 가장 좋다.
yaml 파일은 {}를 사용하지않기 때문에 띄어쓰기 위치가 상당히 중요하다.
services에 원하는 dockerfile들을 묶어준다.

여기서 해주는 포트포워딩의 경우 우리가 직접 접속할때 사용하기 위한 포트포워딩이다.
compose로 묶었기 때문에 서로간의 포트포워딩은 필요없음

API와 DB를 연결 => Mongoose / MongoDB

터미널에서 mongoDB 실행 : brew services start mongodb-community
터미널에서 mongoDB 종료 : brew services stop mongodb-community
database 목록 : show databases
사용할 db : use [...]

mongoDB 시각화 => MongoDB Compass(데이터베이스 관리프로그램)
shell에서 db 추가하는 방법
=> show collections 명령어로 collection을 찾아주고
=> db.[원하는collection이름].insert({원하는데이터})
원하는 데이터가 document에 등록되고
=> db.[collection].find() 하면 내가 입력했던 데이터가 출력된다.
=> db.[collection].find().pretty() 하면 훨씬 깔끔하게 데이터가 출력됨.
quit() 연결해제, terminal에서 종료해줘야 완전히 종료

mongoose를 yarn add로 설치해주고 제일 먼저 실행되는 index에 아래와 같이 설정

mongoose.connect("mongodb://아이피주소:포트번호/fisrtPJ")

models 폴더 안에 아래와 같이 스키마를 작성해준다.
mongoose는 작성된 스키마로 데이터가 등록되는 순간 collection이 생긴다.

board와 관련된 API 안에서 아까 만든 schema를 import하고 주석 내용대로 사용하면된다.

get, post 이외에 delete ,put의 경우
mongoose Docs를 읽어보면 된다.

Nodemon refresh => Nodemon / Volumes

밖에서 소스코드를 고친다고해서 docker 안에 소스코드가 변경되지 않기 때문에 docker-compose build를 다시 해줘야하는데 이를 해결하기 위해서
밖에서 소스코드를 변경해도 도커컴퓨터 안에 소스코드까지 같이 변경시켜주는 명령어가 volumes이다.
volumes와 nodemon을 같이 활용해야한다.
index.js 외에도 다른 파일을 연결하고 싶으면 아래 -로 추가해줘야한다.

profile
프론트엔드 개발자

0개의 댓글