Home CI/CD 란 무엇인가?
Post
Cancel

CI/CD 란 무엇인가?

개요


이번 챌린지 프로젝트에서 CI / CD 를 구축하려한다.
자동화배포를 통하여 개발에만 집중할 수 있도록 도와주기 때문에…
그렇다면 CI / CD 가 정확하게 무엇이며, 장점은 무엇인지 알아보고 적용해보려 한다.
나는 GitActions 와 Docker를 사용하여 구축할 예정이다. -> 구축완료 링크

CI / CD


지속적인 통합(Continuous integration, CI)지속적 제공(Continuous delivery, CD), 줄여서 CI / CD는 애플리케이션 개발팀이 더 자주, 안정적으로 코드 변경을 제공하기 위해 사용하는 문화와 운영 원칙, 일련의 작업 방식으로 구성된다.

CI (Continuous Integration)

CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다.

CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 Repository에 통합되므로, 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.

CD (Continuous Delivery / Deployment)

CI/CD의 "CD"지속적인 서비스 제공(Continuous Delivery) 및/또는 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용된다.

두 가지 의미 모두 파이프라인의 추가 단계에 대한 자동화를 뜻하지만 때로는 얼마나 많은 자동화가 이루어지고 있는지를 설명하기 위해 별도로 사용되기도 한다.

지속적인 서비스제공(Continuous Delivery)

  • CI 프로세스를 통해 개발중에 지속적으로 빌드와 유닛 및 통합 테스트를 진행하고, 이를 통과한 코드에 대하여 테스트서버와 운영서버에 자동으로 Release
  • 운영팀이 보다 빠르고 손쉽게 애플리케이션을 Production으로 배포 가능
  • Production 환경으로 배포할 준비가 되어 있는 코드베이스를 확보하는 것이 목표

지속적인 배포(Continuous Deployment)

  • Production 준비가 완료된 빌드를 Source Repository에 자동으로 Release하는 지속적 제공의 확장된 형태
  • 애플리케이션을 하나의 Production으로 Release하는 작업을 자동화
  • Continuous Delivery(지속적인 서비스제공)로 통칭하여 언급하기도 함
  • 개발자가 애플리케이션에 변경 사항을 작성한 후 몇 분 이내에 애플리케이션을 자동으로 실행할 수 있는 것을 의미
  • 테스트와 빌드가 ‘지속적’으로 이루어지기 때문에, 배포 또한 자연스럽게 ‘지속적’으로 이루어지게 됨

CI / CD 장점

  • 변경 사항을 자주 푸시하고자 하는 개발자와 안정적인 애플리케이션을 원하는 운영 담당자 사이의 마찰을 해결
  • 코드 변경을 사용자에게 푸시하기 전에 검증하기 위해 개발 팀은 지속적인 테스트를 실행해야 함
  • 새로운 기능을 위한 더 넓은 범위의 개발 작업을 수행하면서 신속한 수정 요청까지 받는 팀에 작업의 유연성을 부여
  • 기능, 성능 및 데이터 중심 테스트를 더 많이 실행해서 더 높은 품질의 애플리케이션을 제공하고 프로덕션 결함을 줄일수 있음

gh-pages

📚 Reference


This post is licensed under CC BY 4.0 by the author.

WIL - 2023.01.09 ~ 01.15

nGrinder를 활용한 성능테스트 (1) - Controller 및 Agent 설치