Dev.BeryL 2022. 2. 13. 17:43
728x90

CI / CD

  • CI : Continuous Integration (지속적인 통합)
    • 통합 : 개발자들의 자기들의 개발이 중앙 레포지토리에 반영하고 테스트를 하고 내 것이 다른 개발자들에게 영향이 가지 않게한다. 개발자들의 코드충돌을 막아준다.
  • CD : Continuous Deployment (지속적인 배포)
    • 코드를 수정하고 지속적으로 프로그램을 배포함으로서 사용자들이 불편함을 느끼지 않도록 개발자들의 짐을 많이 덜어준다.

CI/CD의 장점

  • 자동화 시스템(Automation) - 테스트
    • 반복적인 일의 경우 자동화를 통해 개발자들의 짐을 덜어준다.
  • Incremental Change
    • 예시로, 쇼핑몰 사이트에서 고객이 옷을 찾다가 가격에 대한 정보가 없다라는 버그를 발견시 개발자가 가격이 보여지는 기능을 구현하기 위해서 A → B → C → D 라는 순서를 진행할 경우 이처럼 점차점차 프로그램을 수정시키는 경우를 Incremental Change라고 한다.

CI/CD - 중앙 Repository

  • Github
    • Local & Master branch
    • Local : 개발자가 로컬에서 작업한 내용
    • Master : 운영에 반영되었거나 반영될 내용

CI/CD - 배포준비 및 배포

  • 배포 준비
    • 코드를 병합하는 패키지를 생성하거나 Production에 적용될 수 있도록 준비 하는 작업
  • 배포

 

소프트웨어 개발과정

3명의 개발자가 있고 메인 Repository가 있다고 할 때, 개발자들은 서로 다른 기능을 구현한다고 할때

 

파란색 부분은 첫 번째 개발자가 구현한 기능을 뜻하고 할 때, 첫번째 개발자가 구현한 기능은 다른 개발자에게 영향이 없다.

 

배포준비가 완료가 되었다면 사용자에게 새로운 기능을 제공하기 위해서 Production에 배포를 한다.

반응형