"기회는 일어나는 것이 아니라 만들어내는 것이다." - '크리스 그로서'
CI / CD(지속적 통합)의 탄생
CI / CD 단어를 누가 정의했다고 하기 어렵지만, 여러 개발자와 팀이 협업해 코드를 통합하고 테스트하며 배포하는 데 도움을 주기 위한 개발 관행으로 시작되었습니다.
CI / CD 개념
CI / CD는 CI (Continuous Integration) / CD(Continuous Delivery) 즉, 지속적인 통합과 지속적인 배포로 새로운 코드 통합으로 발생하는 문제("통합 지옥(integration hell)")를 해결하기 위해 나온 용어입니다.

CI / CD 필요성
반복 작업
A씨는 밤낮없이 개발을 하여 개발을 완료했습니다.
이제는 고생 끝이라고 하는 순간, 서비스에 오류가 발생했다는 이야기를 듣고 부랴부랴 오류를 잡아냈죠. 그리고 다시 빌드하고 테스트가 완료되어서 다시 서버에 올렸습니다!
여기서 끝이 나면 좋겠지만, A 씨의 기도는 이뤄지지 않았습니다.... 그래서 A 씨는 계속 서비스에 오류가 나지 않을 때까지 작업 -> 빌드 -> 테스트 -> 배포 -> 작업 -> 빌드 -> 테스트... 하는 중간에 빌드 설정을 잘 못해서 오류가 발생하기도 합니다.
위와 같은 예시에서 반복되는 작업을 자동화할 수 있습니다.
CI / CD 어떻게 하는 건가?
개발자는 git에 수정된 코드를 올리면, CI / CD 프로그램들이 돌아서 컴파일, 테스트, 배포, 빌드 등 개발자가 정해 놓은 절차에 따라서 작업이 진행됩니다.

CI / CD 프로그램들
JET BRAINS에 따르면, CI/CD 사용량이 많은 1위는 GitHub Actions, 2위는 Jenkins, 3위는 Gitlab CI, 4위 Azure DevOps, 5위 Circle CI입니다.

- GitHub Actions
GitHub에서 개발을 한 CI/CD로, repository에서 바로 소프트웨어 개발 workflows 자동화, 사용자 지정 및 실행합니다. - Jenkins
Jenkins는 소프트웨어 구축, 테스트, 제공 또는 배포와 관련된 모든 종류의 작업을 자동화하는 데 사용할 수 있는 독립형 오픈 소스 자동화 서버입니다.
Jenkins를 쓰냐, GitHub Actions를 쓰냐 고민을 많이 하시는 분이 있으실 것입니다. 저도 회사 프로젝트에 어떤 것을 사용하느냐 고민을 많이 했습니다. 저의 전 포스터가 있으니 참고하시길 바랍니다.젠킨스(Jenkins) VS GitHub Actions
- Gitlab CI/CD
GitLab에서 개발을 한 CI/CD로, repository에서 바로 소프트웨어 개발 workflows 자동화, 사용자 지정 및 실행합니다. - Azure DevOps
애저 데브옵스는 TFS(Team Foundation Server)라고 불렀으며, 소스 코드 관리, 랩 관리, 테스트 및 출시 관리 기능을 제공하는 마이크로소프트의 제품입니다. Microsoft Visual Studio 또는 Eclipse와 함께 사용할 때 가장 잘 작동된다고 합니다. - Circle CI
2011년 9월에 설립된 회사에서 2011년 10월 11일에 베타 테스트를 위해 처음 출시된 CI/CD 툴입니다.
마치며
저는 여태 GitLab과 GitHub가 같은 회사인 줄 알았는 데, Git을 기술적인 기반으로 삼는다는 점이 같을 뿐이었습니다. 블로그를 정리하면서 궁금한 점이나 모르는 부분을 공부하면서 알아가는 부분이 많다고 느꼈습니다.
💡 더 성장하는 개발자가 될 수 있도록, 틀린 부분을 알려주신다면 감사하겠습니다.
'서버' 카테고리의 다른 글
| Flyway 적용 과정 (1) | 2024.12.03 |
|---|---|
| 젠킨스(Jenkins) VS GitHub Actions (1) | 2023.09.26 |
| [Nginx] Windows / Linux 명령어 (0) | 2022.06.04 |
| 외부접근 가능한 port 열기 (0) | 2022.04.14 |