728x90
CI/CD
개념
CI (Continuous Integration) 지속적인 통합과 CD (Continuous Delivery | Continuous Deployment) 지속적인 배포 를 합친 용어입니다.
CI 는 코드의 변경 사항이 정기적으로 빌드 및 테스트되어 작업중인 레포지토리 혹은 환경에 통합되는 것을 뜻하고 CD 는 Continuous Delivery 의 경우 공유 레포지토리 혹은 환경으로 자동으로 Release 하는 것, Continuous Deployment는 자동으로 배포까지 되는 것을 의미합니다.
CI 가 중요한 이유는 자동화와 테스트에 있습니다. 새로운 기능을 추가하거나 업데이트시에 매번 커밋과 머지를 해야하는 상황이 오는데, 이를 하루에 수십번씩 할 때도 있다는 점이 문제입니다. 모든 인원이 수십번씩 커밋과 머지를 반복하다보면 자동으로 컨플릭트 에러는 기본으로 나고 시간은 배로 들게 됩니다. 자동화된 빌드와 테스트는 소스의 컨플릭트를 방어하고 소소하게는 커밋하는 시간도 절약해줍니다.
CD 가 중요한 이유는 빠르고 지속적인 배포에 있습니다. 역시나 수정사항이 생길때 마다 커밋 머지를 거쳐 배포의 작업까지 수십번씩 할 수 없기 때문입니다.
일반적으로 CI/CD 툴에는 Jenkins, Travis, Bamboo 등이 있습니다.
728x90
'Computer Science > Common' 카테고리의 다른 글
동기 Vs 비동기 (1) | 2023.11.01 |
---|---|
아스키 코드 Vs 유니코드 Vs UTF-8 (0) | 2023.10.31 |
Call By Value Vs Call By Reference (0) | 2023.10.30 |
메모리 구조 (0) | 2023.10.29 |
RESTful api (0) | 2023.10.28 |