CI란?
- Continuous Integration(지속적 통합)이라는 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 하는 것으로 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음을 의미한다.
CI 간단한 프로세스
- 개발자가 개발한 코드를 기존 코드와 Merge 한다.
- 병합된 코드가 올바르게 동작하고 빌드되는지 검증한다.
- 해당 코드에 문제가 있다면 수정하고 1번 작업으로 돌아간다. 그리고 문제가 없다면 배포를 진행
🔻 CI의 장점
- 코드의 검증에 들어가는 시간이 줄어든다. 만일 지속적으로 통합을 하지 않고 일정기간에 한 번씩 통합을 하게 된다면 분명히 통합된 코드들에서 충돌 및 문제가 생길 것이다. 해당 문제의 원인을 찾는 과정에서 꽤 많은 리소스가 발생할 것이다.
- 개발 편의성이 증가한다.
- 항상 테스트 코드를 통과한 코드만이 레포지터리에 올라가기 때문에, 좋은 코드 퀄리티를 유지할 수 있다.
CD 란?
- Continuous Delivery 또는 Continuous Deployment(지속적 배포)로 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하자는 개념 CI를 통한 지속적인 빌드와 테스트를 진행하고 통과한 코드를 테스트 서버와 운영서버에 바로 배포해 반영하는 것이다. 따라서 CD는 배포 자동화로 볼 수 있다.
🔻 간단한 CD의 적용 프로세스
- CI를 적용하여 코드를 검증
- 배포환경과 비슷한 곳에서 검증을 진행
- 검증된 소프트웨어를 실제 프로덕션 환경으로 배포
🔻 CD의 장점
- 개발자는 배포보다 개발에 더욱 신경 쓸 수 있도록 도와준다.
- 개발자가 원클릭으로 수작업 없이 빌드, 테스트, 배포까지의 자동화를 할 수 있다.
🔻 CI/CD 도구
- Jenkins
- Travice CI
- Bamboo
- Circle CI
- TeamCity
CI = 빌드 및 테스트 자동화
CD = 배포 자동화
📝 Reference Site
https://velog.io/@jch9537/%ED%95%9C-%EC%A4%84-%EC%9A%A9%EC%96%B4-CICD
https://jud00.tistory.com/entry/CICD%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C
반응형
'📖 공부' 카테고리의 다른 글
MVP(Minimum Viable Product)개발이란? (0) | 2023.03.30 |
---|---|
모바일 앱 종류 (0) | 2023.02.21 |
애자일 방법론(Agile) 이해하기 (0) | 2022.09.07 |
ISO 25010 품질특성 (0) | 2022.08.18 |
API 이해하기 (0) | 2022.08.05 |