Backend 7강

최창서·2022년 7월 1일
0

데이터베이스 전체적인 구조

SQL(관계형 데이터베이스)

=> 표형태(Table), 행(row) ex) 엑셀
여러가지의 Table을 결합시킬 수 있다.(관계형)
Oracle, MySQL, MSSQL, PostgreSQL

NoSQL

=> 서류봉투(Collection) 안에 각 페이지(Document)에 객체형태로 저장
MongoDB, Redis, Firebase

row와 document는 같은 개념

ORM(Object Relation Mapping) ex) sequalize(js), typeorm(typescript), prisma
ODM(Object Document Mapping) ex) mongoose
=> 데이터베이스 명령어를 모두 외우지 않아도 라이브러리를 설치하면 간단한 vscode로 DB 사용 가능

가상컴퓨터에서 API 실행 => Docker

보통 서비스를 구성할 때 컴퓨터 1대에 프론트,백,DB 서버를 한꺼번에 띄우지 않고,
gcp나 aws를 이용하여 컴퓨터를 빌려서 각 1대씩 나눠서 서버를 띄운다.
트래픽이 많이 몰리게 될 경우 컴퓨터를 1대씩 더 빌려서 분산시켜주면 편리하기 때문이다.

Docker에 대한 자세한 설명은 아래 참고
https://slid.cc/share/docs/codecamp-37일차-77ad50b6c947462a8412d8045d968a2e

docker build . => 현재폴더에 있는 파일 빌드
docker images => 이미지화 된 도커 목록
docker ps => 실행중인 도커 목록
docker exec -it [CONTAINER ID] /bin/bash => 도커 컴퓨터 bash에 접속
docker stop [CONTAINER ID] => 실행중인 도커 종료
docker ps -a => 실행기록
docker rm [CONTAINER ID] => 실행기록조차 삭제
docker rmi [ImageID] => 도커 이미지 삭제
docker ps -q => 실행중인 도커 목록
docker stop docker ps -q => 실행중인 도커 모두 종료
docker system prune -a => 도커 초기화

Port-Forwarding

docker에서 localhost로 서버를 띄웠을 때 postman, swagger api-docs 모두 통신이 되지 않는다.
이유는 node 서버가 도커 안에서 실행되고 있기 때문에 내 컴퓨터와 도커 사이에 포트를 열어줘야한다.
그럼 도커에서는 3001번으로 들어온 요청을 도커내에서 열려져있는 3001번 포트로 맵핑해줘야한다.

도커를 실행시킬때 docker run -p 2000:3001 [ImageID]

2000번으로 접속이 들어오면 docker의 3001번으로 연결 시켜주는 것이다.

Docker는 build 할떄마다 처음부터 새롭게 설치하지 않고 파일이나 폴더가 중복될 경우 캐시에 저장해놨던 파일을 가져온다. 만약에 명령어 중간이 바뀌게되면 뒤에 명령어에 해당하는 파일들이 바뀌지 않더라도 캐시에 저장해놓은 파일을 가져오는게 아니라 새로 build하게 되서 명령어의 순서가 굉장히 중요하다.

중간에 . /myfolder/ 의 내용이 바뀌게되면 yarn install을 계속하게 됨

yarn.lock 또한 버전을 지켜주기 때문에 COPY 해주는게 좋다

profile
프론트엔드 개발자

0개의 댓글