CI/CD란?

CI/CD(지속적 통합/지속적 제공 또는 배포)는 자동화를 통해 실현 가능한 소프트웨어 개발 방식입니다. 빈번하고 안정적으로 이루어지는 업데이트를 통해 지속적으로 코드를 제공하여 릴리스 주기를 단축합니다.

CI/CD 소개

CI/CD는 여러 DevOps 단계를 아우르는 포괄적인 용어입니다. CI(지속적 통합)은 코드 변경 사항을 하루에 여러 차례 저장소에 통합하는 방식입니다. CD에는 지속적 제공을 통해 코드 통합을 자동화하거나 지속적 배포를 통해 최종 빌드를 최종 사용자에게 자동으로 릴리스한다는 두 가지 의미가 담겨 있습니다. CI/CD에서 빈번하게 수행되는 테스트로 코드 오류와 결함이 줄어들므로 CI/CD는 모든 DevOps 워크플로에 중요한 역할을 합니다.

 

소스 코드 관리

CI(지속적 통합)

CI는 DevOps 베스트 프랙티스이자 개발자들이 하루에 여러 차례 수시로 코드를 공통 코드 저장소에 체크인하는 DevOps 라이프사이클 단계입니다. 이런 일이 일어날 때마다 자동화된 빌드 툴이 체크인이나 브랜치를 검증하여 오류가 없는지 확인하므로 제작 단계로 바로 진행할 수 있습니다. 여기서 얻을 수 있는 주 이점은 일반적으로 문제가 더 심화되기 전에 조기에 발견된다는 점입니다.

CI를 구현하면 소요 시간이 긴 중대한 업데이트가 아닌 사소한 변경 사항을 단기간에 통합할 수 있습니다. 테스트, 병합, 공통 저장소에 변경 사항 체크인 작업 워크플로를 자동화하면 팀이 더욱 신속히 깔끔한 코드를 제공할 수 있습니다. 깔끔한 코드를 통해 빠르게 검증하고, 보다 깔끔한 릴리스를 제공하고, 확장이 용이한 개발 파이프라인의 효율성을 향상할 수 있습니다.

 

CI(지속적 통합)

CI는 DevOps 베스트 프랙티스이자 개발자들이 하루에 여러 차례 수시로 코드를 공통 코드 저장소에 체크인하는 DevOps 라이프사이클 단계입니다. 이런 일이 일어날 때마다 자동화된 빌드 툴이 체크인이나 브랜치를 검증하여 오류가 없는지 확인하므로 제작 단계로 바로 진행할 수 있습니다. 여기서 얻을 수 있는 주 이점은 일반적으로 문제가 더 심화되기 전에 조기에 발견된다는 점입니다.

CI를 구현하면 소요 시간이 긴 중대한 업데이트가 아닌 사소한 변경 사항을 단기간에 통합할 수 있습니다. 테스트, 병합, 공통 저장소에 변경 사항 체크인 작업 워크플로를 자동화하면 팀이 더욱 신속히 깔끔한 코드를 제공할 수 있습니다. 깔끔한 코드를 통해 빠르게 검증하고, 보다 깔끔한 릴리스를 제공하고, 확장이 용이한 개발 파이프라인의 효율성을 향상할 수 있습니다.

 

CI(지속적 통합)

CI는 DevOps 베스트 프랙티스이자 개발자들이 하루에 여러 차례 수시로 코드를 공통 코드 저장소에 체크인하는 DevOps 라이프사이클 단계입니다. 이런 일이 일어날 때마다 자동화된 빌드 툴이 체크인이나 브랜치를 검증하여 오류가 없는지 확인하므로 제작 단계로 바로 진행할 수 있습니다. 여기서 얻을 수 있는 주 이점은 일반적으로 문제가 더 심화되기 전에 조기에 발견된다는 점입니다.

CI를 구현하면 소요 시간이 긴 중대한 업데이트가 아닌 사소한 변경 사항을 단기간에 통합할 수 있습니다. 테스트, 병합, 공통 저장소에 변경 사항 체크인 작업 워크플로를 자동화하면 팀이 더욱 신속히 깔끔한 코드를 제공할 수 있습니다. 깔끔한 코드를 통해 빠르게 검증하고, 보다 깔끔한 릴리스를 제공하고, 확장이 용이한 개발 파이프라인의 효율성을 향상할 수 있습니다.

 

Continuous Integration Vs Continuous Delivery

지속적 제공

지속적 제공은 CI 다음에 이루어지며, 이를 최종 제품이 고객에게 출시되거나 배포되기 전에 개발 파이프라인에서 확인하는 체크포인트 단계라고 생각하면 됩니다. 코드 변경 사항이 검증된 후에는 저장소로 자동 전달됩니다. 

지속적 제공의 목표는 최종 제품이 출시될 준비가 되지 않은 경우 기본 빌드에 업데이트하지 않아도 최종 제품의 '정식으로 제작에 사용 가능' 상태가 유지될 만큼 사소한 체인지 세트는 유지하는 것입니다. 최종 제품에 사소한 오류가 있을 수 있으나 사용자 경험을 저해할 만큼 중대한 오류는 아닙니다.

지속적 제공을 구현하면 처음부터 안정적인 코드만 제공되므로 개발자는 자체적으로 테스트하는 데 소요되는 시간을 단축할 수 있습니다. 이를 통해 버그 감지 프로세스가 간단해져 해결에 걸리는 시간을 줄일 수 있습니다.

CI/CD의 이점

신속한 반복 작업

DevOps 라이프사이클의 일환으로 CI/CD 방식을 채택하면 코드 베이스 관련 변경 사항을 검증하고 배포하는 수동 작업을 자동화함으로써 개발 속도를 높일 수 있습니다.

더욱 깔끔한 코드

하루 종일 수많은 사소한 변경 사항을 확인하면 소스 코드로 유입되어 빌드를 손상시키는 오류가 발생할 위험을 크게 줄일 수 있습니다.

더욱 빠르게 버그 해결

CI/CD를 통해 소규모 체인지 세트를 더 자주 병합하면 코드 오류가 더 큰 문제로 발전하기 전에 손쉽게 이를 식별하고 해결할 수 있습니다.

피드백 루프 단축

CI/CD를 통해 반복적으로 발생하는 사소한 변경 사항을 손쉽게 통합, 테스트, 배포할 수 있어 피드백 루프를 단축할 수 있습니다.

더욱 효율적인 협업

CI/CD는 코드를 커밋하고 빌드를 출시하기 위한 프로세스와 일정을 정립함으로써 작업에 명확성을 더합니다. 보다 명확해진 목표를 통해 팀은 향상된 민첩성에 대응할 수 있습니다.

고객 만족도 향상

CI/CD를 통해 빌드가 출시 준비 완료 상태이므로 고객이 서비스 중단을 경험할 가능성이 줄어들 뿐 아니라 고객 피드백이 훨씬 빠르게 통합될 수 있습니다.

관련 자료

리소스를 더 살펴보고 CI/CD와 더불어 기타 DevOps 툴 및 프로세스에 대해 알아보세요.

애자일과 DevOps 비교

애자일과 DevOps는 주기적인 릴리스 일정을 통해 고객 가치를 제공한다는 점에서 동일한 목표를 가지고 있지만, 접근 방식에서 다소 차이가 있습니다. 애자일과 DevOps를 함께 사용하는 방법을 알아보세요.

DevOps의 이점

DevOps 방식을 구현하면 개발 파이프라인을 간소화하고 팀과 사용자의 만족도를 향상할 수 있습니다. DevOps를 사용하면 어떤 도움이 되는지 알아보세요.

소스 코드 관리 이해

SCM(소스 코드 관리)은 팀이 신속하게 작업하고 효율적으로 협업하는 데 도움이 됩니다. 버전 관리 툴, 사용 시기 및 작동 방식에 대해 알아야 할 모든 내용을 알아보세요.

유니티의 CI/CD 솔루션

유니티의 CI/CD 솔루션을 사용하여 반복 작업을 신속히 수행하고 효과적인 소스 코드 관리 및 자동화 기능을 프로젝트에 활용하세요. 분산된 작업의 경우 Unity Cloud Build를 선택하거나 Unity Build Server를 사용해 온프레미스 빌드 용량을 확장하세요.

CI/CD Frequently asked questions

Is agile the same as CI/CD?

An agile workflow and CI/CD are related, however, they are not the same! They describe completely different aspects of the software development pipeline. Agile development, refers to the process or methodologies for managing workflows, meeting cadences, and team organization in software development. An agile methodology embraces change while accelerating delivery by listening and responding to customer needs and involving them in each stage of the development process.

CI/CD relies on automation to remove the human elements that create bottlenecks in releasing and improving the software. In both CI and CD testing is automated throughout the pipeline and is done frequently to minimize the costs and time it takes to remediate defects.

 

How often should you be deploying to production with continuous deployment?

With CI/CD, releases should always be frequent to avoid future problems and assure your software is always in a releasable state - typically deploying multiple times a day. A common assumption with CI/CD teams should be implementing "constant" releases, however, this is not always the case. Your release cycle can vary widely depending on your product, your builds, and other factors you might want to take into consideration such as:

Is it a critical or minor fix?

Are you tracking regression counts from build to build?

Is there a QA team put in place?

Does the code base have unit tests?

Are there any code duplications?

These are just a few examples of aspects to consider when thinking about a release strategy and pipeline, but it differs drastically from team to team. Different products require different approaches.

Is continuous deployment worth it?

There is no one size fits all answer to this question. Before investing in continuous deployment a business must first assess what the biggest risks are of their product and then determine the tradeoffs in how you want to deploy software. The success of your product is dependent on being able to quickly iterate, get feedback from your customers, and continue to make changes. Continuous deployment will be highly impactful and profitable if you are prioritizing shortening feedback loops and building a highly responsive business. However, if your business does not have many customers then the benefits of implementing increments of deployment will add less value and more costs. The staging environment you choose to deploy ultimately depends on your business needs, workflow, and budget.

Does continuous delivery encourage configuration as code?

Continuous delivery does encourage configuration because it continuously makes changes to the original code in the configuration. This ensures that the configuration stays up with code errors that may occur over time.

Unity에서는 최적의 웹사이트 경험을 제공하기 위해 쿠키를 사용합니다. 자세한 내용은 쿠키 정책 페이지를 참조하세요.

확인