⭐알게 된 점⭐
👉 CI/CD
- 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법
- 기본 개념 : 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포
- 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프 사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공 ⇒ CI/CD 파이프라인
- 대표적으로는 Travis, Jenkins, Github Actions 등
🐰 CI
- 지속적 통합이라는 뜻
- CI를 적용 후 자동화하면 개발자가 빌드와 테스트를 직접 하지 않아도 merge하기만 하면 자동으로 빌드와 테스트를 검증할 수 있음 => 트리거되어 실행
- 순서
- 개발자가 구현한 코드를 기존 코드와 병합한다.
- 병합된 코드가 올바르게 동작하고 빌드되는지 검증한다.
- 테스트 결과 문제가 있다면 수정하고 다시 1로 돌아간다. 문제가 없다면 배포를 진행한다.
🐰 CD
- 지속적 배포라는 뜻으로 지속적 제공으로 사용되기도 함
- 지속적 제공 : CI를 통해서 새로운 소스코드의 빌드와 테스트 병합까지 성공적으로 진행되었다면, 빌드와 테스트를 거쳐 github과 같은 저장소에 업로드하는 것을 의미
- 지속적 배포 : 공적으로 병합된 내역을 저장소뿐만 아니라 사용자가 사용할 수 있는 배포환경까지 릴리즈하는 것을 의미
😀 프로젝트를 진행하며 AWS를 사용해 배포를 진행하였는데
기존에 배포스크립트를 사용하여 프로젝트를 빌드했지만
Github Actions와 Docker를 사용해 좀 더 프로젝트의 빌드를 편리하게 만드려고 한다!