Backend/꾸준히 TIL
[IT 개념] CI와 CD 의미
개발하는 후딘
2023. 3. 13. 20:02
728x90
반응형
CI (Continuous Integration) : 지속적인 통합
- 빌드/ 테스트 자동화 과정
- 애플리케이션에 대한 새로운 코드 변경 사항이 생길때마다 빌드와 테스트 과정을 거쳐서 공유 래포지토리에 통합
- 여러명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 때 충돌할 수 있는 문제를 해결
- 커밋할 때마다 빌드와 일련의 자동 테스트가 이뤄져 동작을 확인하고, 변경으로 인해 문제가 생기는 부분이 없도록 보장.
여러명이 동일한 래포지토리에서 작업할 때
코드 수정과 변경으로 인한 문제를 발생하는 것을 예방하기위해서
커밋하게되면 공유 래포지토리에 변경사항을 반영하기 전에
빌드와 테스트를 실행하도록 하는 사전검토 과정이라고 이해했다.
도입목적은 여러명이 동일한 래포지토리를 작업할 때 코드충돌을 막기위해서 인거 같다.
CD (Continuous Delivery & Continuous Deployment) : 배포 자동화
- 지속적인 서비스 제공
- 지속적인 배포
'지속적인 서비스 제공', '지속적인 배포' 모두 파이프 라인의 추가 단계에 대한 자동화를 의미한다.
- 코드 변경이 파이프라인의 이전단계를 모두 성공적으로 통과하면, 변경사항이 프로덕션에 자동으로 배포.
- 프로덕션 준비가 완료된 빌드를 코드 래포지토리에 자동으로 배포하는 것.
CI/CD 종류
- Jenkins
- CircleCI
- TravisCI
- Github Actions
CI/CD 가 있을 때와 없을 때의 차이점
- 코드 통합후 에러 확인
- [CI/CD 없을때] 코드를 git에 푸시해서 통합(integration) 후 에러가 발생하게되면 어디서 발생하는 지 모른다.
- [CI/CD 있을때] 코드를 git에 푸시를 이벤트 트리거로 CI서버에서 알아서 빌드/테스트/린터를 실행하여 결과를 나타낸다.
- 결과에서 에러가 발생하면 에러로그를 나타내며, 공유레포에 반영되지 않는다.
- 결과에서 정상임을 나타내면 공유래포지토리에 반영하여 자동적으로 배포(Deploy)를 수행한다.
[참고]
[CI/CD] CI/CD란? - 지속적 통합(Continuous Integration)/지속적 배포(Continuous Deployment) 기본개념
매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요됩니다. 하지만 git에 코드를 올리는 것만으로도 누군가가 빌드와 테스트, 배포까지 해준다면,
seosh817.tistory.com
CI/CD의 개념과 차이점
CI/CD의 개념 CI/CD는 애플리케이션 개발 단계를 자동화해 보다 짧은 주기로 통합 및 배포하는 것을 의미합니다. 인터그레이션 헬(Integration Hell)을 해결하기 위한 솔루션으로 지속적인 통합, 지속적
walkingplow.tistory.com
728x90
반응형