10/5 TIL CI / CD 에 대해서

이승준·2023년 10월 5일
0
post-thumbnail

CI/CD는 "지속적 통합" (Continuous Integration) 및 "지속적 배포" (Continuous Deployment 또는 Continuous Delivery)의 약어로, 소프트웨어 개발 및 배포 프로세스를 자동화하고 효율화하기 위한 중요한 개념입니다. 이 두 요소는 소프트웨어 품질 향상과 신속한 소프트웨어 배포를 돕는데 기여합니다.

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

  • CI는 개발자들이 코드를 주기적으로 공유하고 통합하는 프로세스를 가리킵니다.
  • 일반적으로 코드 저장소(예: Git)에 변경 사항을 커밋할 때마다 자동으로 CI 파이프라인이 실행됩니다.
  • CI 파이프라인은 코드 컴파일, 테스트 실행, 정적 분석 등과 같은 작업을 수행하여 코드의 품질과 안정성을 확인합니다.
  • CI의 주요 목표는 개발자가 코드 변경 사항을 빈번하게 공유하고 통합하므로 버그를 빠르게 식별하고 수정할 수 있도록 하는 것입니다.

지속적 배포/배포 (CD - Continuous Deployment/Delivery):

  • CD는 CI의 확장으로, 소프트웨어를 자동으로 배포하는 프로세스를 포함합니다.
  • 지속적 배포 (Continuous Deployment): 모든 코드 변경 사항이 자동으로 프로덕션 환경에 배포되는 것을 의미합니다. 이것은 특히 웹 서비스와 같이 빠른 릴리스 주기를 가진 소프트웨어에 적합합니다.
  • 지속적 배포 (Continuous Delivery): 코드 변경 사항은 스테이징 또는 QA 환경으로 자동 배포되며, 프로덕션 환경으로의 배포는 수동으로 승인됩니다. CD는 코드를 프로덕션 환경에 안정하게 전달하는 데 중점을 둡니다.

CI/CD의 이점:

  • 빠른 피드백: 코드 변경에 대한 신속한 피드백을 통해 버그를 조기에 식별하고 해결할 수 있습니다.
  • 자동화: 반복적인 작업과 인프라 구축을 자동화하여 인간 오류를 최소화하고 일관성을 유지합니다.
  • 릴리스 신속성: 신속한 배포를 통해 새로운 기능이나 수정 사항을 사용자에게 빠르게 제공합니다.
  • 품질 향상: CI/CD는 코드 품질을 향상시키고 안정성을 높이는 데 도움을 줍니다.

CI/CD는 현대 소프트웨어 개발에서 필수적인 구성 요소이며, 다양한 도구와 서비스를 사용하여 구현됩니다. GitLab CI/CD, Jenkins, Travis CI, CircleCI, AWS CodePipeline, 및 GitHub Actions와 같은 CI/CD 도구가 널리 사용됩니다.

0개의 댓글