본문 바로가기

잡인터뷰

지속적인 통합, 지속적인 배포 (Continuous Integration/Continuous Delivery - CI/CD)

반응형

예전에 일하던 회사도 비슷했지만, 요즘엔 애플리케이션 개발 단계를 자동화하여 더욱 짮은 주기로 고객에게 제공하기를 원한다.

여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌하는 문제가 자주 발생하게 된다.

이문제를 해결하기 위해 지속적인 통합, 지속적인 배포 구현을 목표로 한다.

그렇다면 지속적인 통합, 지속적인 배포(CI/CD)가 무엇을 의미하는가.

 

지속적인 통합, 지속적인 배포(CI/CD)

소프트웨어 개발 과정에서 개발자들이 자주 변경하는 코드를 자동으로 빌드, 테스트, 배포하는 프로세스이다.

지속적인 통합(CI)은 개발자들이 변경한 코드를 주기적으로 빌드하고,

테스트하여 즉각적인 피드백을 받을 수 있도록 합니다.

이를 통해 코드 오류나 충돌을 빠르게 발견하고 수정하여 코드 품질을 향상할 수 있다.

지속적 배포(CD)은 코드 변경 사항이 테스트 및 검증을 거쳐 더욱 안정적인 상태에서 자동으로 배포되도록 하는 것이다.

이를 통해 소프트웨어 배포 시간과 오류 발생 확률을 줄일 수 있으며,

빠른 배포 및 개선이 가능하다.

 

CI/CD는 자동화된 테스트와 배포를 통해 개발과 운영 사이의 간극을 줄이고,

품질을 향상시키며,

소프트웨어 개발 및 배포의 효율성을 높이는데 중요한 역할을 한다.

이를 위해 CI/CD 파이프라인을 구축하여

개발 및 배포 프로세스를 자동화하고 지속적인 개선을 이루어나가는 것이 필요하다.

 

Continuous Integration/Continuous Delivery - CI/CD

CI/CD는 지속적 통합 및 지속적 제공의 구축 사례만을 지칭할 때도 있지만,

지속적 통합, 지속적 제공, 지속적 배포라는 3가지 구축 사례 모두를 의미하는 것일 수도 있다.

 

좀 더 자세히 설명하면 "지속적인 서비스 제공"은 때로 지속적인 배포의 과정까지 포함하는 방식으로 사용되기도 한다.

 

결과적으로 CI/CD는 파이프라인으로 표현되는 실제 프로세스를 의미하고,

애플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것을 의미한다.

이 용어는 사례별로 CI/CD 파이프라인에 구현된 자동화 수준 정도에 따라 그 의미가 달라진다.

CI의 장점은 

  • 코드의 검증에 들어가는 시간이 줄어들고
  • 개발의 편의성이 증가하며
  • 항상 테스트 코드를 통과한 코드만이 repository에 올라가기 때문에, 코드 퀄리티를 좋게 유지할 수 있다.

CD의 장점

  • 개발자는 배포보다는 개발에 더 포커스 할수 있도록 도와주고
  • 개발자가 수작업이 없이 빌드, 테스트 배포까지의 자동화를 단순하게 할 수 있다.

reference: https://www.redhat.com/ko/topics/devops/what-is-ci-cd

 

CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이

CI/CD는 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포까지 애플리케이션 라이프사이클 전체에서 지속적인 자동화와 지속적인 모니터링을 제공하는 것을 뜻합니다.

www.redhat.com

 

반응형