Server Programming/DevOps
AWS - CI/CD
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에 배포를 한다.
반응형