CI(GitHub Actions) + CD(Docker)로 프로젝트 배포하기
EC2 스프링 부트 서버에 도메인 연결 및 HTTPS 적용하기
Docker Compose - 애플리케이션, MySQL 컨테이너를 EC2에 올리기
CSRF (Cross-Site Request Forgery - 사이트간 요청 위조)

Github Action + Docker + Docker Compose + AWS EC2
Github Action을 통해 코드를 빌드하고, 이를 도커 레포지토리에 push, 그리고 ssh로 원격 서버(EC2)에 접속하여 도커의 이미지를 pull하여 Docker-Compose를 통해 실행시키는 방식.Docker는 개발자가 애플리케이션을 컨테이너라는 격리된 환경에서 개발하고 배포할 수 있도록 해주는 오픈 소스 플랫폼이다.
Docker 컨테이너는 애플리케이션과 그 애플리케이션을 실행하는 데 필요한 모든 종속성과 라이브러리를 포함하고, 이를 어떤 환경에서도 동일하게 실행할 수 있게 해준다.
일상생활에서 ‘컨테이너’는 어떤 물건을 안전하게 다른 장소로 운반하기 위해 사용된다. 이 컨테이너는 내용물이 무엇이든 간에 동일한 형태와 크기를 가지므로, 세계 어디서나 쉽게 취급할 수 있다. 바로, 이 컨테이너를 다루는 것이 Docker이다.
그리고 컨테이너가 운반하는 어떤 물건이 바로, 이미지이다. 이미지는 애플리케이션과 그 실행 환경을 포함하는 불변의 파일이다. 이미지는 컨테이너를 생성하는 데 사용되고, 주로 Dockerfile이라는 스크립트를 통해 정의되고 빌드된다.
Docker Hub는 컨테이너들의 창고라고 할 수있다. Docker Hub에는 애플리케이션을 실행하는 데 필요한 컨테이너 이미지들이 저장된다. 창고에서 물건을 다른 사람들과 공유하듯이, Docker Hub를 통해 다른 사람들과 컨테이너 이미지를 공유할 수 있다. 즉, Docker Hub는 Docker 이미지를 저장하고 공유하기 위한 클라우드 기반의 서비스이다.
