CI/CD

YangJiWon·2020년 6월 13일
1

개발 방법

목록 보기
2/6

CI/CD

CI

  • CI(Continuous Integration)는 지속적 통합으로, 모든 개발이 끝난 이후에 코드 품질을 관리하는 고전적 방식의 단점을 해소하기 위해 나타난 개념입니다.
  • 말 그대로 개발을 하면서 '코드에 대한 통합'을 '지속적'으로 진행함으로써 품질을 유지하는 것입니다.
  • 쉽게 말하면, 매일 퇴근하기 전에 git에 코드를 올리고 문제가 없는지 테스트하라는 것입니다.
  • CI 자동화가 잘 이루어졌을때의 예시
  1. 모든 개발자는 퇴근하기 전에 자신의 코드를 중앙 코드와 통합한다.
  2. 다음날 출근시 메일로 발송된 결과 리포트를 확인하고 버그가 있으면 수정한다.

CD

  • CD(Continuous Deploy 또는 Delivery)로써, 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하자는 개념입니다.
  • CI의 연장선으로 생각하면 됩니다. 배포 이전에 테스트와 빌드는 필수적이기 때문에, 사실상 CD가 되려면 항상 CI가 선행되어야 한다고 봐도 무방합니다.
  • 즉, CI 프로세스를 통해 개발 중에 지속적으로 빌드와 테스트를 진행하고, 이를 통과한 코드에 대하여 테스트 서버와 운영 서버에 곧바로 그 내용을 배포해 반영하는 것입니다.
  • 이상적인 환경이라면 테스트와 빌드가 '지속적'으로 이루어지기 때문에, 배포 또한 자연스럽게 '지속적'으로 이루어지게 됩니다.

정리

  • CI = 빌드 및 테스트 자동화
  • CD = 배포 자동화
profile
데이터데이터데이터!!

0개의 댓글