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 도구
'소프트웨어 개발' 카테고리의 다른 글
개발책 - 혼자 공부하는 컴퓨터구조+운영체제 (1-3장) (0) | 2024.01.21 |
---|---|
운영체제 - 종류 (Windows,OS,Linux) (0) | 2024.01.07 |
운영체제 - 기본 (2) | 2024.01.07 |
개발 방법론 - DevOps vs 애자일 vs 워터폴: 비교와 장단점 (2) | 2023.12.26 |
Cypress - 테스트 자동화, CI/CD 파이프라인에 통합 (2) | 2023.12.20 |