오늘 뭐했냐/개발에 대한 주저리

23.07.16 CICD란

스스로에게 2023. 7. 16. 23:12

CICD란 CI와 CD를 묶어서 부르는 말이다. 그럼 CI는 뭐고 CD는 뭐냐하면 순서대로 지속적 통합과 지속적 배포이다. 회사에서 여러 사람들이 어떤 서비스에 대해서 기능을 개발하고 코드를 추가하고 다시 배포를 하는데 있어서 배포 중이었던 것을 중단하고 코드를 다시 추가하고 확인하고 다시 배포하면 서비스를 사용하는 사용자도 배포하는 회사도 손해가 크다. 기능을 한 번에 다 만들어서 추가하는 건 힘들고 조금씩 조금씩 만들어서 테스트하면 그 테스트 시간도 오래 걸린다. 그리고 배포에 있어서도 매번 승인을 받아야하며 배포하다가 다시 문제가 생길 경우에 시간이 지연되면 그만큼 또 손해를 더 보게 된다. 이런 문제들을 해결해주기 위해 CI/CD를 사용한다 CI로 통합 과정에서 생기는 문제를 미리 알려주기도 하고 문제가 있다면 배포를 하지 않게 막고 회사에 알려준다. 그리고 정해진 조건에 따라 다시 CD가 이루어 지는데 이는 시간이 될 수도 있고 기능을 업로드한 그 때가 될 수도 있다. 예를 들면 회사에서 사용하는 서비스의 코드가 있는 저장소에 새로운 기능을 만들어 추가 한다면 그 때 확인을 거쳐 다시 기능이 추가된 배포가 이루어질 수도 있고, 자정마다 다시 배포가 이루어지게 할 수도 있다. 이렇게 자동적으로 배포가 된다면 기존에 배포된 서비스를 중단하지 않아도 되며 배포하는 과정을 담당할 인력소모를 줄일 수도 있다. 

 

CICD를 이용하면 내가 배포 중인 서비스를 멈추지 않고 새로운 기능을 추가할 수 있다. 만약 문제가 발생했다면 기존 서비스는 유지되고 내가 기능을 추가하면서 발생한 문제에 대해서만 다시 수정을 하면 된다. 이것은 사용자도 회사도 아주 큰 장점이다.