[칼럼] 기업에 CI/CD가 필요한 10가지 이유

김영우 pengo@itdonga.com

이제는 기업이 제공하는 모든 제품, 서비스에서 소프트웨어를 분리할 수 없는 시대이다. 경쟁업체와 고객들, 투자자 및 직원들 모두 회사에서 만든 제품에 정기적으로 업데이트되는 소프트웨어를 요구하고 있다.

따라서 이러한 현실(및 데브옵스(DevOps))을 직시하고, 가능한 가장 효율적인 지속적인 통합 및 제공 파이프라인을 만드는 데 투자해야 한다. 이러한 전략을 경영진에게 어떻게 설득해야 할까? 먼저 경쟁사를 언급하는 것으로 시작할 수 있다. 경쟁사들은 이미 지속적인 통합 및 지속적인 제공(CI/CD: Continuous Integration/Continous Delivery)을 활용하고 있을 가능성이 높다. 만약 그래도 더 구체적으로 설득할 이유가 필요하다면, 기업에 CI/CD가 필요한 10가지 이유를 제시하면 된다.

(출처=깃랩)
(출처=깃랩)

CI/CD는 무엇인가?

CI/CD는 자동화 기능을 사용하여 코드 개발 및 제공을 획기적으로 간소화할 수 있는 2단계의 프로세스다. 먼저 CI는 소스 코드 통합 및 버전 관리 등의 개발자 작업을 보다 효율적으로 수행할 수 있도록 함으로써 소프트웨어를 보다 신속하게 운영환경에 배치할 수 있도록 해주는 사전 단계다. 여러 개발자가 동시에 애플리케이션 개발 관련 코딩을 하더라도, 새로운 코드 변경 사항들이 빌드(컴파일) 및 테스트되어 정기적으로 공유 리포지토리(정보 저장소)에 통합된다. 따라서 모든 개발이 종료된 시점부터 코드 품질 관리를 시작했던 기존 방식의 단점(테스트 시 예상치 못한 충돌 발생)이 해소된다.

CI의 다음 작업으로 CD는 소프트웨어 테스트 및 배포를 자동화한다. 엄밀히 구분하면 이 CD는 2가지로 나뉜다. 먼저 지속적인 제공(Continuous Delivery)을 통해 CI에서 유효성 검증이 끝난 코드들을 저장소에 자동으로 릴리스 한다. 이를 통해 운영팀은 변경된 코드들을 저장소에서 가져와서 애플리케이션(프로덕션 환경)에 수동으로 배포할 수 있게 된다. 개발팀과 운영팀 사이에 의사소통이 좀 더 원활해지는 것이 장점이다.

최종 단계는 지속적인 배포(Continuous Deployment)다. 즉, 소프트웨어의 변경 사항이 테스트를 통과하자마자 자동으로 최종 사용자에게 배포된다. 따라서 사용자의 피드백도 즉각 반영하기 쉬워진다.

하나로 이어진 CI/CD 파이프라인을 상상하면 쉽다. 개발자들이 코드를 지속적으로 빌드 및 테스트를 하며, 검증된 소스는 즉시 애플리케이션으로 사용자에게 배포가 되는 것이다. 이처럼 CI/CD가 결합되면, 강력한 최신 소프트웨어 개발 엔진이 되며, 이는 기업들에게 엄청난 이점을 제공한다.

CI/CD는 비즈니스에 어떠한 이점을 제공하는가?

CI/CD는 비즈니스에 수많은 이점을 제공한다. CI/CD를 채택해야 하는 10가지 이유는 다음과 같다.

• 탁월한 코드 품질 보장

깃랩의 2021년 글로벌 데브섹옵스 설문조사(Global DevSecOps Survey) 참가자들은 데브옵스를 수행해야 하는 가장 큰 이유는 코드 품질을 위한 것이며, 데브옵스를 위해 팀에 가장 필요한 프로세스는 CI/CD라고 응답했다. CI/CD 파이프라인은 테스트 자동화를 제공하기 때문에 개발자들은 거의 실시간으로 코드 문제를 파악할 수 있다. 이러한 ‘신속한 오류 해결(Failing Fast)’ 개념을 통해 팀은 버그가 있는 코드로 인해 시간이나 자원을 낭비하지 않아도 되고, 개발자는 다른 프로젝트를 구동할 때 끝없는 ‘수정’ 요청에 시달리지 않아도 된다. 시간과 비용을 절약할 수 있으며, 오로지 코딩에만 집중할 수 있다.

• 릴리스 속도를 단축하여 더 신속하게 제공

CI/CD 이점에 대해 더 궁금한 사람이라면 글로벌 금융회사인 골드만삭스(Goldman Sachs)의 성공사례를 살펴보는 것이 좋다. 이 회사의 기술 부서는 2주 마다 1개의 코드를 빌드했지만, 이후 하루 1,000개 이상으로 늘어났다. 통합 CI/CD 파이프라인은 소프트웨어 릴리스 속도를 높이는 데 있어 터보 엔진과도 같다. 코드를 더 빨리 릴리스하고, 더 많은 새로운 코드를 개발할 수 있게 됨에 따라 끝없이 릴리스가 가능하다. 성공적으로 CI/CD 파이프라인이 작동하면, 결국 기업 차원에서도 고비용의 개발자 리소스를 최대한 활용할 수 있어 이득을 얻을 수 있다.

• CI/CD 파이프라인: 자동화로 비용 절감

소프트웨어 개발 프로세스에 사람의 개입이 필요 없게 되면, 시간과 비용을 절감할 수 있다. 이러한 이유로 성공적인 데브옵스 수행사례의 토대는 바로 자동화다. CI/CD는 핸드오프(작업자 변경: 개발 협업 중 어떤 사람이 다른 동료에게 다양한 업무 관련 정보 또는 책임을 이전하는 것. 예를 들어, 고객이 영업 사원에게 니즈를 정확히 언급한다. 영업 사원은 이를 개발자에게, 개발자는 테스터에게, 테스터는 운영팀에게 알리게 되는 데 각 단계마다 원래의 정보가 손실된다.), 소스 코드 관리, 버전제어 시스템 및 배포 메커니즘은 물론, 많은 테스트 기능을 자동화한다.

이 중에서도 테스트가 가장 중요하다. 2021년 깃랩 설문조사에 따르면, 테스트가 릴리스 지연의 가장 큰 원인으로 확인되었다. 지연된 릴리스는 비용과 브랜딩, 홍보 및 평판 등의 측면에서 비즈니스에 영향을 미칠 뿐만 아니라 신속한 시장 출시에 의존하는 기업에게는 치명적이다. 전통적으로 소프트웨어 테스트는 수동으로 진행되었고, 엄청나게 많은 시간이 소요되었기 때문에 기업들은 1년에 한두 번 정도만 새로운 코드를 릴리스 하는 경우가 많았다. 반면 오늘날 기업들은 상시 릴리스가 가능해야 하며, 이를 위해서는 자동화된 소프트웨어 테스트가 매우 중요하다.

• 오류 격리

소프트웨어 개발 분야에서 데브옵스 및 CI/CD가 주목받기 전에는, 개발팀이 코드에 문제가 있다는 것을 알아도 문제가 발생한 정확한 위치를 파악하는 데는 어려움을 겪었다. 그런데 CI/CD와 자동화된 테스트로 인해 상황이 달라졌다. 개발자는 코드 오류를 쉽게 식별한 다음, 이를 격리함으로써 생산성을 크게 향상시킬 수 있게 되었다.

• 간소화된 롤백(이전 버전 되돌리기)

개발자는 CI/CD 파이프라인을 통해 오류를 신속하게 해결하고, 훨씬 더 빠르게 복구할 수 있다. 이는 코드를 운영환경으로 전환하고, 문제가 있으면 롤백하면 되는 간단한 프로세스이다. 코드를 쉽게 롤백할 수 있는 기능은 팀의 시간과 에너지, 리소스를 절약하고, 문제가 있는 코드를 보다 신속하게 수정할 수 있도록 해준다.

• 지속적인 피드백

데브옵스 플랫폼의 일부로 동작하는 통합 CI/CD 프로세스는 비즈니스 이해관계자들을 비롯해 팀의 모든 사람들이 무슨 일이 일어나고, 어디에서 일어나는지, 그리고 무엇이 잘못되었는지 확인할 수 있는 방법을 제공한다. 이것은 단순한 것처럼 들릴 수 있지만, 실제로 소프트웨어 개발에서의 싱글 윈도우(현황을 한 곳에서 파악하는 방식)는 거의 혁신적이라 할 수 있다.

과거에는 사용하는 툴이 너무 많았기 때문에 프로젝트 관리자가 여러 부분들을 살펴봐야 했고, 여러 사람들에게 상태 업데이트를 요청해야 했다. 이러한 상황에서 개발자와 운영 전문가들은 더 나은 결과를 얻지 못했고, 특히 문제가 발생하면, 이는 시간과 리소스 낭비를 초래했다.

• 최적의 투명성과 책임성

CI/CD 파이프라인은 지속적인 피드백을 통해 전체 소프트웨어 개발 프로세스를 비즈니스 측면에서 완전히 투명하게 처리한다. 제품 관리자는 프로젝트 상태를 한 눈에 확인하고, 필요에 따라 책임 소재를 추적할 수 있다.

• MTTR(Mean Time to Resolution, 평균 해결 시간) 개선

CI/CD 파이프라인이 제공하는 가시성 덕분에 데브옵스 팀은 문제를 신속하게 파악하고, 빠르게 해결할 수 있다. 문제를 신속하게 해결하는 능력은 핵심 개발 지표인 MTTR(Mean Time to Resolution)의 주요 요소이다. MTTR이 좋을수록 데브옵스 팀은 더욱 효율적으로 작업하고, 더 빨리 소프트웨어를 출시할 수 있으며, 이러한 MTTR은 비즈니스 수익에 직접적인 영향을 미친다.

• Metrics(지표) 데이터 모니터링

팀과 비즈니스 측면에서는 코드가 실제 환경에서 어떻게 동작하는지 알아야 하지만, 기존 소프트웨어 개발 수행사례에서는 이를 모니터링할 만한 통계 지표가 없는 경우가 많았다.(예를 들어 데브옵스 현황을 파악하는 데 도움을 주는 지표에는 리드 타임, 배포 빈도, 변경 실패율, 평균 복구 시간 등이 있다.) 이상적인 환경이라면 팀이 먼저 코드 문제를 파악하고, 최종 사용자가 이를 인식하기 훨씬 전에 롤백할 수 있어야 한다. CI/CD 파이프라인은 다양한 지표에 대한 지속적인 피드백을 제공하여 이상적인 환경을 실현할 수 있다. 제대로 동작하지 않는 버그가 많은 코드 및 애플리케이션을 원하는 기업은 없기 때문에 이러한 지표 데이터에 대한 액세스는 단순히 시간만 절약하는데 그치지 않는다.

• 백로그의 중요하지 않은 결함 감소

CI/CD는 시간과 비용을 절감시켜준다. 이에 개발자는 시간이 부족하여 그동안 수정할 수 없었던 오래된 코드들을 더 명확하고 효율적으로 만드는 작업이 가능하게 됐다. 즉 개발자들이 기존에 처리하기 곤란했던 백로그(결국 누가 시간을 따로 낼 수 있는 가의 이유로 백로그라고 부른다.) 및 사소한 결함에 대해서도 작업할 수 있다는 아이디어는 데브옵스와 CI/CD가 팀에 가져온 게임 체인저이다.

IT 기업 고객사의 경영진들이 많이들 궁금해하는 부분 중 하나가 바로 CI/CD의 중요성이다. CI/CD를 도입하게 되면 개발부터 애플리케이션 배포까지의 과정이 신속하다. 코드 빌드의 횟수도 많은 데 동시에 보안 테스팅과 사용자의 피드백까지 반영된다.

또다른 장점도 소개하며 이 글을 마치고자 한다. 최근 java의 빈틈을 노려서 Log4j라는 컴퓨터 역사상 최악의 취약점 공격이 발생한 적이 있다. CI/CD 파이프라인이 없는 기업들은 ‘어느 지점’이 공격 당했는 지 파악하기도 쉽지 않았던 반면에, 미리 구축했던 기업들의 경우 신속하게 파악 후, 종속성(Dependency) 항목의 취약점에 빠르게 대응이 가능했다. 정상적인 개발 사이클이 항시 유지가 가능하다.

글 / 현태호 깃랩(GitLab) 한국 지사장
정리 / IT동아 김영우(pengo@itdonga.com)

필자 소개

현태호 깃랩 한국 지사장
현태호 깃랩 한국 지사장

현태호 지사장은 30년 이상 컴퓨터 소프트웨어 및 SaaS 비즈니스 분야에서 다양한 경력을 보유한 전문가이다. 2020년 12월부터 공식적으로 깃랩의 한국 지사장으로 부임한 그는 국내의 다양한 엔터프라이즈 기업들이 데브섹옵스(DevSecOps) 문화를 도입해 디지털전환(DT)과 혁신을 이루어야 한다고 강조하고 있다.

현 지사장은 서강대학교에서 경영학을 전공했고, 서울대학교 대학원에서 최고경영자과정(AMP)을 수료하였다. 또한 1997년과 2013년 하버드 비즈니스 스쿨 경영자 과정을 수료했다.

깃랩 입사 이전에는 15년간 한국IBM과 IBM 아시아지역 본부에서 영업 및 마케팅 부서에서 일했으며, 머큐리 인터랙티브에서 전무 이사로서 해당 기업을 애플리케이션 테스팅 1위 기업으로 성장시켰다. 이후 VMware 한국지사장, HP엔터프라이즈 소프트웨어 사업부 총괄 책임자를 역임하며 가상화 소프트웨어, Cloud 및 SaaS 비즈니스를 관리했고, 최근까지 클릭(Qlik)에서 한국 지사장으로 근무했다.

※ 본 콘텐츠의 내용은 IT동아의 편집 방향과 다를 수 있습니다

IT동아의 모든 콘텐츠(기사)는 Creative commons 저작자표시-비영리-변경금지 라이선스에 따라 이용할 수 있습니다.
의견은 IT동아(게임동아) 페이스북에서 덧글 또는 메신저로 남겨주세요.