소프트웨어 개발

CI/CD Flow - 자동화 배포

인어공쭈 2023. 12. 26. 14:44


1. CI/CD란?

CI/CD는 소프트웨어 개발에서의 품질 향상과 속도 향상을 위한 개발 방법론.

* Continuous Integration (CI)
개발자들이 작성한 코드를 자동으로 통합하고, 빌드 및 테스트를 수행, 주기적인 빌드와 테스트를 통해 통합 오류를 미리 감지


* Continuous Deployment (CD)
빌드 및 테스트를 통과한 코드를 자동으로 프로덕션 환경에 배포, 지속적으로 안정적인 배포를 실현하며 개발 주기를 단축

 


2. CI/CD의 이점

 

1) 가속된 개발 주기
CI/CD를 도입하면 코드 변경이 자주 이루어질수록 더 빠르게 빌드, 테스트, 배포되어 새로운 기능이나 버그 수정이 빠르게 사용자에게 제공.

2)자동화된 품질 보증
자동화된 빌드와 테스트는 품질을 보장하며, 통합 오류를 미리 찾아 수정할 수 있다. 이로써 소프트웨어의 안정성이 향상됌.

3)신속한 버그 수정
CI/CD를 통해 버그를 신속하게 찾고 수정하여 프로덕션 환경에 안전하게 배포할 수 있다.

 


3. CI/CD Flow 단계


1단계: 코드 작성
개발자는 코드를 작성하고 버전 관리 시스템(Git 등)에 푸시.

2단계: 자동화된 빌드
CI 서버는 코드 변경을 감지하고 자동으로 빌드를 수행, 소스 코드를 컴파일하고 실행 가능한 애플리케이션으로 묶는다.

3단계: 자동화된 테스트
빌드된 애플리케이션에 대해 자동화된 테스트를 실행하여 코드의 품질을 확인, 테스트를 통과하지 못한 코드는 다음 단계로 진행되지 않는다.

4단계: 배포
테스트를 통과한 코드는 CD 서버에 전달되어 프로덕션 환경에 배포됩니다. 이 단계에서는 롤백 기능 등 안전성을 고려하여 배포가 이루어집니다.

5단계: 모니터링
배포된 애플리케이션은 실시간으로 모니터링되며 성능 이슈나 잠재적인 문제를 신속하게 감지.


4. 도구 및 서비스

- Jenkins: 오픈 소스 CI/CD 도구
- GitLab CI/CD: GitLab 내에서 통합된 CI/CD 솔루션
- Travis CI: 클라우드 기반 CI/CD 서비스
- CircleCI: 클라우드 기반 CI/CD 도구

반응형