지속적 통합은 개발자들이 코드 변경 사항을 주기적으로 공유 레포지토리에 통합(merge)하는 것을 말함
이 과정에서 자동화된 빌드와 테스트가 수행되어 문제점을 조기에 발견하고 해결할 수 있다.
iOS 개발에서의 CI 예
개발자가 깃허브에 코드를 푸시(Push)하면, Xcode Server, Jenkins, Travis CI 툴이 자동으로 앱을 빌드하고 단위 테스트를 실행함
만약 빌드나 테스트에서 오류가 발생하면, 개발자는 즉시 피드백을 받고 수정할 수 있다.
지속적 배포는 CI의 다음 단계로, 테스트를 거친 코드를 자동으로 프로덕션 환경에 배포하는 것을 의미한다.
지속적 배포는 두가지 형태로 나뉜다.
지속적 배포 (Continuous Deployment)
테스트를 통과한 코드는 자동으로 실제 사용 환경(프로덕션)에 배포된다.
예: Github에서 코드를 푸시하면, 모든 테스트를 통과한 뒤 자동으로 앱 스토어에 배포된다.
Jenkins, CircleCI, Travis CI, GitHub Actions 등을 사용하여 테스트를 주기적으로 실행하고 모니터링할 수 있음
테스트가 실패할 경우 이메일, 슬랙, 또는 다른 알림 시스템을 통해 즉시 알림을 받을 수 있음