CI(Continuous Intergration)으로 모든 개발이 끝난 이후 코드 품질을 관리하는 고전적 방식의 단점을 해소하기위해 생겨났다.
개발을 하면서 코드에 대한 통합을 지속적으로 진행해서 품질을 유지하는 것이다.
CI가 필요한 환경은 다음과 같다.
다수의 개발자가 형상관리 툴을 공유하여 사용하는 환경
자동화된 빌드, 테스트는 원천 소스코드의 충돌을 방어하는 benefit을 제공할 수 있다.
MSA(Micro Service Archietecture) 환경
MSA는 작은 기능별로 서비스를 잘게 쪼개어 개발하는 형태를 의미한다.
CD(Continuous Deploy 혹은 Delivery)는 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하자는 개념이다.
CD가 되려면 CI가 선행되어야 한다.
CI 프로세스를 통해 개발 중 지속적으로 빌드와 테스트를 진행하고,
이를 통과한 코드에 대하여 테스트 서버와 운영서버에 곧바로 그 내용을 배포해 반영하는 것이다.
CI : 빌드 및 테스트 자동화
CD : 배포 자동화
https://artist-developer.tistory.com/24
https://itholic.github.io/qa-cicd/