continuous-delivery

Continuous Delivery(CD)는 코드 변경 사항이 자동으로 빌드, 테스트 및 프로덕션 릴리스 준비가 되는 소프트웨어 개발 방식입니다.

Continuous Delivery(CD)는 소프트웨어 릴리스 프로세스를 자동화하는 데 중점을 둔 소프트웨어 엔지니어링 방식이자 원칙 집합입니다. 자동화된 테스트를 통과한 모든 코드 변경 사항이 프로덕션 릴리스 준비가 되도록 보장함으로써 Continuous Integration(CI)을 기반으로 합니다. 목표는 언제든지 배포 가능한 소프트웨어를 확보하는 것입니다. 일반적인 CD 파이프라인에서는 코드가 버전 관리 시스템에 커밋되어 자동화된 빌드 및 포괄적인 테스트 스위트(단위, 통합, 엔드투엔드)를 트리거합니다. 모든 테스트를 통과하면 아티팩트(예: 컨테이너 이미지, 실행 파일)가 스테이징 또는 사전 프로덕션 환경에 자동으로 배포됩니다. 이 시점부터 프로덕션 환경에 최종 배포하기 전에 일반적으로 수동 승인 또는 비즈니스 결정이 필요합니다. 이 방식은 각 변경 사항이 작고 잘 테스트되었으며 즉시 배포 가능하므로 소프트웨어 릴리스와 관련된 위험을 크게 줄입니다. 이를 통해 조직은 기능을 더 빠르게 출시하고, 시장 변화에 신속하게 대응하며, 릴리스 프로세스를 일상적이고 예측 가능하게 만들어 전반적인 소프트웨어 품질과 안정성을 향상시킬 수 있습니다.

        graph LR
  Center["continuous-delivery"]:::main
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Rel_cicd["cicd"]:::related -.-> Center
  click Rel_cicd "/terms/cicd"
  Rel_cicd_pipeline["cicd-pipeline"]:::related -.-> Center
  click Rel_cicd_pipeline "/terms/cicd-pipeline"
  Rel_continuous_integration["continuous-integration"]:::related -.-> Center
  click Rel_continuous_integration "/terms/continuous-integration"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 지식 테스트

1 / 3

🧒 5살도 이해할 수 있게 설명

숙제를 항상 깔끔하게 정리해서 선생님이 '시작'이라고 말하기만 기다리는 것처럼요.

🤓 Expert Deep Dive

Continuous Delivery는 성숙한 DevOps 파이프라인에서 Continuous IntegrationContinuous Deployment를 연결하는 바로 다음 단계입니다. CI가 코드를 자주 통합하고 자동화된 빌드 및 테스트를 통해 정확성을 확인하는 데 중점을 두는 반면, CD는 통합된 코드가 항상 릴리스 가능한 상태에 있도록 보장함으로써 이를 확장합니다. 파이프라인은 일반적으로 아티팩트 생성, 다양한 비프로덕션 환경(예: QA, UAT, 스테이징)으로의 자동화된 배포, 성능/보안 테스트를 포함합니다. Continuous Deployment와의 주요 차이점은 프로덕션 릴리스 전에 수동 게이트를 의도적으로 도입하여 비즈니스 검증, A/B 테스트 조정 또는 카나리 릴리스 전략을 허용한다는 것입니다. 아키텍처 측면에서 CD는 강력한 CI/CD 도구(예: Jenkins, GitLab CI, GitHub Actions), 코드형 인프라(IaC), 불변 인프라 원칙에 크게 의존합니다. 트레이드오프에는 완전한 Continuous Deployment에 비해 릴리스 빈도가 잠재적으로 느릴 수 있지만, 복잡한 릴리스 요구 사항이나 규제 제약이 있는 조직에는 더 큰 제어력과 위험 완화를 제공합니다.

🔗 관련 용어

선행 지식:

📚 출처