본문 바로가기
엘리스 AI 트랙 4기/Frontend CS Study

[Frontend] CI와 CD

by _sweep 2022. 1. 30.

취준생이라면 알면 좋을 프론트엔드 관련 지식들 자료를 보고 정리한 내용입니다.

 

CI

지속적인 통합(CI, Continuous Integration)은 빌드와 테스트를 자동화해서 공유 저장소에 병합시키는 프로세스를 의미한다.

 

출처 : https://blog.gds-gov.tech/that-ci-cd-thing-principles-implementation-tools-aa8e77f9a350

 

git과 같은 버전관리 시스템을 사용할 때 여러 명의 개발자가 하나의 공유 저장소를 사용하는 경우가 많다.

이때 새로운 코드의 변경 사항이 저장소에 통합되지 않을 경우 서로 충돌할 수 있다.

따라서 자동화된 빌드 및 테스트 수행 후 코드 변경 사항을 공유 저장소에 정기적으로 병합하는 것이 중요하다.

 

지속적인 통합에서는 각 커밋에 앞서, 개발자가 통합 전에 추가 검증 단계로 코드에 로컬 유닛 테스트를 수행할 수 있다.

지속적인 통합 서비스는 새로운 코드 변화에 대한 유닛 테스트를 자동으로 구축하고 실행하여 즉시 모든 오류를 표면화한다.

 

출처 : https://aws.amazon.com/ko/devops/continuous-integration/

 

지속적인 통합의 핵심 목표는 버그를 신속하게 찾아 해결하고, 소프트웨어 품질을 개선하고, 새로운 소프트웨어 업데이트를 검증 및 릴리스하는 데 걸리는 시간을 단축하는 것이다.

 

지속적인 통합의 이점은 다음과 같다.

  • 개발자의 생산성이 향상된다.
    • 개발자가 수동 작업에 대한 부담을 덜 수 있고 고객에게 제공되는 오류, 버그 수를 줄일 수 있다.
  • 테스트를 빈번하게 수행함으로써 버그를 더 빠르게 발견하고 해결할 수 있다.
  • 업데이트를 더 빠르게 제공할 수 있다.

 

 

 CD

CD는 두 가지의 뜻을 가지고 있는데 바로 지속적인 전달(Continuous Delivery)지속적인 배포(Continuous Deployment)이다.

 

✔️ 지속적인 전달

지속적인 전달(Continuous Delivery)은 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 공유 저장소에 자동으로 업로드되는 것을 뜻하며, 따로 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있다.

즉, 프로덕션 배포를 위한 상태로 만들고 배포는 수동으로 한다.

지속적인 전달은 최소한의 노력으로 새로운 코드를 배포하는 것을 목표로 하며 개발팀과 비즈니스팀 간의 가시성과 커뮤니케이션 부족 문제를 해결해준다.

 

✔️ 지속적인 배포

지속적인 배포(Continuous Deployment)는 변경 사항이 공유 저장소에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 배포하는 것을 의미한다.

즉, 지속적인 전달과는 달리 프로덕션 배포까지 자동으로 이루어진다.

지속적인 배포는 파이프라인의 다음 단계를 자동화함으로써 지속적인 전달이 가진 장점을 활용하고 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 운영팀의 프로세스 과부하 문제를 해결한다.

 

출처 : https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment

 

CI/CD의 대표적인 서비스로 Jenkins, Travis CI, Circle CI 등이 있다.

 

 

🔍 참조

CI https://aws.amazon.com/ko/devops/continuous-integration/

That CI/CD Thingy: Principles, Implementation & Tools https://blog.gds-gov.tech/that-ci-cd-thing-principles-implementation-tools-aa8e77f9a350

What is CI/CD? https://www.redhat.com/en/topics/devops/what-is-ci-cd

CI vs CD vs CD https://www.atlassian.com/continuous-delivery/principles/continuous-integration-vs-delivery-vs-deployment

 

 

 

 

 

댓글