CI/CD

기술 용어
1분 읽기

소프트웨어 변경 사항을 지속적으로 통합(CI)하고, 자동화된 검증을 거쳐 실서비스에 즉시 배포(CD)하는 개발 자동화 체계입니다. 오류를 조기에 발견하고 배포 주기를 단축하여 품질과 속도를 동시에 확보하는 현대 개발의 필수 방법론입니다.

다른 이름
Continuous Integration/Continuous Deployment지속적 통합/배포

상세 설명

CI/CD는 소프트웨어 개발 전 과정을 자동화하여 코드 품질과 배포 속도를 높이는 핵심 프랙티스입니다. 지속적 통합(CI)은 개발자가 제출한 코드를 수시로 통합하고 자동 빌드 및 테스트를 실행해 결함을 조기에 발견합니다. 지속적 배포(CD)는 검증된 코드를 운영 환경에 즉각 반영하거나 배포 가능 상태로 유지합니다. 특히 AI 프로젝트에서는 데이터 검증과 모델 재학습이 포함된 MLOps 구축의 근간이 되며, 최근에는 AI가 파이프라인의 오류를 예측하거나 테스트 케이스를 최적화하는 지능형 자동화로 진화하고 있습니다. GitHub Actions, GitLab CI, Jenkins 등을 통해 구현하며, 수동 작업에 따른 인적 오류를 최소화합니다.

도구 선택에서 중요한 이유

AI 서비스는 일반 소프트웨어와 달리 데이터와 모델의 변화가 잦아 배포 리스크가 큽니다. 자동화된 CI/CD 없이 수동으로 관리할 경우, 모델 성능 저하나 데이터 드리프트에 신속히 대응할 수 없습니다. 따라서 AI 인프라와 호환성이 높고 GPU 연산 자원을 효율적으로 할당할 수 있는 도구를 선택하는 것이 프로젝트 성패를 좌우합니다.

AI 프로젝트를 위한 확인 점

  • GPU 러너(Runner) 지원: 모델 학습 및 검증을 위한 GPU 인스턴스 연동이 용이한가?
  • 데이터 버전 관리 통합: DVC나 MLflow 등 AI 전용 도구와 파이프라인이 매끄럽게 연결되는가?
  • 배포 전략 지원: Canary 또는 Blue-Green 배포를 통해 모델 업데이트 시 리스크를 최소화할 수 있는가?
  • 보안 및 규정 준수: 코드 내 API 키 노출 방지 및 보안 취약점 스캔(DevSecOps) 기능이 내장되어 있는가?

실제 활용 예시

개발자가 새로운 데이터 전처리 로직을 GitHub에 푸시하면, GitHub Actions가 트리거되어 자동으로 유닛 테스트를 수행합니다. 테스트 통과 시 Docker 이미지가 빌드되고, 클라우드 환경의 쿠버네티스 클러스터에 모델 서빙 엔드포인트가 자동으로 업데이트되는 구조를 구축할 수 있습니다.

헷갈리기 쉬운 용어

CI (Continuous Integration)

코드 통합 및 자동 빌드/테스트를 통해 코드베이스의 정합성을 유지하는 단계입니다.

CD (Continuous Deployment)

사람의 개입 없이 테스트를 통과한 결과물을 실서비스 환경에 자동으로 배포하는 최종 단계입니다.

CT (Continuous Training)

MLOps 특유의 개념으로, 새로운 데이터가 유입될 때마다 모델을 자동으로 재학습시키는 파이프라인입니다.

관련 용어

MLOpsDevOpsgithub-actions