Embedded System Study/SW

CI/CD란 무엇인가?

kkingjae 2026. 2. 19. 12:51

출처 : https://www.youtube.com/watch?v=0Emq5FypiMM

CI/CD

어플리케이션 개발 단계부터 배포까지 자동화를 통해 더 효율적으로 사용자에게 빈번히 배포

CI : Continuous Integration 지속적인 통합

CD : Continuous Delivery/Deployment 지속적인 제공, 지속적인 배포

CI 

버그 수정이나 새로운 기능들이 메인 Repository에 주기적으로 Build되고 Test되어 Merge되는 것을 의미

(1) 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.

- 어떻게 기능들은 작은 단위로 나뉘어, 최대한 작은 단위로 나누어 개발하고 통합

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

- 머지된 변경된 코드 변경 사항이 빌드가 성공적으로 되었는 지 확인

- 새로 추가된 변경사항 및 기존 시스템에 버그를 초래하지 않았는 지 자동으로 테스트 되야함

 

개발팀 Set Up

Main Repository가 있고, 개발자들은 하루에도 몇 번씩 주기적으로 코드의 변경 사항을 Main Repository에 Merge

이렇게 Merge가 되었으면, 자동으로 팀에서 만든 CI Script를 통해서 CI Server에서 이 Repository가 Build가 된다.

Build가 잘 되었다면 팀에서 작성한 Unit Test, Integration을 Test Script를 통해 수행

만약 빌드가 실패하거나, Test 단계에서 실패가 된다면 해당 코드를 개발한 개발자에게 자동으로 알림

 

개발 생산성 향상, 문제점을 빠르게 발견, 버그 수정 용이 = 코드 퀄리티 향상 

 

CD

최종 단계가 자동화가 되었는 지 아닌지에 따라서 Delivery, Deployment 달라진다.

 

Continous Delivery

CI 산출물을 Prepare Release 단계에서 개발팀/검증팀이 검증 후 수동으로 사용자(고객사)에게 배포

 

Continous Deployment

CI 산출물을 Prepare Release 단계에서 자동으로 사용자(고객사)에게 배포 = 모든 과정 자동화

 

대부분의 회사에서 CI/CD Pipe

(1) 개발자가 작은 단위로 기능을 나누어서 주기적으로 Main Repository에 Merge를 하면

(2) 자동으로 Build를 하고

(3) Test 과정을 거쳐서

(4) Release 준비 단계에 들어가고

(5) 여기에서 수동으로 / 자동으로 최종 배포

 

CI/CD를 사용하기 위한 여러가지 툴

Jenkins, Buildkite, GitHub Actions ,,, 

 

 

'Embedded System Study > SW' 카테고리의 다른 글

E2E Protocol 개념  (0) 2025.01.30
UDS on CAN  (0) 2025.01.19
펌웨어 기본 개념 공부  (0) 2024.07.06
[HMG Developer Conference] 모뎀기반 고성능 제어기 속 OTA 개발  (1) 2024.06.15