정의

  • CI/CD는 지속적 통합(Continuous Integration)지속적 제공/배포(Continuous Delivery/Deployment) 를 의미하며, 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표로 한다.

지속적 통합(CI)

  • 코드 변경 사항을 공유 소스 코드 리포지토리에 자동으로 자주 통합하는 사례를 나타낸다.

지속적 제공 및/또는 배포(CD)

  • 코드 변경 사항의 통합, 테스트, 제공을 나타내는 프로세스로, 두 가지 부분으로 구성된다. 지속적 제공에는 자동 프로덕션 배포 기능이 없는 반면, 지속적 배포는 업데이트를 프로덕션 환경에 자동으로 릴리스된다.

CI/CD의 필요성과 장점

항목 효과
빠른 피드백 코드 푸시 직후 오류 발견 가능
릴리스 속도 향상 수작업 배포 제거로 속도 증가
배포 안정성 자동화된 테스트로 품질 유지
협업 효율 증가 충돌/중복 수정 최소화

주요 도구 요약

목적 도구
빌드 및 통합 👔 Jenkins란, GitHub Actions, GitLab CI
테스트 JUnit, Jest, Selenium
컨테이너 오케스트레이션 🚢Kubernetes(k8s)란, OpenShift, Nomad
컨테이너화 Docker
배포 자동화 ArgoCD, Spinnaker, FluxCD
모니터링 Prometheus, Grafana