새소식

기타

CI / CD

  • -

CI란

  • 여러 개발자가 작성하거나 수정한 소스를 지속적으로 통합하고 테스트하는 것

정의

  • 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다.
  • 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 원격저장소에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.

- 지속적인 통합이란

  • 지속적 통합을 통해 개발자들은 코드 변경 사항을 공유 프랜치로 다시 병합하는 작업을 더욱 수월하게, 자주 수행할 수 있다.
  • 개발자가 애플리케이션에 적용한 변경 사항이 병합되면 이러한 변경 사항이 애플리케이션을 손상시키지 않도록 자동으로 애플리케이션을 구축한다.
  • 각기 다른 레벨의 자동화 테스트 실행을 통해 변경 사항이 애플리케이션에 정상적으로 적용되었는지 확인한다.
  • 클래스와 기능에서부터 전체 애플리케이션을 구성하는 서로 다른 모듈에 이르기까지 모든 것에 대한 테스트를 수행한다.
  • 자동화된 테스트에서 기존 코드와 신규 코드 간의 충돌이 발견되면 CI를 통해 더욱 빠르게, 자주 수정할 수 있다.

CD란

  • 개발, 통합, 배포, 릴리즈, 테스트를 자동화하여 지속적으로 배포하는 것

정의

  • 지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미한다.
  • 위 두 용어는 상호 교환적으로 사용된다.
  • 두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻한다.
    • 파이프라인이란 : 한 데이터 처리 단계의 출력이 다음 단계의 입력으로 이어지는 형태로 연결된 구조
      • 이렇게 연결된 데이터 처리 단계는 한 여러 단계가 서로 동시에, 병렬적으로 수행될 수 있어 효율성이 향상 된다
  • 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 한다.

- 지속적인 서비스 제공이란

  • 지속적인 제공은 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 한다.
  • 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 원격저장소에 자동으로 업로드 되는 것을 뜻한다.
  • 운영팀은 원격저장소에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있다.
    • 이는 개발팀과 비즈니스 팀 간의 가시성과 커뮤니케이션 부족 문제를 해결해준다.

- 지속적인 배포란

  • CD / CI 파이프라인의 마지막 단계는 지속적 배포이다.
  • 프로덕션 준비가 완료된 빌드를 코드 원격저장소에 자동으로 릴리스하는 지속적 제공의 확장된 형태이다.
  • 애플리케이션을 프로덕션으로 릴리스하는 작업을 자동화한다.
  • 프로덕션 이전의 파이프라인 단계에는 수동 작업 과정이 없으므로, 지속적 배포가 정상적으로 이루어지려면 테스트 자동화가 잘 설계되어 있어야 한다.
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.