Posts [CICD] CI/CD란?
Post
Cancel

[CICD] CI/CD란?

CI/CD란?

CI

  • Continuous Integration(지속적 통합)으로 ‘코드에 대한 통합’을 ‘지속적’으로 진행함으로써 품질을 유지하자는 개념
    • 예를 들면, 여러 명의 개발자가 하나의 프로젝트를 진행할 때 아래와 같은 과정을 거쳐야 한다.
      • 1)모든 개발자는 퇴근하기 전에 자신의 코드를 중앙 코드와 통합한다.
      • 2)통합된 코드에서 본인의 코드가 제대로 동작하는지 테스트한다.
      • 3)통합된 코드가 제대로 빌드되는지 테스트한다.
      • 4)결과를 정리하고. 버그가 있다면 다음날 업무 목록에 적어둔다.
    • 위와 같은 과정은 코드가 제대로 동작하는지, 제대로 빌드되는지 테스트를 해야하는 번거로움이 존재한다. 따라서 git코드를 올려놓으면 알아서 테스트와 빌드를 해주게 된다면 아래와 같이 자동화시켜줄 수 있다.
      • 1)모든 개발자는 퇴근하기 전에 자신의 코드를 중앙 코드와 통합한다.
      • 2)다음날 출근시 메일로 발송된 결과 리포트를 확인하고 버그가 있으면 수정한다.
    • 따라서 사실상 CI는 빌드 및 테스트 자동화로 볼 수 있다.
    • 1

CD

  • Continuous Delivery 또는 Continuous Deployment(지속적 배포)로 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하자는 개념
    • CI를 통한 지속적인 빌드와 테스트를 진행하고 통과한 코드를 테스트서버와 운영서버에 바로 배포해 반영하는 것이다.
    • 즉, CD는 배포 자동화로 볼 수 있다.

CI/CD 도구

  • 1)Jenkins
  • 2)Travice CI
  • 3)Bamboo
  • 4)Circle CI
  • 5)TeamCity

출처

This post is licensed under CC BY 4.0 by the author.