Dazzling 개발 노트

[CI/CD] 개념 정리 - CI/CD란? 본문

DevOps/CICD

[CI/CD] 개념 정리 - CI/CD란?

dj._.dazzling 2023. 11. 29. 22:53

CI/CD?

CI/CD는 Continuous Integration/ Continuous Delivery(Deployment)의 약자이다.

소프트웨어의 변경 사항이 지속적으로 통합되고 동시에 배포함으로써

개발 주기를 단축하고 서비스의 품질을 향상시킨다.

 

CI/CD는 크게 3단계로 나누어 진다.

- 지속적인 통합 ( Continuous Integration )

- 지속적인 전달 ( Continuous Delivery )

- 지속적인 배포 ( Continuous  Deployment )

 

Continuous Integration

지속적으로 코드의 통합을 진행하면서 코드의 품질을 유지한다.

이 과정에서 이루어지는 주된 작업은 빌드, 테스트, 병합이다.

빌드, 테스트, 병합을 자동화된 프로세스로 최대한 자주 통합한다.

시스템의 품질 향상을 도모하고 오류를 최소화할 수 있다.

 

Continuous Delivery

개발된 내용이 자동화 된 프로세스를 통해 빌드, 테스트, 병합 과정을 거친 후 원격 레포지토리에 자동으로 업로드된다.

효과적으로 지속적인 전달을 수행하기 위해 지속적인 통합에서 지속적인 전달까지 파이프라인이 연결되어 있어야 한다.

파이프라인은 CI 도구를 사용해 연결한다.

 

Continuous Deployment 

지속적인 제공의 확장된 형태로 애플리케이션을 프로덕션 환경으로 배포하는 작업을 자동화한 것이다.

레포지토리의 코드 변경이 감지되면 변경된 내용은 실제 사용자가 사용하는 프로덕션 환경까지 자동으로 릴리즈된다.

 

CI/CD의 장점

- 빌드와 테스트가 자동화되어 개발자는 개발에만 집중할 수 있다.

- 변경된 내용이 자동으로 함께 빌드되어 이를 테스트할 수 있다.

- 자동화된 프로세스를 통해 코드들이 자주 통합되면서 시스템 전체에서 발생하는 문제를 빠르게 찾을 수 있다.

 

 

CI 도구

- Jenkins- Hudson- Bamboo

 

CI 도구

- GitHub

- GitLab

 

 

 

참고

https://junhyunny.github.io/information/what-is-ci-cd/