[ Electron ] 소프트웨어 배포 CI / CD의 개념

ma.caron_g·2022년 12월 24일
0

Electron

목록 보기
2/2
post-thumbnail

<참고 링크>

[ 소프트웨어 배포 ]

요즘 같이 빠르게 진화하고 변화하는 시대에 어떻게 하면 시장과 고객의 요구에 빠르게 반응해서 제품을 출시, 업데이트 할 것인가 큰 과제입니다.

위 문제를 해결하기위해서 많은 기업들이 CI / CD를 개발 프로세스로 사용하고 있습니다.

[ CI / CD ]

어플리케이션 개발 단계 ~ 배포까지의 모든 단계들을 자동화를 통해서 조금 더 빠르게 사용자에게 빈번하게 배포할 수 있는 방법을 말합니다.

[ CI ]

CI란, Continuous Integration 으로 지속적인 통합의 약자를 뜻하며,

버그 수정이나 새로 만드는 기능들이 Main Repository에 빌드되고 테스트 되어 merge되는 방법을 의미합니다.

[ CI의 포인트 ]

[ 1.코드 변경사항을 주기적으로 빈번하게 머지해야합니다. ]

예를 들어, 동일한 소스파일 위에서 개발자가 서로 다른 코드를 작성하고 있다가 나중에 merge를 하려고 하면, 어떻게 통합해서 적용해 나갈 것인지 고민하게 됨.

이렇게 되면 새로운 코드를 작성하는 시간보다, merge를 해결하기위해 사용되는 시간이 더 많아지기도 합니다.

그렇기 때문에, 버그를 수정하거나 새로운 기능을 구현할 때는 더욱 기능을 작은 단위로 나눠서 Main Repository에 반영하거나, 또는 작은 단위로 나눠서 내가 사용자에게 배포할 수 있을지 최대한 작은 단위로 나눠서 개발하고 통합해나가는 것이 중요합니다.

[ 2. 통합을 위한 단계 ( 빌드, 테스트, 머지)의 자동화 ]

주기적으로 머지된 코드의 변경사항이 빌드가 성공적으로 되는지 코드 변경사항 이후에도 빌드가 되는지 확인 후, 코드의 변경사항뿐 아니라 기존의 빌드에 영향을 미치진 않았는지 테스트 해봐야합니다.

테스트 실패 시, 해당 개발자에게 오류 알림이 갑니다.

[ 장점 ]

  1. 주기적으로 merge를 할 수 있어서 생산성을 높일 수 있음,
    merge되는 코드는 자동으로 빌드되고 테스트되기 때문에 코드의 결함이나 문제점이 빠르게 발견될 수 있는 장점이 있습니다.

  2. 이렇게 발견되는 결함은 빠르게 수정 가능.

  3. 주기적으로 머지를 하기위해서 코드의 변경사항이 적기 때문에 빠르게 문제 수정 시 고립된 작은 단위의 문제 확인이 가능.

  4. 좀 더 나은 코드의 퀄리티를 가질 수 있습니다.
    CI를 잘 운영하기 위해서는 자신의 코드의 한해서 UnitTest를 꼭 포함해야하기 때문입니다.




[ CD ]

CD란, Continuous Delivery 로 지속적인 제공의 약자입니다.
이 Delivery 대신 Deployment라는 배포라는 뜻을 사용하기도 합니다.

CI를 통해 주기적으로 머지된 테스트가 빌드되고 테스트 되었다면, 배포하는 단계에서 배포(Prepare-Release)할 단계를 거치고 준비된 릴리즈가 괜찮다면 직접 개발자나 검증팀이 검증 후, 최종적으로 사용자에게 배포해도 되겠다싶을 때, 수동적으로 배포하는 방법.

릴리즈가 되면 사용자에게 자동으로 배포될 수 있게도 사용할 수 있는데 이를 Deployment라고 합니다.

이런 모든 과정을 어떻게 자동화해두냐, 어떻게 스크립트를 쓰느냐, 자동화와 테스팅에 대해서 어느정도 자신감이 있느냐에 따라 다름.

profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글