반려동물 SNS 프로젝트를 마무리 해가면서 협업에 따른 기존 코드와 새 코드의 지속적인 통합(CI
), 그리고 배포(CD
)를 위한 파이프라인이 필요해졌다.
직접적으로 Github를 통해 협업을 진행하고 있고, 이에 따라 Github에서 제공하는 무료 서비스인 Github-Actions를 이용해 CI
를 구축해보고자 한다.
먼저 CI/CD
에 대해서 알아보고, 프로젝트의 CI
부터 적용해보려 한다.
CI/CD
(Continuous Integration/Continuous Delivery)는 애플리케이션 개발을 자동화하여 더욱 짧은 주기로 사용자에게 제공하는 방법이다.
CI/CD
의 핵심 모토는 지속적인 통합, 지속적인 배포를 통한 지속적인 서비스 제공이다.
특히, CI/CD
는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공한다. 이러한 구축 사례를 일반적으로 “CI/CD 파이프라인
”이라 부른다.
CI/CD
의 "CI
"는 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다. CI
가 제대로 구현되면 변경된 코드가 빌드 및 테스트를 거쳐 리포지토리에 병합된다.
CI/CD
의 "CD
"는 지속적인 서비스 제공 또는 지속적인 배포라는 두 용어로 혼용한다. 지속적인 제공은 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것을 뜻하며, 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포할 수 있다. 즉, 자동화를 통해 새로운 코드를 배포하는 것이다.
지속적인 배포란 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리즈하는 것을 의미한다.
CI/CD
는 지속적 통합 및 지속적 제공의 구축 사례만을 지칭할 때도 있고, 지속적 통합, 지속적 제공, 지속적 배포라는 3가지 구축 사례 모두를 의미하기도 한다.
개인적인 의견으로는 대부분이 CI/CD
를 통합, 제공, 배포 3가지를 모두 포함한 것으로 일컫는 것 같다.
GitHub Actions
는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼이다.