CI/CD 파이프라인 (CI/CD Pipeline (Continuous Integration / Continuous Delivery))
쉽게 풀면
CI/CD는 개발자가 코드를 수정할 때마다 그 변화를 자동으로 검증하고 실제 서비스에 반영하는 과정을 통틀어 말한다. CI(지속적 통합)는 코드를 합칠 때마다 자동으로 테스트를 돌려 문제를 빨리 찾아내는 것이고, CD(지속적 배포)는 검증된 코드를 사람이 일일이 수작업으로 옮기지 않고 자동으로 실제 서비스 서버에 반영하는 것이다. 이렇게 하면 사람의 실수를 줄이고, 문제가 생겼을 때도 빨리 발견해 고칠 수 있다.
왜 중요한가
소프트웨어 공학 연구에서는 CI/CD가 개발 생산성, 소프트웨어 품질, 배포 안정성과 직결되는 실무 관행으로 다뤄지기 때문에 자주 언급된다. 또한 재현 가능한 연구 소프트웨어를 만들거나 실험 파이프라인을 관리하는 논문에서도, 코드 변경이 자동으로 검증·반영되는 체계를 갖췄다는 점을 신뢰성의 근거로 제시하는 경우가 많다. 최근에는 머신러닝 시스템 논문에서 모델 학습·배포 자동화(MLOps)를 설명할 때도 CI/CD 개념이 확장되어 인용된다.
논문에서는 이렇게 쓰입니다
코드가 수정될 때마다 사람 개입 없이 자동으로 테스트를 거치고 서버에 반영되는 자동화된 절차를 갖추고 있었다는 뜻이다.
머신러닝 시스템 연구에서 CI/CD를 학습-배포 자동화(MLOps) 맥락으로 확장해 사용한 예로, 검증을 통과한 모델만 자동으로 서비스에 반영되는 구조를 설명한다.
소프트웨어 공학 실증 연구에서 CI/CD 파이프라인이 남기는 로그 데이터를 분석 대상으로 삼아, 개발 프로세스의 효율성을 정량적으로 살펴보는 방식이다.
조금 더 깊게 보면
CI/CD 파이프라인은 대체로 빌드, 테스트, 정적 분석, 배포 등 여러 단계로 구성되며, 각 단계가 실패하면 이후 단계로 넘어가지 않는 방식으로 품질을 관리한다. 파이프라인의 효과를 논의할 때는 빌드 성공률, 파이프라인 실행 시간, 배포 빈도 같은 지표가 흔히 함께 언급된다. 또한 CD는 다시 코드가 자동으로 실제 서비스에 반영되는 지속적 배포(continuous deployment)와, 배포 직전 단계까지만 자동화하고 최종 반영은 사람이 승인하는 지속적 전달(continuous delivery)로 구분되기도 하는데, 두 용어가 문헌마다 다소 혼용되어 쓰이는 경우가 있어 문맥을 함께 살펴볼 필요가 있다.
주의할 점
CI와 CD는 종종 함께 묶어 부르지만 엄밀히는 자동 테스트 단계(CI)와 자동 배포 단계(CD)로 구분되며, 많은 연구 프로젝트는 CI만 갖추고 CD는 수동으로 하는 경우도 흔하다.