CI/CD 개념

지속적 소프트웨어 개발 방법을 사용하면 반복적인 코드 변경사항을 지속적으로 빌드, 테스트 및 배포할 수 있습니다. 이 반복적인 프로세스는 버그가 있거나 실패한 이전 버전을 기반으로 새 코드를 개발할 가능성을 줄이는 데 도움이 됩니다. 이 방법을 사용하면 새 코드 개발부터 배포까지 사람의 개입을 줄이거나 전혀 개입하지 않으려고 노력합니다.

지속적 통합(Continuous Integration, CI)

GitLab의 Git 저장소에 코드가 저장된 애플리케이션을 생각해 보십시오. 개발자는 매일, 하루에 여러 번 코드 변경사항을 푸시합니다. 리포지토리에 푸시할 때마다 스크립트 세트를 생성하여 애플리케이션을 자동으로 빌드하고 테스트할 수 있습니다. 이러한 스크립트는 애플리케이션에 오류가 발생할 가능성을 줄일 수 있습니다.

이 방법을 지속적 통합이라고 합니다. 애플리케이션에 제출된 각 변경사항은 개발 브랜치에도 자동으로 지속적으로 빌드되고 테스트됩니다. 이러한 테스트는 변경사항이 애플리케이션에 대해 설정한 모든 테스트, 지침 및 코드 준수 표준을 통과하도록 보장합니다.

지속적 전달(Continuous Delivery, CD)

지속적 전달은 지속적 통합을 넘어서는 단계입니다. 코드 변경이 코드베이스에 푸시될 때마다 애플리케이션이 빌드되고 테스트될 뿐만 아니라 애플리케이션도 지속적으로 배포됩니다. 그러나 지속적 전달을 사용하면 배포를 수동으로 트리거합니다.

지속적 전달은 코드를 자동으로 확인하지만, 변경사항의 배포를 수동으로 전략적으로 트리거하려면 사람의 개입이 필요합니다.

지속적 배포(Continuous Deployment, CD)

지속적 배포는 지속적 전달과 유사한 지속적 통합을 넘어서는 또 다른 단계입니다. 차이점은 애플리케이션을 수동으로 배포하는 대신 자동으로 배포되도록 설정한다는 것입니다. 사람의 개입이 필요하지 않습니다.