최근 많이 사용하는 아키텍처 모델은 MSA(Micro Service Architecture)입니다. 이 모델은 대부분 Agile 방법론을 이용하여 개발을 진행하기 때문에 잦은 기능 추가와 변경이 특징입니다. 이에 따라 테스트도 마찬가지로 빈번해졌습니다. 이런 상황에서 매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 진행한다면 많은 시간을 쏟지 않고는 불가능합니다. 그렇기 때문에 이러한 것들을 자동화 해주는 CI/CD가 중요해졌습니다.
CI/CD 기본 구조
출처 : https://www.redhat.com/ko/topics/devops/what-is-ci-cd
CI는 말 그대로 지속적인 통합을 의미합니다. 개발자가 개발을 완료하여 빌드 코드를 Commit/Push하게 되면 해당 작업에 대하여 자동으로 빌드와 일련의 테스트가 되어 문제가 발생하게 되면 확인 할 수 있습니다.
결과적으로 버그를 신속하게 찾아 해결 할 수 있게 되고 이에 따른 시간을 단축하는 이점이 있습니다.
CI를 거치고 난 후 안전이 확보된 코드는 지속적인 배포를 통해 실 사용자들에게 자동적으로 배포가 완료가 됩니다. 즉 CD를 채택하게 되면 최대한 빠르게 사용자에게 새로운 기능을 제공할 수 있습니다.