CI/CD 무엇인가?

hyund·2024년 8월 7일

CI/CD

CI (Continuous Integration) - 지속적인 통합

CI는 개발자가 변경한 코드를 Git 저장소에 푸시하거나 병합(push/merge)할 때마다 자동으로 빌드하고 테스트해주는 일련의 자동화된 과정. 이를 통해 개발자가 작성한 코드가 자주 테스트하여 코드 품질을 지속적으로 유지하고 버그를 초기에 발견하여 빠르게 해결할 수 있음. 즉, 빌드/테스트 자동화

  1. 코드 통합
  2. CI서버가 자동화으로 빌드 수행
  3. 자동화된 테스트 실행

CD (Continuous Deployment/Delivery) - 지속적인 배포/전달

자동화된 빌드와 테스트(CI)가 성공하면 코드를 자동으로 배포하거나, 수동 확인 후 배포하는 과정.

  • 지속적인 전달(Continuous Delivery)
    1. 지속적인 통합(CI) 이후에 배포 준비 상태로 유지
    2. 개발자가 최종 검토후 운영 환경에 수동 배포

  • 지속적인 배포(Continuous Deployment)
    1. 지속적인 통합(CI) 이후에 자동으로 운영 환경에 배포


CI/CD 이점

  • 코드 변경 사항에 대한 빠른 테스트와 피드백 가능
  • 자동화된 테스트로 코드 품질과 안정성 유지
  • 빌드 및 배포 자동화로 시간 절약
  • 작은 단위로 자주 배포하여 배포 리스크 최소화
  • 일관된 개발 환경과 코드 품질 유지

CI/CD 도구

  • Jenkins - 오픈 소스 CI 도구로, 플러그인을 통해 다양한 기능을 제공
  • Travis CI - 클라우드 기반 CI 서비스로, GitHub와 통합이 용이
  • CircleCI - 또 다른 클라우드 기반 CI/CD 도구로, 빠른 빌드 시간을 제공
  • GitLab CI/CD - GitLab의 통합 CI/CD 기능으로, 코드 저장소와 밀접하게 통합

0개의 댓글