지속적 전달(Continuous Delivery)은 프로덕션에 릴리스하기 위한 코드 변경이 자동으로 준비되는 소프트웨어 개발 방식입니다. 현대 애플리케이션 개발의 기반인 지속적 전달은 빌드 단계 이후의 모든 코드 변경을 테스트 환경 및/또는 프로덕션 환경에 배포함으로써 지속적 통합을 확장합니다. 적절하게 구현할 경우, 개발자는 언제나 즉시 배포할 수 있고 표준화된 테스트 프로세스를 통과한 빌드 아티팩트를 보유할 수 있습니다. 

지속적 전달에서는 개발자가 단순한 유닛 테스트 외에도 다양한 테스트를 자동화할 수 있으므로, 고객에게 배포하기 전에 여러 차원에서 애플리케이션 업데이트를 확인할 수 있습니다. 이러한 테스트에는 UI 테스트, 로드 테스트, 통합 테스트, API 안정성 테스트 등이 포함될 수 있습니다. 이를 통해 개발자는 업데이트를 좀 더 철저히 검증하고 문제를 사전에 발견할 수 있습니다. 온프레미스에서는 힘들었지만, 클라우드에서는 테스트용으로 여러 개의 환경을 생성하고 복제하는 작업을 비용 효율적으로 손쉽게 자동화할 수 있습니다.

지속적 전달에서는 모든 코드 변경이 빌드 및 테스트된 후, 비프로덕션 테스트 또는 스테이징 환경으로 푸시됩니다. 프로덕션 배포 전에 여러 개의 병렬 테스트 단계가 있을 수 있습니다. 지속적 전달과 지속적 배포의 차이점은 프로덕션에 업데이트에 대한 수동 승인 존재 여부입니다. 지속적 배포의 경우 명시적 승인 없이 자동으로 프로덕션이 일어납니다. 

지속적 통합 및 지속적 전달

지속적 전달은 전체 소프트웨어 릴리스 프로세스를 자동화합니다. 수정 버전이 커밋될 때마다, 업데이트를 빌드 및 테스트한 후, 스테이징하는 자동화된 흐름이 트리거됩니다. 라이브 프로덕션 환경에 배포하는 최종 결정은 개발자가 트리거합니다.


소프트웨어 릴리스 프로세스 자동화

지속적 전달을 사용하면 팀에서 프로덕션에 릴리스하기 위한 코드 변경을 자동으로 빌드, 테스트 및 준비하여, 좀 더 빠르고 효율적으로 소프트웨어를 전달할 수 있습니다.

개발자 생산성 향상

이러한 방식은 개발자가 수동 작업에 대한 부담을 덜고 고객에게 배포되는 오류 및 버그 수를 줄이는 데 도움이 되는 기능을 활용함으로써 팀의 생산성을 높일 수 있습니다.

버그를 조기에 발견 및 해결

좀 더 자주 포괄적으로 테스트를 수행함으로써 더 큰 문제로 발전하기 전에 버그를 발견하고 해결할 수 있습니다. 지속적 전달의 경우 전체 프로세스가 자동화되어 있으므로, 다른 유형의 테스트를 손쉽게 추가하여 수행할 수 있습니다.

업데이트를 더 빠르게 제공

지속적 전달을 사용하면 팀이 좀 더 빠르고 좀 더 빈번하게 고객에게 업데이트를 제공할 수 있습니다. 지속적 전달이 적절하게 구현되면, 언제나 즉시 배포할 수 있고 표준화된 테스트 프로세스를 통과한 빌드 아티팩트를 보유하게 됩니다.  

지속적 전달과 그 이점, 그리고 AWS CodePipelineAWS CodeBuild를 사용하여 지속적 전달을 구현하는 방법을 자세히 알아보려면 동영상을 시청하십시오.

AWS에서 지속적 전달을 적용할 수 있는 몇 가지 방법이 있습니다.

AWS CodeBuild에서 코드를 빌드하도록 워크플로를 구축하고, 자동 테스트를 실행하며, 코드를 배포하는AWS CodePipeline을 사용하여 지속적 전달을 적용합니다. 자습서를 따라 CodePipeline을 사용해 보십시오.

파트너 솔루션을 살펴보십시오.