CI/CD란?

0

CI (Continuous Integration)

다들 겪어 봤겠지만 오랬동안 사용하지 않은 branch에서 develop branch를 당겨서 작업을 하려하면 충돌이 많이 일어난다. 이렇듯 동일한 소스파일 위에서 여러 개발자가 오랜기간 개발을 하다가 병합을 하려하면 충돌이 발생하게 된다. 이런 상황에서는 머지 충돌하기위에 많은 시간이 소요된다.

따라서 새로운 기능이나 버그를 수정할때는 이것을 어떻게 작은 단위로 나누어서 repository에 반영할지 고민해야한다.
또한 주기적으로 머지된 변경사항이 자동으로 빌드가 되어 코드변경후에도 제대로 빌드가 되는지 확인하고 기존의 시스템에 버그를 초래하지 않았는지 자동으로 테스트해야한다.

주기적으로 머지를 한다면 수정할때도 조금더 고립된 작은 단위의 문제를 확인가능하다. 이것이 CI(Continuous Integration) 즉, 지속적인 통합이다.

CD (Continuous Deployment)

이제 우리는 CI, 즉 지속적 통합을 거친 코드에 대해서 신뢰할 수 있고 바로 배포할 수 있게 된다.
이렇게 CI를 통해서 주기적으로 머지된 변경사항들 자동으로 빌드가 되고 테스트가 되었다면 배포할 준비가 되었을때 자동적으로 배포하는 것을 CD(Continuous Deployment) 지속적 배포 라고 한다.

CI/CD tools

CI/CD의 방법으로는 Travis와 Jenkins, githubaction.. 등등이 있다. Jenkins는 우리 서버에게는 무겁고 메모리 사용량이 너무 크고, Travis 비공개 저장소를 사용하는 경우 유료 플랜을 구독해야 했기 때문에, github action을 통한 CI/CD를 하기로 결정하였다.

profile
https://www.youtube.com/watch?v=__9qLP846JE

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

글이 잘 정리되어 있네요. 감사합니다.

답글 달기