CI/CD 개념이 잘 잡히지 않습니다

안녕하세요.

업무를 하다보면 CI/CD라는걸 정말 많이 듣게 되는데요.

제가 개발자가 아니다보니 간단한 코드정도는 다루지만

CI/CD에 대한 개념이 잘 잡히지 않네요.

간단한 예를들어 CI/CD에 대해 설명해주실 수 있으실까요?

감사합니다.

    4개의 답변이 있어요!

    • 소스코드가 이동하는 과정은 "로컬 머신 => 저장소 => 서버" 의 순서로 이동합니다.

      이때 "로컬머신에서 저장소"로 소스코드가 이동하는 과정이 CI입니다.

      저장소에 소스코드가 A, B, C가 있다고 가정하고, 질문자님이 B`를 올려서 반영이되면
      A, B`, C 가 됩니다. 즉 지속적 통합에 성공한 것입니다.

      이어서 현재 서버에는 기존에 배포한 A, B, C가 있습니다.
      방금전 질문자님이 저장소에 올린 A, B`, C가 서버까지 도달하면 이것이
      지속적 전달/제공 CD과정을 수행한 것입니다.

    • CI(Continuous Integration)/CD(Continuous Deployment)는 소스코드 커밋시 자동으로 빌드해주고 상황에 따라서는 서버에 배포 또한 자동을 된다고 보면 좋을 것 같습니다.

      https://www.redhat.com/ko/topics/devops/what-is-ci-cd

    • 안녕하세요. 아하(a-ha) 프로그래밍 지식 답변자 입니다.

      프로그램 수명주기의 CI/CD는 지속적 통합/지속적 배포 입니다.

      CI : 프로그래머가 수정하거나 개발한 소스코드를 Github 과 같은 코드 관리 시스템으로 자동으로 Push하고 merge 하는 것 으로 이해하시면 됩니다.

      CD : 프로그래머가 수정하거나 개발한 소스코드의 문제점이 없는지 자동으로 테스트 하고 운영환경에 배포하는 것 으로 이애하시면 됩니다.

      답변이 도움이 됐으면 합니다. 좋은 하루 되세요!

    • 안녕하세요

      개발이 완료되고 나서 소스 merge / 통합 테스트를 한번에 진행하다보면 문제를 해결하는데 큰 어려움을 겪게됩니다.

      위와 같은 단점을 해결하기 위해 개발 중에 지속적인 통합, 지속적인 배포, 지속적인 서비스 제공을 함으로써 해결하는 방법입니다.

      지속적인 방법을 제공하려면 자동화가 거의 필수입니다.

      개발자가 개발한 소스를 주기적으로 commit & push를 합니다.

      * CI

      - 코드 변경이 일어나면 자동으로 소스 병합

      - Build & Packaging

      - 테스트후 버그 발견 시 개발자에게 버그 리포트 공유

      * CD

      - CI 이후에 이루어지는 작업으로 테스트 통과 시 개발/운영 등 서버에 소스 배포

      - 개발팀, 운영팀, 고객 등이 개발현황을 즉시 확인 가능, 문제점이 있을 때 즉시 피드백 가능