백엔드서버와 브라우저를 통할때는 : json
프론트엔드서버와 브라우저가 통할때는 : html, css, js
프로트엔드(서버)와 백엔드(서버)는 여러개 만들어 질 수 있다.
브라우저는 유저 페이지, 관리자 페이지가 존재 한다.
하지만 데이터베이스는 하나를 공유한다!!
백엔드 컴퓨터에 데이터베이스로 데이터를 보내주는 엑셀이라고 생각하면 편함
시트 하나를 테이블(table)이라고 부른다.
행(row) 열(column)으로 존재한다.
종류
ex) oracle, mysql, postgres
명령어
select아이디,이메일,이름fromUser.where아이디 = U01
서류봉투에 문서(key:value형식으로)를 한장씩 담아둔다고 생각하면 편하다.
봉투를 컬렉션(collection)이라고 부르고, 한장한장을 document라고 부른다, 안에 key:value형식 하나하나를 필드(filed)라고 부른다.
종류
ex)mongodb, firebase, redis
명령어
db.user.find({id:'U01})
요즘은 두개의 장점을 살려 두개다 사용하는 추세이다.
명령어를 외우기 힘들기 때문에 나온 library가 있다.
(1) ORM (Object Relation Mappping) 관계형 데이터 베이스에 쉽게 접근해서 수정하고 변경하기 쉽게 해줌
종류: typeorm(가장 유명한 typescript ORM), sequalize(가장유명한 js ORM),prisma
(2) ODM : 문서형 데이터 베이스에 쉽게 접근해서 수정하고 변경하기 쉽게 해줌
종류: mongoose 등등
몽고 실행하기 - 터미널에서 mongo
몽고에 데이터 베이스 보기 - show databases;
데이터베이스 선택하기 - use local; => 이후로 local로 입력된다
콜렉션 보기 - show collections;
안에 페이지보기- db.startup_log.find();
🤩 mongodb-compass를 통해 페이지를 좀더 보기 쉽게 볼 수 있다.
뿐만 아니라 데이터와 폴더를 만들어 줄 수 있다.
docker-compose.yaml : 띄어쓰기가 중요하다
context: .( 현위치에 같이 있다는 뜻)
dockerfile: (열 dockerfile을 적는다)
docker-compose build : compose를 통해 묶인 docker 파일을 한번에 build를 한다.
docker-compose up : docker 파일을 연다.
이후 서버가 열려있기 때문에 터미널을 다시 열어서 실행하는 것이 좋다!!
captain@nowonduui-MacBookPro backend % docker ps
captain@nowonduui-MacBookPro backend % docker exec -it 컨테이너ID /bin/bash (몽고파일이 있는 컨테이너ID를 골라 들어간다)
captain@nowonduui-MacBookPro backend % mongo (몽고를 실행해준다)
captain@nowonduui-MacBookPro backend % show databases;
captain@nowonduui-MacBookPro backend % use local;
captain@nowonduui-MacBookPro backend % show collections;
captain@nowonduui-MacBookPro backend % 몽고DB 컴패스에서 접속
captain@nowonduui-MacBookPro backend % 접속안되면? docker-compose.yaml 포트포워딩 확인
간단한 mongo만 생성해줄 때는 docker 파일을 만들지 않고 이렇게 해주면 자동으로 생성된다.
express에서 mongodb로 가기 위한 ODM
이미지 파일만 받아오는 경우 docker파일까지 받아올 필요가 없다.
yarn add mongoose
를 해준다.import mongoose from "mongoose"
를 써준뒤 express실행 app위에 mongoose가 잘 되는지 확인하는 명령어를 써준다!!도커 컴포즈
도커 컴퓨터 간에는 포트 포워딩이 필요 없어진다. => 네임리졸류션
docker-compose.yaml에서 포트 포워딩을 없애도 db연결이 가능하게 된다!!