사내 아틀라시안 구성 프로젝트를 진행하며 DevOps에 대한 관심을 가지게 되었고, 관련하여 CI/CD 에 대해 정리를 해보려고 한다.
CI/CD의 의미
CI/CD는 Continuous Integration 의 약자인 CI(지속적인 통합)/ Continuos Deployment(지속적인 배포)의 약자인 CD를 합친 말이다.
또한 이러한 의미를 찾아보면 애플리케이션 개발 단계를 자동화 하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이라고 나와있다.
이 두가지 의미를 합쳐보면 애플리케이션 개발 단계의 자동화를 통해 지속적인 통합 및 테스트 단계부터 배포에 이르기 까지 애플리케이션 라이프사이클 전체를 자동화하고 모니터링해 고객에게 더 빠르게 새로운 애플리케이션을 제공하는 것이라고 볼 수 있다.
CI 란
CI는 애플리케이션 개발에서 여러 개발자들이 동일한 애플리케이션의 다른 기능들을 동시에 작업할 수 있도록 해주는 것이다. 각각의 개발자가 다른 기능들을 작업하더라도 그 기능들의 변경에 의해 다른 작업에 영향을 줄 수 있는 문제를 지속적인 통합을 통해 정기적으로 빌드/테스트 하여 변경사항들의 충돌이나 에러를 최소화 및 발견하게 해주는 것이다.
CD 란
CD는 CI/CD 파이프라인의 마지막 단계인 지속적인 배포입니다. 배포 준비가 완료된 빌드를 레포지토리에 자동으로 릴리스하는 작업이라고 볼 수 있습니다. 배포이전의 모든 단계에서 수동작업 과정을 제거해야하며, 또한 테스트 자동화가 이루어져야 빌드 완료 이후 자동화된 배포를 진행할 수 있습니다.