CI와 CD
CI (Continuous Integration, 지속적 통합)
CI는 빌드와 테스트를 자동화해서 공유 저장소에 병합시키는 프로세스를 말합니다. git과 같은 버전관리 시스템을 사용할 때 여러 명의 개발자가 하나의 공유 저장소를 사용하는 경우가 많습니다. 이렇게 되면 새로운 코드의 변경 사항이 저장소에 통합되지 않을 경우 서로 충돌할 수 있습니다.
따라서 빌드/테스트 자동화부터 코드의 일관성(Consistency)을 제공하기 때문에 지속적으로 통합한다는 용어를 사용하는 것입니다.
CD (Continuous Delivery/Deploy, 지속적 전달/배포)
CD는 CI의 빌드/테스트를 통해서 정상적으로 수행됨을 확인하면 이는 배포를 수동으로 하느냐 자동으로 하느냐에 따라 2가지로 나뉩니다.
- 지속적 전달 : 프로덕션 배포를 위한 상태가 되고 배포 자체는 수동으로 실행한다.
- 개발팀과 비즈니스팀간의 커뮤니케이션 부족 문제를 해결한다.
- 지속적 배포 : 프로덕션까지 자동으로 배포한다.
- 어플리케이션의 제공 속도를 증가시킨다.
CI/CD의 대표적인 서비스로 Jenkins, Travis CI, Circle CI 등이 있습니다.