CI/CD 는
지속적 통합(Continuous Integration)과
지속적 배포(Continuous Deployment),
지속적 제공 (Continuous Delivery)의 약어입니다.
각 개념에 대한 자세한 사항은 아래 정리합니다.
지속적 통합 (Continuous Integration - CI) :
개념: 코드 변경 사항을 지속적으로 통합하여 품질을 유지하고 향상시키는 프로세스.
동작 방식: 개발자들이 코드를 개발하는 동안, 변경된 코드가 공유 리포지토리에 통합되고, 자동으로 빌드 및 테스트가 실행됨.
목적: 개발자들이 자주 코드를 통합하여 충돌을 최소화하고 품질을 지속적으로 검증함으로써 빠르게 소프트웨어를 개발하고 배포하는 것.
지속적 제공 (Continuous Delivery - CD):
개념: 지속적 제공은 지속적 통합의 확장으로, 자동으로 빌드 및 테스트를 통해 배포 가능한 소프트웨어를 생성하되, 프로덕션 환경으로의 배포는 자동화되지 않음.
동작 방식:코드 변경이 발생하면 자동으로 빌드 및 테스트를 실행하여 배포 가능한 소프트웨어를 생성하나, 프로덕션 배포는 수동으로 진행.
목적: 안정적이고 신뢰성 있는 소프트웨어를 지속적으로 생성하면서도 배포 과정의 투명성과 효율성을 높여, 언제든지 배포할 수 있는 소프트웨어를 개발자들이 관리할 수 있도록 합니다. 이는 비즈니스 요구에 따라 적절한 시점에 배포를 수행할 수 있도록 함.
지속적 배포 (Continuous Deployment - CD):
개념: 코드 변경이 자동으로 프로덕션 환경으로 배포되는 프로세스.
동작 방식: CI에서 통합된 코드가 자동으로 배포 파이프라인을 통과하여 프로덕션 환경에 자동으로 배포됨.
목적: 프로덕션 배포의 자동화를 통해 소프트웨어를 신속하게, 안정적으로, 반복적으로 배포함.
CI/CD는 다양한 도구와 자동화 기술을 활용하여 이러한 개념을 실현합니다. 이를 통해 개발자들은 빠르게 변경 사항을 통합하고 배포할 수 있으며, 소프트웨어의 품질을 지속적으로 모니터링하고 향상시킬 수 있음.
최종 정리 :
CI/CD는 빌드, 테스트, 배포 등을 자동화하여 품질을 향상시키고 빠르게 소프트웨어를 개발하고 배포하는 데 중점을 둔다.
CI는 통합만을, CD는 그 중에서도 배포 단계의 자동화 여부에 따라 두 가지로 나눠진다.
'개념 창고' 카테고리의 다른 글
SDK와 JDK의 차이점 (0) | 2024.04.19 |
---|---|
CI/CD 도구 (0) | 2024.02.06 |
Nods.js란? (0) | 2024.02.05 |
MSB(Most Significant Bit) & LSB(Least Significant Bit) (0) | 2024.01.31 |
Signed & Unsigned 정의 및 차이 (0) | 2024.01.31 |