성공적인 CI/CD 전략, 우리 환경에 맞는 도구는 무엇인가
2025년 12월 10일 | SKYWARE ACADEMY
스카이웨어는 인턴이 입사 후 스스로 주제를 정해 조사하고 발표하는 과정을 거칩니다. 2025년 12월 10일, 개발팀 인턴 송용인 님이 첫 발표로 ‘CI/CD 도구 선택’을 다뤘습니다. 주제를 고른 이유는 세 가지였습니다. 프로젝트마다 알맞은 도구를 고르는 기준이 필요했고, 배포를 더 효율적으로 하고 싶었고, 개인적으로도 관심이 컸기 때문입니다. 발표 내용을 간추려 공유합니다.
01. CI와 CD, 어디까지 자동화할 것인가
CI(지속적 통합)는 코드를 올릴 때마다 자동으로 빌드하고 테스트해 코드 품질을 유지하는 단계, CD는 그 결과물을 배포 가능한 상태로 만들고 자동으로 내보낼지 사람이 승인할지 정하는 단계입니다. 승인 뒤 배포하면 지속적 전달(Delivery), 승인 없이 바로 나가면 지속적 배포(Deployment)로 구분합니다.
소스 커밋자동 빌드 · 단위 테스트스테이징 배포 · 통합 테스트승인 또는 자동 배포운영 반영
02. 온프레미스와 클라우드, 출발점이 다르다
도구를 고르기 전에 코드와 서버가 어디에 있는지부터 봐야 합니다. 스카이웨어처럼 고객사 내부망에 시스템을 구축하는 일이 많은 회사에서는 이 구분이 도구 선택을 거의 결정합니다.
온프레미스 vs 클라우드
| 구분 | 온프레미스 | 클라우드 |
|---|---|---|
| 장점 | 물리적 보안 · 사용자 맞춤 구성 · 낮은 유지보수 비용 | 낮은 초기 비용 · 운영 부담 감소 · 어디서나 사용 |
| 단점 | 높은 초기 비용 · IT 인프라를 직접 관리 | 데이터 유출 등 보안 이슈 · 오래 쓸수록 유지 비용 증가 |
03. 주요 CI/CD 도구 다섯 가지
- GitHub ActionsGitHub에 통합된 클라우드 SaaS. 1만 개가 넘는 마켓플레이스 액션, GitHub 호스팅 러너와 자체 호스팅 러너를 모두 지원. 내부망 서버에 자체 러너를 두면 외부망 GitHub에서 내부 서버로 배포할 수 있다.
- GitLab CI/CDGitLab에 내장. 온프레미스와 클라우드 모두 지원하고, GitLab 자체와 러너를 내부 서버에 설치할 수 있어 내부망 · 폐쇄망에서도 완전한 CI/CD가 가능하다.
- Azure DevOpsMicrosoft 기반 DevOps 플랫폼. 온프레미스 · 클라우드 모두 지원, GitHub · GitLab · Bitbucket 등 어떤 저장소와도 연동되고 Kubernetes(AKS) · Docker 환경과 붙는다.
- AWS Code SeriesCodeCommit · CodeBuild · CodeDeploy · CodePipeline 조합. AWS 서비스에 최적화되어 EC2 · ECS · Lambda 배포 자동화에 강하고, 외부 저장소와도 연동된다.
- Jenkins오픈소스 CI/CD 자동화 서버. 완전한 자체 호스팅, 에이전트를 추가해 무한 확장, 수천 개 플러그인. 온프레미스 · 클라우드 모두 지원한다.
04. 환경별 선택 전략 · 세 가지 축
발표는 “가장 좋은 도구” 대신 “우리 상황에서 고르는 기준”을 결론으로 내고, 이를 세 가지 축으로 정리했습니다.
도구 선택의 세 가지 축
- 인프라온프레미스 ↔ 클라우드내부망이면 Jenkins · GitLab, 클라우드면 GitHub Actions · Azure DevOps · AWS Code Series
- 인력개발 인력 여유 ↔ 부족직접 운영할 사람이 있으면 Jenkins, 부족하면 관리형 SaaS(GitHub Actions · Azure · AWS · GitLab)
- 사업B2B ↔ B2C고객사 구축형(B2B)은 Jenkins처럼 어디든 설치되는 도구, 자체 서비스(B2C)는 클라우드 도구로 빠른 배포
인프라 위치+운영할 사람+사업 형태=우리 프로젝트에 맞는 CI/CD 도구
스카이웨어는 사내 저장소로 GitLab을 쓰고 있어, 고객사 내부망 프로젝트에는 GitLab Runner를, 자체 서비스에는 클라우드 도구를 붙이는 방향이 발표 결론과 맞닿아 있습니다. 첫 발표치고 도구의 장단점을 환경과 연결해 정리한 점이 좋았고, 다음 발표에서는 실제 프로젝트 하나에 파이프라인을 붙여 본 경험을 공유할 예정입니다.






