CS 21 CI/CD

이상인·2023년 9월 16일
0

CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployment 또는 Continuous Delivery)의 약어로, 소프트웨어 개발과 배포 프로세스를 자동화하고 효율화하기 위한 개발 방법론 및 도구입니다.

  1. 지속적 통합 (CI - Continuous Integration)
  • CI는 개발자들이 소스 코드를 공유 레포지토리에 통합하는 프로세스를 자동화하는 것을 의미합니다.
  • CI의 핵심 목표는 코드 변경 사항이 주기적으로 통합되고, 빌드 및 테스트가 자동으로 실행되어 개발 중 발생할 수 있는 문제를 빠르게 감지하고 해결하는 것입니다.
  • CI 시스템은 주기적으로 소스 코드 변경 사항을 가져와 빌드 및 테스트를 수행하며, 문제가 발견되면 팀에 알립니다.
  1. 지속적 배포 (CD - Continuous Deployment/Delivery)
  • 지속적 배포(Continuous Deployment)와 지속적 배포(Continuous Delivery)는 소프트웨어 변경 사항을 자동으로 프로덕션 환경으로 전달하는 데 관련이 있지만 약간의 차이가 있습니다.

지속적 배포 (Continuous Deployment)

  • 지속적 배포는 모든 변경 사항이 자동으로 프로덕션 환경으로 배포되는 것을 의미합니다.
  • 즉, 코드 변경 사항이 통합되고 테스트를 통과하면 실제 사용자에게 바로 배포됩니다.

지속적 배포 (Continuous Delivery)

  • Continuous Delivery는 변경 사항을 스테이징 환경 또는 QA 환경으로 배포하고, 사용자가 직접적으로 영향을 받지 않는 프로덕션 환경으로의 배포를 수동으로 결정할 수 있도록 합니다.

CI/CD의 주요 이점

빠른 피드백

  • CI/CD는 코드 변경 사항을 자동으로 빌드 및 테스트하므로 개발자는 문제를 빨리 파악하고 수정할 수 있습니다.

품질 향상

  • 자동화된 테스트를 통해 소프트웨어 품질을 향상시킬 수 있으며, 버그를 미리 찾아내고 예방할 수 있습니다.

자동화

  • CI/CD는 빌드, 테스트, 배포 등의 작업을 자동화하여 인간의 실수를 줄이고 일관성을 유지합니다.

빠른 배포

  • 지속적 배포 또는 지속적 배포를 통해 새로운 기능과 개선 사항을 빠르게 사용자에게 제공할 수 있습니다.

팀 협업

  • CI/CD는 팀 간 협업을 용이하게 하며, 다양한 팀원들이 소프트웨어 개발과 배포 프로세스에 참여할 수 있도록 합니다.

CI/CD를 구현하려면 CI/CD 파이프라인을 설정하고, 자동화된 빌드, 테스트, 배포 스크립트를 작성하며, 팀원들 간의 협업과 코드 품질 관리를 강화해야 합니다.

이를 위해 Jenkins, Travis CI, CircleCI, GitLab CI/CD, GitHub Actions와 같은 CI/CD 도구와 서비스를 사용할 수 있습니다.

0개의 댓글