데이터베이스는 크게 표(Table) 형식인 SQL과 서류(Collection) 형식인 NoSQL이 있다.
SQL의 대표적인 예로 Oracle, MySQL, Postgresql 등이 있고, NoSQL에는 MongoDB 등이 있다.
SQL과 NoSQL을 사용하지 않고 더 편리하게 데이터베이스에 접근하기 위해 ORM과 ODM을 사용한다.
- 데이터를 저장하거나 가져오기 위해 브라우저에서 백엔드 서버로 API 요청을 보냄
- 요청을 받은 백엔드는 DB에 데이터를 저장하거나 가져오는 등의 행동을 하기위해
ORM(Object-Relational Mapper)이나 ODM(Object-Document Mapper)을 사용
ORM은 테이블로 이루어진 데이터베이스를 다룰 때 사용하는 SQL을 다른 언어에서 쉽게 사용하도록 해줌
ODM은 문서(document)와 collection으로 이루어진 NoSQL 데이터베이스를 다룰 수 있게 해줌
링크텍스트에 접속해 OS에 맞는 버전을 설치한다.
설치 후 터미널에서 docker --version
을 입력해 잘 설치되었는지 확인한다.
컨테이너 기반의 오픈소스 가상화 플랫폼이다.
도커는 개발환경 요소들이 설치된 모습을 이미지로 저장하고 저장한 이미지를 클라우드에 올린다.
이미지들이 서로 연결돼서 동작하는 설정을 문서(Dockerfile)로 저장. 새 컴퓨터에 가서 복사한 문서의 내용대로 이미지를 다운받아 설치한다.
가상머신과 비슷하지만 훨씬 빠르고 자원을 효율적으로 사용한다.
내 컴퓨터 안에 있는 가짜컴퓨터? 느낌
컨테이너 실행을 위해 이미지를 만들어야한다. Dockerfile이라는 파일을 만들고 이미지를 만들기 위한 명령어를 입력, docker build
명령어로 이미지를 만든다.
FROM node:14
COPY ./index.js /myfolder/
WORKDIR /myfolder/
CMD node index.js
FROM 리눅스:최신버전
리눅스의 최신 버전이 깔린 컴퓨터가 한대 만들어지는데, node, npm, yarn도 설치해야하는데 다른사람들이 만들어놓은FROM node:14
로 node, npm, yarn이 모두 설치되어있는 컴퓨터를 만든다
COPY ./index.js /myfolder/
index.js 파일에 있는 모든 소스 코드를 가상 컴퓨터 안의 myfolder 폴더로 복사하여 해당 폴더에 저장
WORKDIR /myfolder/
가상 컴퓨터가 만들어지면 명령어를 실행할 작업 폴더를 지정
CMD node index.js
명령어를를 통해서 복사하여 저장된 파일을 실행
만들어진 설명서로 하나의 이미지로 만들어주는것을 build
한다고 표현한다
터미널에 docker build .
명령어를 입력한다.
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
이런 오류가 나오면 docker 프로그램이 켜져있나 확인
빌드가 완료되면 이미지가 생성된 것이고 docker images
명령어로 확인할 수 있다.
docker run 이미지ID
를 입력하여 이미지를 실행시키면 가상 컴퓨터가 하나 만들어진다.
이 가상 컴퓨터를 컨테이너
라고 부른다.
docker ps
- 실행중인 컨테이너 목록 확인
docker ps -a
- 종료된 컨테니이너까지 전부 확인
docker rm 컨테이너ID
- 컨테이너 삭제
기존에 있는 node_modules
폴더의 복사를 방지하기 위한 설정
.dockerignore
파일을 새로 만들고 node_modules
를 적어준다
실행한 컨테이너에 접속하기 위해 docker exec -it 컨테이너_아이디 /bin/bash
명령어를 입력하면 bash 쉘로 바뀐다.
pwd
, ls
등 명령어가 동일하게 작동한다
exit
명령어로 종료할 수 있다
외부에서 내부의 도커 컨테이너로 접속하기 위해서 포트 포워딩(Port Forwarding)
을 해줘야 한다
docker run -p 포트번호:포트번호 이미지_아이디