CI/CD 기본개념과 가장 많이 쓰이는 도구 5가지

CI/CD 기본개념과 가장 많이 쓰이는 도구 5가지

CI/CD란?

CI = 지속적인 통합(Continuous Integration); 한마디로 “빌드와 테스트 자동화” 

CD = 지속적인 전달(Continuous Delivery) 또는 지속적인 배포(Continuous Deployment); 한마디로 “배포 자동화” 


덧붙이자면 CI는 모든 개발이 끝난 후 코드 품질을 관리하는 고전적 방식의 단점을 해소하기 위해 나타난 개념으로, “지속적인 통합(Continuous Integration)”이라는 말 그대로 코드 변경 사항이 정기적으로 빌드 및 테스트되어 (가능하면 매시간 또는 매일) 공유 리포지토리에 통합되는 과정을 통해 계속 품질을 유지하면서 개발을 진행하는 방법이다. 

CI/CD 기본개념 비주얼

CD는 CI의 연장선으로, 이 CI 프로세스를 통과한 코드 버전을 마지막에 “배포”하는 과정을 말한다. 코드 변경 사항이 파이프라인의 이전 단계(CI)를 모두 성공적으로 통과하면 수동 개입 없이 프로덕션에 자동으로 배포됨으로, 신속하고 능률적으로 사용자에게 새로운 기능을 제공할 수 있는 것이 장점이다. 


왜 이것이 필요한가? 

한마디로 “속도” “효율”이다. “Quality at Speed“가 언제나 소프트웨어 개발의 이상이라면, 오늘날과 같이 다차원으로 끊임없이 진화되고 있는 개발 환경을 고려할 때, 조직들의 가장 큰 과제 중 하나는 시장 변화 및 고객 요구에 신속하고 유연하게 대응할 수 있는 개발안을 구축하는 것이다. 이러한 문제에 대한 중추적인 솔루션인 Agile 문화와 DevOps의 한 부분으로써 CI/CD개념이 출현한 것이다.


가장 많이 쓰이는 CI/CD 도구 5가지

이러한 경향을 따라 CI/CD 실행을 지원하는 다양한 도구와 방법들이 나오고 있는데, 그중 가장 많이 쓰인다고 할 수 있는 5가지를 추려보면:

1. 젠킨스

CI/CD 도구 Jenkins

오늘날 시장에서 널리 사용되는 CI/CD 도구 중 하나인 Jenkins는 중앙 빌드 및 지속적인 통합 프로세스가 가능하며, Windows, macOS 및 기타 Unix 계열 운영 체제용 패키지가 포함된 독립형 Java 기반 프로그램이다. 수백개의 플러그인을 사용할 수 있는 Jenkins는 소프트웨어 개발 프로젝트의 빌드 파이프라인 구성, Build 자동화의 확립, 배포 및 테스트 자동화 등을 지원한다.

홈페이지: https://jenkins.io/


2. 서클CI

CI/CD 도구 CircleCI

CircleCI는 코드 구축, 테스트에서 배포에 이르기까지 사용자의 파이프라인 전반에 걸쳐 신속한 소프트웨어 개발 및 게시를 지원하는 CI/CD 자동화 도구이다. CircleCI를 GitHub, GitHub Enterprise 및 Bitbucket과 통합하여 사용할 수 있다는 장점이 있다.

홈페이지: https://circleci.com/


3. 팀시티

CI/CD 도구 팀 도시

TeamCity는 JetBrains의 빌드 관리 및 지속적 통합 서버로써 Java 환경에서 실행되며 Visual Studio 및 IDE와 통합될수있는데, Windows 및 Linux 서버에 모두 설치할 수 있으며 .NET 및 개방형 스택 프로젝트도 지원한다. 

홈페이지 : https://www.jetbrains.com/teamcity/


4. Bamboo (대나무)

CI/CD 도구 Bamboo

홈페이지 : https://www.atlassian.com/software/bamboo


5. GitLab

CI/CD 도구 Gitlab

홈페이지 : https://about.gitlab.com/



이 외에:

버디 https://buddy.works/
트래비스 CI https://travis-ci.com
세마포어 https://semaphoreci.com/

GitHub Actions https://docs.github.com/en/actions


관련 있는 글