CI/CD
개발 단계를 자동화하여 코드 통합시 생기는 문제 Integration Hell을 해결하기 위한 솔루션이다.
CI
CI는 Continuous Intergration 즉, 지속적인 통합이라는 뜻이다.
코드의 수정이나 새로운 기능추가가 repository에 주기적으로 빌드, 테스트 후에 merge 되는 것을 의미한다.
코드 변경사항을 주기적으로 merge해야한다.
한명의 개발자가 아닌 여러명의 개발자가 같은 프로젝트를 진행할 경우 주기적으로 merge 하지 않으면 나중에서야 코드를 merge하려할때 발생한 코드간의 충돌을 해결하기가 힘들다.
나도 한번 겪어봤던터라 git에 코드를 주기적으로 merge하는 습관을 들였다. 😅
이러한 충돌을 막기위해서 기능 개발시 작은단위로 쪼개어 역할을 분담해 개발하는 것이 좋다.
merge의 자동화
merge, build, test 이 단계가 자동화가 되어야한다. (test의 경우 단위 테스트나 통합 테스트 등을 뜻한다.)
이 단계들이 자동화되면 문제, 버그를 빠르게 찾아내고 해결할 수 있다.
CD
CD는 Continuous Deployment 지속적인 배포 혹은 Continuous Delivery 지속적인 제공을 뜻한다.
CI 이후 배포할 준비가 되었을 경우 수동으로 배포 작업을 실행하는 것을 Continuous Deployment, 준비가 되자마자 자동으로 Deploy가 되는 것을 Continuous Delivery 라고 한다. 둘의 차이는 최종 단계의 자동화 여부이다.
회사의 개발방식에 따라서 CD의 뜻이 달라질 수 있다.
이 글은 밑의 영상과 문서를 참고로 작성되었습니다.
https://www.redhat.com/ko/topics/devops/what-is-ci-cd
https://www.youtube.com/watch?v=0Emq5FypiMM
'프론트엔드 > TDD' 카테고리의 다른 글
[Jest] 비동기 코드 테스트하기 Testing Asynchronous Code (0) | 2022.10.07 |
---|---|
TDD란? 테스트 주도 개발에 대해 (0) | 2022.10.06 |