성공적인 CI/CD 전략, 우리 환경에 맞는 도구 고르기

성공적인 CI/CD 전략, 우리 환경에 맞는 도구 고르기

스카이웨어 인턴은 입사 후 스스로 주제를 정해 조사하고 발표합니다. 2025년 12월 10일, 개발팀 인턴 송용인 님이 첫 발표로 ‘CI/CD 도구 선택’을 다뤘습니다. 프로젝트마다 알맞은 도구를 고르는 기준이 필요했고, 배포를 더 빠르게 하고 싶었고, 개인적인 관심도 컸다는 것이 주제를 고른 이유입니다. 발표 내용을 간추렸습니다.

CI(지속적 통합)는 코드를 올릴 때마다 자동으로 빌드하고 테스트해 코드 품질을 유지하는 단계입니다. CD는 그 결과물을 배포 가능한 상태로 만들고, 자동으로 내보낼지 사람이 승인할지 정하는 단계입니다. 승인 뒤 배포하면 지속적 전달(Delivery), 승인 없이 바로 나가면 지속적 배포(Deployment)라고 합니다.

소스 커밋자동 빌드 · 단위 테스트스테이징 배포 · 통합 테스트승인 또는 자동 배포운영 반영

도구를 고르기 전에 코드와 서버가 어디에 있는지부터 봐야 합니다. 스카이웨어처럼 고객사 내부망에 시스템을 구축하는 일이 많은 회사에서는 이 구분이 도구 선택을 거의 결정합니다.

온프레미스 vs 클라우드

구분온프레미스클라우드
장점물리적 보안 · 사용자 맞춤 구성 · 낮은 유지보수 비용낮은 초기 비용 · 운영 부담 감소 · 어디서나 사용
단점높은 초기 비용 · IT 인프라를 직접 관리데이터 유출 등 보안 이슈 · 오래 쓸수록 유지 비용 증가
  • 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 자동화 서버. 완전한 자체 호스팅, 에이전트를 추가해 무한 확장, 수천 개 플러그인. 온프레미스 · 클라우드 모두 지원합니다.

발표는 가장 좋은 도구 대신 우리 상황에서 고르는 기준을 결론으로 냈고, 이를 세 가지 기준으로 정리했습니다.

도구 선택의 세 가지 기준

  1. 인프라온프레미스 ↔ 클라우드내부망이면 Jenkins · GitLab, 클라우드면 GitHub Actions · Azure DevOps · AWS Code Series
  2. 인력개발 인력 여유 ↔ 부족직접 운영할 사람이 있으면 Jenkins, 부족하면 관리형 SaaS(GitHub Actions · Azure · AWS · GitLab)
  3. 사업B2B ↔ B2C고객사 구축형(B2B)은 Jenkins처럼 어디든 설치되는 도구, 자체 서비스(B2C)는 클라우드 도구로 빠른 배포

인프라 위치+운영할 사람+사업 형태=우리 프로젝트에 맞는 CI/CD 도구

스카이웨어는 사내 저장소로 GitLab을 씁니다. 고객사 내부망 프로젝트에는 GitLab Runner를, 자체 서비스에는 클라우드 도구를 붙이는 방향이 발표 결론과 맞닿아 있습니다. 첫 발표에서 도구의 장단점을 환경과 연결해 정리했고, 다음 발표에서는 실제 프로젝트 하나에 파이프라인을 붙여 본 경험을 공유할 예정입니다.

SKYWARE

무엇을 도와드릴까요?

도입 문의