개요

스크린샷 2023-08-30 오전 8.37.28.png

반려동물 SNS 프로젝트를 마무리 해가면서 협업에 따른 기존 코드와 새 코드의 지속적인 통합(CI), 그리고 배포(CD)를 위한 파이프라인이 필요해졌다.

직접적으로 Github를 통해 협업을 진행하고 있고, 이에 따라 Github에서 제공하는 무료 서비스인 Github-Actions를 이용해 CI를 구축해보고자 한다.

먼저 CI/CD에 대해서 알아보고, 프로젝트의 CI부터 적용해보려 한다.


CI, CD

CI/CD (Continuous Integration/Continuous Delivery)는 애플리케이션 개발을 자동화하여 더욱 짧은 주기로 사용자에게 제공하는 방법이다.

CI/CD의 핵심 모토는 지속적인 통합, 지속적인 배포를 통한 지속적인 서비스 제공이다.

특히, CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이러한 구축 사례를 일반적으로 “CI/CD 파이프라인”이라 부른다.


스크린샷 2023-08-30 오전 8.09.56.png

CI/CD의 "CI"는 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다. CI가 제대로 구현되면 변경된 코드가 빌드 및 테스트를 거쳐 리포지토리에 병합된다.

CI/CD의 "CD"는 지속적인 서비스 제공 또는 지속적인 배포라는 두 용어로 혼용한다. 지속적인 제공은 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것을 뜻하며, 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있다. 즉, 자동화를 통해 새로운 코드를 배포하는 것이다.

지속적인 배포란 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리즈하는 것을 의미한다.

CI/CD지속적 통합지속적 제공의 구축 사례만을 지칭할 때도 있고, 지속적 통합, 지속적 제공, 지속적 배포라는 3가지 구축 사례 모두를 의미하기도 한다.

개인적인 의견으로는 대부분이 CI/CD통합, 제공, 배포 3가지를 모두 포함한 것으로 일컫는 것 같다.


Github Actions?

GitHub Actions빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼이다.