CI / CD

@t189216·2024년 2월 23일
0

💻 CS

목록 보기
14/36

참고 영상 - 드림코딩

CI / CD ?


CI 는 지속적 통합(Continuous Integration)의 약자이며, CD 는 지속적 제공·배포(Continuous Delivery/Deployment)의 약자입니다.

개발 단계부터 배포 단계까지 모든 단계를 자동화를 통해서 조금 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것을 말합니다.

CI/CD에서 사용되는 툴은 JenKins, Buildkite, GitHub Actions, GitLab CI/CD, Bitbucket Pipelines, CircleCI 등이 있습니다.

CI


버그 수정이나 새로 만드는 기능들이 메인 리포지터리에 주기적으로 빌드되고 테스트가 되어서 병합되는 것을 말합니다.

  • 코드를 작은 단위로 나누어 개발하고, 코드 변경사항을 주기적으로 빈번하게 병합해야 한다.
  • 주기적으로 병합된 이 코드의 변경사항이 자동으로 빌드되어 코드 변경사항 이후에도 빌드가 성공적으로 되는지 확인해야 합니다.
  • 새로 추가된 변경사항 뿐만 아니라 기존의 시스템에 다른 버그를 초래하지는 않았는지 자동으로 테스트까지 이루어져야 합니다.

CI 원칙을 따르면 주기적으로 병합하기에 병합 충돌을 피할 수 있어 개발 생산성이 향상됩니다. 또한 병합되는 모든 코드들은 자동으로 빌드되고 테스트 되기 때문에 코드의 결함이나 문제점이 빠르게 발견될 수 있습니다. 주기적으로 코드를 병합하기 위해서 코드의 변경사항이 잦기 때문에 문제를 수정할 때도 조금 더 작은 단위의 문제를 확인할 수 있습니다.

예시 프로세스

CD


지속적 제공, 지속적 배포는 배포를 어떻게 자동화할 것인가를 고민하는 단계입니다.

지속적 제공(Continuous Delivery)

CI를 통해서 주기적으로 병합된 코드의 변경사항들이 자동으로 빌드되고 테스트되면, 배포 단계에서 Release 를 준비합니다. 이 Release를 개발자나 직접 검증하거나, 검증 팀이 검증하고 확인이 되면 수동적으로 사용자에게 배포하는 단계를 지속적 제공 이라고 합니다.

지속적 배포(Continuous Deployment)

Release 가 준비되자마자 자동으로 사용자에게 배포할 수 있도록 모든 과정을 자동화하는 것을 지속적 배포 라고 합니다.

profile
Today I Learned

0개의 댓글