0. CI/CD란?

CI/CD는 소프트웨어 개발에서 **Continuous Integration(지속적 통합)**과 **Continuous Delivery/Deployment(지속적 전달/배포)**의 약자로, 소프트웨어 개발 및 배포 과정을 자동화하는 중요한 프로세스를 의미한다.

CI(Continuous Integration)

개발자가 작업한 코드를 주기적으로 중앙 저장소에 병합하는 과정

이 과정에서 자동으로 테스트와 빌드를 수행한다.

CD(Continuous Delivery/Deployment)

CI 과정에서 빌드된 소프트웨어를 실제 운영 환경에 배포하는 단계

즉, CI/CD란 각각의 개발자들이 개발을 하는 개발환경을 사용자가 사용 가능한 서비스로 전달하는 모든 과정지속 가능한 형태로, 또 가능하다면 자동으로 해서 개발자와 사용자 사이의 격차를 없애는 것이다. 이러한 과정에는 코드를 빌드하고, 테스트하고 배포하는 활동이 있다. (참고)

CI/CD Tools

CI/CD도 여러 툴들이 존재한다. 대표적으로 **Jenkins**와 **Github Action**이 있다. 나는 CI/CD Tool로 Github Action을 사용했다. GitHub 내에서 모든 설정과 관리를 할 수 있다는 점이 매력적으로 다가왔기 때문이다.

1. Github Actions 개요

GitHub Actions를 사용하면 자동으로 코드 저장소에서 어떤 이벤트(event)가 발생했을 때 특정 작업이 일어나게 하거나, 주기적으로 어떤 작업들을 반복해서 실행시킬 수 있다.

GitHub Actions를 활용한 주요 시나리오

2. 적용