CI/CD ?
CI/CD는 소프트웨어 개발에서 자동화된 빌드, 테스트, 배포 프로세스를 의미합니다.
Continuous Integration (CI) 와 Continuous Delivery/Deployment (CD) 를 포함하는 개념입니다.
- CI (지속적 통합)
- 코드가 변경될 떄마다 자동으로 빌드 & 테스트 수팽
- 테스트 자동화로 버그를 조기에 발견
- CI 서버 (Jenkins, GitHub Actions, GitLab CI 등) 활용
- CD (지속적 제공)
- CI를 포함하여 배포 가능한 상태까지 자동화
- 운영환경과 동일한 테스트 환경에서 검증
- 배포 전 수동 승인 단계를 포함할 수 있음
- CD (지속적 배포)
- 코드가 변경될 때마다 자동 배포
- 수동 개입 없이 운영 서버 반영
- 빠른 배포 가능하지만, 철저한 테스트가 필수
Docker ?
애플리케이션과 그 실행에 필요한 모든 파일을 포함하는 독립적인 실행 환경이다
- 서로 다른 환경(OS)에서도 동일하게 실행 가능
- 애플리케이션을 패키징하여 손쉽게 배포 & 실행 가능
- 가상머신(VM)보다 경량화됨