어플리케이션 개발 단계를 자동화하여 어플리캐이션을 보다 짧은 주기로 고객에게 제공하는 방법, 새로운 코드 통합으로 개발 및 운영팀에게 발생하는 문제(intergration hell
)을 해결하기 위한 솔루션이다.
이미지 출처 : RedHat
'지속적인 통합' 이라는 뜻이며 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것을 의미
따라서 CI의 핵심 목표는
1. 버그를 신속하게 찾아 해결
2. 소프트웨어의 품질 개선
3. 새로운 업데이트 검증 및 릴리즈 시간 단축
혹은 'Continuous Depolyment'
지속적인 서비스 제공, 지속적인 배포
Continuous Delivery는 공유 레포지토리로 자동으로 Release,
Continuous Deployment는 Production 레벨까지 자동으로 deploy
사진 출처 : 드림코딩 엘리
지금 프로젝트에서 배포 후 잦은 오류 수정으로 수동 배포에 시간을 너무 쏟는 것 같아 자동 배포를 도입했다. CI/CD 툴로는 jenkins, Travis 등 많은 툴이 있지만 나는 그나마 진입장벽이 낮고 다른 툴보다 시도하기 쉬워 보이는 Github Actions를 사용하여 자동배포 환경을 구축했다. 시간이 나면 어떻게 사용했는지 글을 남겨보도록 하겠다..!
참고
https://youtu.be/0Emq5FypiMM
https://artist-developer.tistory.com/24
https://www.redhat.com/ko/topics/devops/what-is-ci-cd