티스토리 뷰

Backend/꾸준히 TIL

[IT 개념] CI와 CD 의미

개발하는 후딘 2023. 3. 13. 20:02
728x90
반응형

CI (Continuous Integration) : 지속적인 통합

  • 빌드/ 테스트 자동화 과정
  • 애플리케이션에 대한 새로운 코드 변경 사항이 생길때마다 빌드와 테스트 과정을 거쳐서 공유 래포지토리에 통합
  • 여러명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 때 충돌할 수 있는 문제를 해결
  • 커밋할 때마다 빌드와 일련의 자동 테스트가 이뤄져 동작을 확인하고, 변경으로 인해 문제가 생기는 부분이 없도록 보장.

 

여러명이 동일한 래포지토리에서 작업할 때

코드 수정과 변경으로 인한 문제를 발생하는 것을 예방하기위해서

커밋하게되면 공유 래포지토리에 변경사항을 반영하기 전에

빌드와 테스트를 실행하도록 하는 사전검토 과정이라고 이해했다.

도입목적은 여러명이 동일한 래포지토리를 작업할 때 코드충돌을 막기위해서 인거 같다. 


CD (Continuous Delivery & Continuous Deployment) : 배포 자동화

  • 지속적인 서비스 제공
  • 지속적인 배포

'지속적인 서비스 제공', '지속적인 배포' 모두 파이프 라인의 추가 단계에 대한 자동화를 의미한다.

(출처) RedHat 공식다큐먼트

  • 코드 변경이 파이프라인의 이전단계를 모두 성공적으로 통과하면, 변경사항이 프로덕션에 자동으로 배포.
  • 프로덕션 준비가 완료된 빌드를 코드 래포지토리에 자동으로 배포하는 것.

 


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
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함