Computer Science/Common

CI/CD

JunOnJuly 2023. 11. 5. 22:48
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 등이 있습니다.

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