DevOps

CI/CD란? 개념/주요 단계/장점

우잉~ 2024. 12. 2. 19:57

CI/CD(Continuous Integration and Continuous Delivery/Deployment)

약어를 풀어보자면 CI/CD는 지속적인 통합, 지속적인 배포(또는 전달)를 뜻한다. 총 2가지의 의미가 담겨 있다.

 

- CI(지속적 통합): 빌드 및 테스트를 수행한 뒤, 개발자가 코드 변경 내용을 중앙 리포지토리에 정기적으로 병합하는 것

- CD(지속적 배포 또는 전달): 사용자들이 경험하게 될 실제 운영 환경(프로덕션)을 배포하는 과정을 자동화한 것

 

 

CI/CD의 주요 단계

 

CI/CD 단계 (출처: https://aws.amazon.com/ko/devops/continuous-delivery/)

 

 

1. Coutinuous Integration(CI)

  • 코드 변경 사항을 병합하여 중앙 저장소에 통합
  • 자동화된 빌드 및 테스트 실행 → 유닛 테스트 및 통합 테스트를 진행!

2. Continuous Delivery

  • CI를 통해 검증된 코드를 배포 + 통합 테스트, 로드 테스트 등의 여러 테스트를 수행하여 실제 운형 환경과 유사한 환경에서 코드의 품질을 검증하는 과정 포함!
  • 배포는 개발자가 직접 진행(수동 작업)

3. Continuous Deployment

  • 모든 테스트가 통과되면 운영 환경에 자동 배포
  • 100% 자동화된 배포 → 배포 파이프라인을 통해 이루어짐

CI/CD 단계 요약

  1. CI는 코드 변경 사항의 빠른 병합과 검증을 수행
  2. CD(Delivery)는 운영 환경 및 배포 준비 자동화
  3. CD(Deployment)는 운영 환경 및 배포 자동화

*** Delivery와 Deployment는 배포를 수동으로 하느냐, 자동으로 하느냐로 구분할 수 있다!

 

 

CI/CD의 장점

결국 CI/CD는 개발과 배포를 효율적으로 할 수 있도록 돕는다.

개발 - 신속한 코드 변경 내용 병합

배포 - 프로덕션 릴리스 자동화

 

자동화를 통해 반복 작업이 감소하고, 항상 배포 가능한 상태(오류 검증)를 유지할 수 있음!

지속적으로 테스트/검증 과정을 거치기 때문에 버그 발생 가능성을 최소화할 수 있다.

 

 

CI/CD 도구

 

CI/CD 작동 원리

 

 

 

결론

  • CI/CD는 소프트웨어 개발에서 효율적인 배포를 위해 필수적이다.
  • 자동화와 지속적인 테스트(검증)을 통해 빠르고 안정적으로 배포할 수 있도록 한다.
  • 팀 협업 효율성을 높이고, 배포의 자동화를 통해 사용자의 피드백을 빠르게 반영할 수 있다.