CI / CD

heumheum2·2020년 5월 20일
0

회사를 지원할때 자주 보였던 단어가 신경쓰여 찾아봤습니다.

CI (Continuous Integration)

지속적인 통합이라는 의미로 Build, Test를 실시하는 프로세스를 말합니다.

우리는 개발을 할 때 git이라는 소프트웨어를 이용해 버전관리를 합니다. 혼자 개발할 때는 원격 저장소에 커밋만 하면 됐는데, 협업은 그렇지 않습니다.

개발자들이 로컬에서 작업하다 개발이 완료되어 동시에 원격 저장소에 코드를 올리게 되면 문제가 발생하게 됩니다. 그렇기 때문에 한 번에 원격 저장소에 코드를 올려 보수를 하는 것보다 지속적으로 원격 저장소에 올리게 되면 시간적, 비용적 측면에서 유리할 것 입니다.

그래서 우리는 오늘 개발 한 내용을 커밋 후 원격 저장소의 코드와 통합하고, 통합 된 코드에서 제대로 동작하는지 테스트합니다. 그리고 테스트한 코드가 제대로 빌드되는지 확인합니다. 결과를 정리하고, 이슈가 있으면 다음 날에 처리하도록 메모를 합니다. 이러한 프로세스를 CI라고 합니다.

이렇게 위의 내용처럼 한다면 퇴근하기 전에 일이 늘어날 수 있다고 합니다..😅 그리고 반복작업이 되겠죠. 반복되는 코드나 작업은 줄여야된다고 배웠습니다.

퇴근하기 전에 개발자는 원격 저장소에 코드를 올리기만 하고 테스트나 빌드를 알아서 해주면 편할거 같네요. 그리고 다음 날 결과를 다음 날에 확인해 버그가 있으면 수정해주면 더 효율적일 것 같습니다. 그렇기에 CI를 검색했을 때 상시, 자동화라는 키워드가 있는 것 같네요.

CD (Continuous Delivery or Continuous Deploy)

지속적인 배포라는 의미로 테스트와 빌드를 CI를 통해 검증이 되었으니 배포 되어야합니다. 언제든지 신뢰 가능한 수준으로 출시될 수 있도록 보증하기 위한 것입니다. CI의 연장선이라고 생각이 드네요. 그렇기에 배포에 대한 비용, 시간, 위험을 줄일 수 있는 방법이 되겠습니다.


profile
커피가 본체인 개발자 ☕️

0개의 댓글