DevOps

CI/CD란 무엇인가? 이론

도미노& 2024. 2. 10. 18:43

최근 구직 공고를 볼 때면 아래와 같은 문구를 정말 많이 보게 된다.

 

CI / CD를 통해 테스트, 빌드, 배포를 해 본 경험 우대
빌드/테스트/배포 자동화를 통한 CI / CD 경험

 

정확히 어떤 스킬을 원하는지 알기 위해 찾아보기로 했다.

 

CI/CD를 위키백과에서 정의한 내용은 이렇다.

소프트웨어 공학에서 CI/CD는 지속적 통합(영어: continuous integration)과 지속적 배포(영어: continuous delivery, CD)가 결합한 사례를 의미한다. CI/CD는 소프트웨어의 개발, 테스트와 배포를 모두 통합함으로써 소프트웨어 버그를 쉽게 찾아낼 수 있으며, 더 빠른 배포 주기를 가질 수 있게 만들어 준다.

 

설명이 너무 간결해서 CI와 CD를 나누어 더 자세히 찾아보기로 했다.

 

 

CI (지속적 통합, Continuous Integration)

자동화된 빌드 및 테스트가 수행된 후, 개발자가 코드 변경 사항을 ② 중앙 리포지토리에 정기적으로 병합하는 데브옵스 소프트웨어 개발 방식이다.

 

내가 코드를 수정하면 기존 소스와 내가 수정한 소스를 자동으로 빌드 및 테스트를 수행하고, 오류가 없다면 git과 같은 저장소에 병합한다.

구직 공고에서 CI / CD와 함께 자주 보이는 "빌드/테스트 자동화"라는 키워드도 같은 맥락이라고 볼 수 있을 것 같다.

 

 

CD (지속적 전달 혹은 지속적 배포, Continuous Delivery OR Continuous Deployment)

프로덕션에 릴리스하기 위한 코드 변경이 자동으로 준비되는 소프트웨어 개발 방식이다.

 

D를 전달(Delivery) 혹은 배포(Deployment) 두 가지로 표현하는데, 이 차이는 프로덕션에 업데이트할 때 수동 승인을 하는지, 자동으로 업데이트하는지에 대한 차이이다. (Deployment가 자동으로 배포)

 

 

 

CI / CD의 절차 (출처 : https://aws.amazon.com)

 

 

CI / CD의 대표적인 방법으로는 Travis와 Jenkins가 있다.

기회가 되면 실습하면서 포스팅을 추가로 작성하도록 하겠다.

 

 

 

참고 자료

https://aws.amazon.com/ko/devops/continuous-integration/
https://aws.amazon.com/ko/devops/continuous-delivery/
https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/
https://seosh817.tistory.com/104