본문 바로가기
CI와CD

CI/CD 란 무엇일까?

by 최지철 2024. 3. 18.
728x90
반응형

CI/CD

- 지속적인 통합 / 지속적인 배포

 

지속적 통합 과 배포

  • 지속적 통합(CI)은 코드 변경 사항을 공유 소스 코드 리포지토리에 자동으로 자주 통합하는 사례를 나타낸다
  • 지속적 배포 (CD)는 코드 변경 사항의 통합, 테스트, 제공을 나타내는 프로세스로, 두 가지 부분으로 구성되며, 지속적 제공에는 자동 프로덕션 배포 기능이 없는 반면, 지속적 배포는 업데이트를 프로덕션 환경에 자동으로 릴리스를 진행한다.

CI/CD를 그러면 사람들이 왜 쓰는걸까?

  • 조직이 버그 및 코드 오류를 예방하는 동시에 지속적인 소프트웨어 개발 및 업데이트 주기를 유지하는 데 도움이 된다.
    • How? 어떻게 도움이 되는 걸까
      1. 릴리스 속도를 단축하여 더 신속하게 제공
      2. 지속적인 피드백
      3. 검토시간 단축
      4. 더 빠른 버그 수정
    • 위의 장점들제외하고도 여러 장점들이 있다. 핵심을 꼽자면 애플리케이션이 커짐에 따라 CI/CD의 기능을 활용하면 복잡성을 줄이고 효율성을 높이며 워크플로우를 간소화할 수 있다. 기존에 새 코드를 커밋에서 프로덕션으로 가져오는 데 필요했던 수동 개입을 CI/CD가 자동화하므로 다운타임이 최소화되고 코드 릴리스 주기가 단축됨과 동시에, 코드의 업데이트와 변경 사항을 더 빠르게 통합할 수 있으므로 사용자 피드백을 더 자주 효과적으로 통합할 수 있고, 그 결과 사용자에게 긍정적인 결과를 제공할 수 있으며 전체적인 고객 만족도가 향상될 수 있다.

 

지속적 통합 CI

  • CI에서 빌드와 단위 및 통합 테스트를 자동화한 다음 검증된 코드를 리포지토리로 릴리스하는 것을 자동화합니다. 따라서 효과적인 지속적 제공 프로세스를 마련하려면 CI가 개발 파이프라인에 이미 구축되어 있어야 한다.

    CI의 경우, 코드 변경 사항의 병합부터 프로덕션 레디 빌드의 제공에 이르기까지 모든 단계에 테스트 자동화와 코드 릴리스 자동화가 수반된다. 이 프로세스가 종료되면 운영 팀은 애플리케이션을 프로덕션으로 신속하게 배포할 수 있다.

    일반적으로CI이란 개발자의 애플리케이션 변경 사항이 자동으로 버그 테스트를 거치고 리포지토리(예: GitHub, Azure Dev Ops)로 업로드된다는 것을 의미하며, 이후 리포지토리에서 운영 팀이 변경 사항을 라이브 프로덕션 환경으로 배포할 수 있다. 그 결과 개발 팀과 비즈니스 팀 간 가시성 및 의사 소통 부족 문제가 해결될 수 있다. 이를 위한 지속적 제공의 목표는 언제나 프로덕션 환경으로 배포할 준비가 되어 있는 코드베이스를 갖추고 새로운 코드를 배포하는 데 필요한 노력을 최소화하는 것이다.

지속적 배포 CD

  •  CI/CD 파이프라인의 최종 단계는 지속적 배포이다. 지속적 배포는 지속적 제공의 확장으로, 개발자의 변경 사항을 리포지토리에서 프로덕션으로 릴리스하는 것을 자동화하여 고객이 사용할 수 있도록 하는 것을 말한다.

    CD는 애플리케이션 제공 속도를 저하시키는 수동 프로세스로 인한 운영 팀의 업무 과다 문제를 해결합니다. 지속적 배포는 파이프라인의 다음 단계를 자동화함으로써 지속적 제공의 장점을 활용한다.

    실제 사례에서 지속적 배포란 개발자가 애플리케이션에 변경 사항을 작성한 후 몇 분 이내에 클라우드 애플리케이션을 자동으로 실행할 수 있는 것을 의미(자동화된 테스트를 통과한 것으로 간주). 이를 통해 사용자 피드백을 지속적으로 수신하고 통합하는 일이 훨씬 수월해 진다. 이러한 연결된 모든 CI/CD 사례는 애플리케이션 배포의 리스크를 줄여주므로 애플리케이션 변경 사항을 한꺼번에 릴리스하지 않고 작은 단위로 세분화하여 더욱 손쉽게 릴리스할 수 있다.

728x90
반응형

'CI와CD' 카테고리의 다른 글

[iOS] CI/CD 도입 Fastlane + AzureDevOps [2]  (1) 2024.03.20
[iOS] CI/CD 도입 Fastlane + AzureDevOps [1]  (0) 2024.03.19