CI (Continuous Integration)
지속적인 통합을 의미한다. 개발자를 위한 자동화 프로세스를 통하여 새로운 코드 개발과 코드의 변경사항이 정기적으로 빌드 및 테스트되고 공유리파지토리에 병합되어 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드를 작업할 경우에도 서로 충돌 없이 원하는 개발작업을 수행하고 문제를 해결할 수 있다.
CI의 기대효과
리파지토리관리, 빌드 자동화, 셀프 테스트, 반영을통해 프로세스를 구현하여 최신의 상태에 문제가 없음을 확인한다.
이로 인하여 개발자는 Dev 환경에 수동으로 작업을 해야하는 부분들이 없어지게 되기 때문에 개발 생산성이 향상되고 버그를 더 빠르게 발견하고 해결할 수 있다. 버그를 빠르게 확인할 수 있다는 내용은 내가 개발한 Feature에서는 문제가 없었지만 프로젝트 전반적인 셀프 테스트를 통하여 Dependency에 문제가 발견되어 테스트가 실패할 경우 배포전에 이를 확인하고 버그를 수정하여 안정적인 서비스를 제공할 수 있다는 내용이다. 그러므로 이러한 과정을 통해 변경된 정보를 빠르게 제공이 가능하다.
CD (Continuous Delivery or Deployment)
지속적전달( Delivery )과 지속적인 배포 ( Deployment )의 의미를 혼용하여 사용한다. 개발자가 지속적인 서비스 전달과 배포를 통해 최소한의 노력으로 새로운 코드에 대한 배포를 자동화할 수 있고, 이로써 신속한 애플리케이션 제공의 속도 저하를 유발하는 수동 프로세스로 인한 운영팀의 프로세스에 대한 과부하 문제를 해결할 수 있도록 도움을 주는 역할을 한다.
CD의 기대효과
CI를 통해서 문제가없는 유효한 소스코드를 통해 배포에 대한 준비를 한다. 최종 결과물을 통해 자동 테스트와 배포프로세스를 자동화하여 변경사항을 빠르게 적용가능하다. CD의 개념에는 CI도 포함될 수 있다. 하지만 CD에서는 통합테스트와 배포에 관점을 두어 역할을 수행한다. 이로써 배포위험을 최소화하며 진행 절차등을 모니터링하여 안정성을 확보할 수 있으며 자동화된 배포를 위해 생산성을 향상할 수 있다. 이러한 과정이 자동화된다면 개발부터 테스트 배포 및 운영의 업무 프로세스도 개선되는 효과를 가질 수 있다.
'Dev > Infra & Module' 카테고리의 다른 글
Terraform AWS EKS (0) | 2022.09.15 |
---|---|
Terraform Plugin 설치 환경구성 (0) | 2022.09.15 |
Terraform 이란 (0) | 2022.09.15 |
Jmeter 사용법 (Mac) (0) | 2022.08.25 |
Redis Client 접속 및 간단 명령어 (0) | 2022.08.22 |
댓글