CI/CD

김탁형·2024년 12월 3일
  1. 정의
  • 애플리케이션 개발 단계부터 배포때까지의 모든 단계를 자동화를 해서 좀 더 효율적이고 빠르게 사용자에게 번번히 배포할 수 있는 것
  • 지속적으로 코드를 합치고 배포하는 행위
  1. CI(Continuous Integration) : 지속적인 통합
    애플리케이션의 버그 수정이나 새로운 코드 변경이 주기적으로 빌드 및 테스트되면서 공유되는 레파지토리에 통합 (merge) 되는것을 의마하며 2가지 방법이 있다.
    (1) 코드 변경 사항을 주기적으로 번번하게 merge
    개발자 들이 2~3일에 한번씩 merge할 경우에 새로운 기능의 코드를 작성하는것보다 충돌되는 코드를 수정하는 시간이 더 오래 걸릴 수도 있다. 그렇기에 가능한 작은 단위로 나누어서 주기적으로 번번히 개발하고 계속해서 통합하여 나가는 것이 중요하다.
    ex)
    개발자 들이 github를 통하여 시스템에 통합한다.
    ->
    통합한 코드가 제대로 동작하는지 빌드 및 테스트를 진행한다.
    ->
    버그 발생하거나 다음에 해야할 목록에 정리해두고 다음날이나 버그를 해결한다.

(2) 통합 단계의 자동화
build 하고 test하는 과정은 굳이 사람이 하지 않더라도 되는 작업이다.
ex)
위와 동일하게 개발자들은 github에 작업한 코드를 통합한다.
->
빌드 및 테스트는 자동으로 진행되므로, 버그가 생기면 다음날에 버그를 해결한다.

(3)CI의 장점

  • 코드의 검증에 들어가는 시간이 줄어든다.
  • 개발 편의성이 증가한다.
  • 항상 테스트 코드를 통과한 코드만이 레포지토리에 올라가기 떄문에 좋은 코드 퀄리티를 유지할 수 있다.
  1. CD (Continuous Delivery)
    (1) 정의
    CD 는 Cotinuous Delivery, 지속적인 제공이라는 의미와 Continuous DEployment,지속적ㅇ니 배포라는 의미가 있다.
profile
김탁형/성남/31

0개의 댓글