Jenkins
[Jenkins] CI (Continuous Integration) & CD (Continuous Delivery / Deployment)
에띠
2023. 7. 17. 17:25
728x90
CI (Continuous Integration)와 CD (Continuous Delivery/Deployment)는 소프트웨어 개발 및 배포 프로세스를 자동화하여 더욱 효율적으로 운영하는 방법입니다. 이 두 가지 개념은 최신 애자일 개발 및 DevOps 환경에서 중요한 역할을 하며, 빠르게 변화하는 소프트웨어 요구 사항을 충족시키는 데 도움을 줍니다.
CI (Continuous Integration)란?
CI는 소프트웨어 개발에서 코드 변경 사항을 정기적으로 빌드하고 테스트하여, 변경된 코드를 공유 리포지토리에 통합하는 프로세스입니다. 주로 여러 개발자가 동시에 작업하는 대규모 프로젝트에서 충돌을 방지하고 협업을 원활하게 만드는 데 유용합니다.
- 핵심 목표:
- 버그를 신속하게 발견하고 해결하여 소프트웨어 품질을 개선합니다.
- 새로운 업데이트의 검증 및 릴리즈 시간을 단축시킵니다.
CI의 과정:
- 개발자는 새로운 코드를 작성합니다.
- 코드가 빌드 및 테스트됩니다.
- 공유 리포지토리에 자동으로 통합되어 다른 개발자들과의 충돌을 방지합니다.
CD (Continuous Delivery / Deployment)란?
CD는 CI 프로세스를 바탕으로, 애플리케이션이 빌드 및 테스트가 완료된 후 자동 혹은 수동으로 배포되는 과정을 의미합니다. CD는 크게 두 가지 방식으로 나눌 수 있습니다: 지속적인 서비스 제공(Continuous Delivery)과 지속적인 배포(Continuous Deployment).
지속적인 서비스 제공 (Continuous Delivery)
- CD의 일환으로, 개발자가 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리로 자동으로 업로드됩니다.
- 운영팀은 리포지토리에서 최신 버전을 프로덕션 환경에 배포할 수 있습니다.
지속적인 배포 (Continuous Deployment)
- 개발자의 변경 사항이 리포지토리에서 고객의 프로덕션 환경까지 자동으로 릴리즈됩니다.
- 수동 프로세스를 제거하여 애플리케이션 제공 속도를 개선하고, 운영팀의 과중한 프로세스를 해결합니다.
CI와 CD 정리
- CI는 새로운 코드 변경 사항을 빌드하고, 테스트하여 리포지토리에 병합하는 과정입니다.
- CD는 개발자가 변경한 코드가 리포지토리를 넘어 고객의 프로덕션 환경까지 릴리즈되는 과정입니다.
결론
CI/CD는 개발 효율성과 품질을 높이고, 배포 속도를 빠르게 유지하면서도 안정적인 서비스를 제공하는 데 중요한 역할을 합니다. CI는 개발자들의 작업을 원활히 통합하고, CD는 자동화된 배포 프로세스로 운영팀의 부담을 줄이며 애플리케이션 제공 속도를 최적화합니다.
728x90