연속 통합 살펴보기
CI(연속 통합)는 가장 기본적인 DevOps 요소 중 하나입니다. 이는 협업을 승격하고, 코드 품질 문제를 조기에 검색하는 데 기여하며, 간소화된 개발 프로세스에 도움이 됩니다. 또한 지속적인 업데이트 및 배포의 기반 역할도 합니다. CI 사례를 채택함으로써 샘플 시나리오에 설명된 조직은 애플리케이션 빌드 및 테스트에 수반되는 수동 작업을 제거하고 사용자에게 효과적으로 신속하게 제공할 수 있습니다. CI 이점을 충분히 이해할 수 있도록 이 단원에서는 이에 대해 설명할 예정입니다.
연속 통합이란?
연속 통합은 소프트웨어 리포지토리에 대한 개별 업데이트에 따라 업데이트된 소프트웨어 버전을 자동으로 빌드하고 테스트하는 프로세스입니다. 일반적으로 통합 패턴에는 개발자가 끌어오기 요청을 통해 별도의 분기에 변경 내용을 제출하는 작업이 포함됩니다. 변경 내용은 집단적 검토를 거쳐 성공적인 결과를 가정하여 기본 분기에 병합됩니다. 제안된 변경 내용이나 결과 변경 내용이 부정적인 영향을 미치지 않도록 하기 위해 개별 커밋 또는 병합 이벤트를 사용하여 코드 빌드 및 테스트를 트리거할 수 있습니다. 연속 통합을 통해 빌드 및 테스트가 완전히 자동화됩니다.
이 자동화는 개발자가 만들고 리포지토리 호스팅 플랫폼에서 구현한 빌드 및 테스트 정의를 기반으로 합니다. 예를 들어, GitHub는 이러한 목적으로 GitHub Actions 워크플로를 제공하는 반면, Azure DevOps는 Azure Pipelines를 사용합니다.
연속 통합의 이점은 무엇인가요?
연속 통합과 관련된 주요 이점은 일반적인 Shift-Left 전략을 기반으로 하며, 이 전략은(이 모듈의 뒷부분에서 알아보겠지만) 다른 많은 DevOps 사례에도 영향을 미칩니다. 기본 전제는 코드 변경을 통해 발생한 문제를 검색하는 데 시간이 오래 걸릴수록 문제를 해결하는 데 더 많은 비용과 활동이 소요된다는 것입니다. 연속 통합을 통해 코드 빌드 및 테스트가 최대한 빨리 이루어집니다. 또한 자동화된 방식으로 구현되어 속도와 안정성이 향상됩니다. 연속 통합은 일관성을 개선시켜 빌드 및 테스트가 재현 가능한 방식으로 수행되도록 보장합니다. 이러한 일관성은 프로그래밍 표준을 적용하는 데 도움이 되어 코드를 더욱 깔끔하고 유지 관리하기 쉽게 만듭니다. 마지막으로, 연속 통합은 일반적으로 지속적인 업데이트의 일부로 전체 애플리케이션 수명 주기 관리를 간소화합니다. 빌드, 테스트 및 배포 작업 유지와 관련된 오버헤드를 최소화하면 개발 및 운영 팀의 전반적인 생산성이 향상되고 소프트웨어 제품의 출시 시간이 단축됩니다.