[기고] ‘컨티뉴어스 딜리버리(Continuous Delivery)’의 중요성

한상훈 모우소프트 대표.
<한상훈 모우소프트 대표.>

정보통신(ICT)이나 소프트웨어(SW) 사업을 성공으로 이끄는 데는 많은 요소가 변인으로 작용한다. 변인 중 시장이 원하는 SW를 적기에 출시하는 것이 가장 중요하다. 시장이 원하는 좋은 SW를 만들려면 시장 흐름과 요구를 파악하는 안목과 이에 바탕을 둔 혁신적 아이디어가 있어야 한다. 혁신적 아이디어를 조합해 제품을 개발하고 발전시켜 나가는 SW 엔지니어링도 중요하다.

최근 성공한 ICT기업, 특히 미국에 본사를 둔 기업이 적용하는 새로운 방법론이 바로 ‘컨티뉴어스 딜리버리(Continuous Delivery)’다. 핵심은 SW 제품을 언제든 출시 가능하게 완전무결한 상태 소스코드를 유지하는 것이다. 컨티뉴어스 딜리버리 체계를 갖추면 언제든 시장 요구사항을 반영한 새로운 제품을 출시하거나 신기능을 추가한 제품을 발표할 수 있다. 컨티뉴어스 딜리버리를 효과적으로 수행하는 데 필요한 기술적 토대는 ‘SSOT(Single Source of Truth)’다. 우리나라 말로 하면 ‘하나의 소스 저장소’ 혹은 ‘단일 소스 저장소’가 된다. SSOT는 세계에 분산된 개발 조직 간 효율적 협업을 위해 데이터센터를 분산 관리하는 것이 아니다. 중앙에 하나의 소스 저장소로 관리해야 한다. SW 제품 개발 시 가장 중요한 부분은 역시 ‘소스코드’다. 최근 다양한 미디어가 SW 제품 개발에 활용되면서 이미지, 미디어 파일과 같은 대용량 디지털 자산도 SW 제품에 중요한 요소다. 이에 따라 버전관리를 할 때 모든 디지털 자산까지 포함해 관리하는 것이 당연한 일이 됐다. 대용량 파일 버전 관리에 SSOT는 매우 중요한 요소다.

대용량 파일은 대부분 오픈소스 버전 관리 툴로 관리가 불가능하다. 때문에 다른 방법을 고려해야 한다. 이런 시장 요구사항을 반영해 개발·발전해 온 SW가 바로 퍼포스(Perforce) ‘헬릭스(Helix)’다. 이미 세계적 대기업이 헬릭스를 이용해 소스코드와 대용량 디지털 자산을 효율적으로 관리한다. 사실 컨티뉴어스 딜리버리 개념은 전혀 새로운 것이 아니다. SW 개발 참가자라면 누구나 한번쯤 생각했을 법한 방법론의 기술적, 현실적 발현이다. 하나의 SW가 발전해온 과정을 기록한다. 또 그 기록이 새로운 프로젝트 참가자에 제공돼 선배 개발자 실수를 반복하지 않게 하는 시스템이다. 프로젝트 수정 사항을 다른 참가자와 공유하고 서로 의견이 그 결과물로 판단되는 빠른 엔지니어링 시스템을 구축하는 것이다. 이런 시스템 토대 위에 자동화된 CI(Continuous Integration)와 코드 리뷰(Code Review)툴 연동은 프로젝트 참가자가 수행하는 사소한 변경 사항까지 반영한 테스트 결과를 빠르게 확인한다. 에자일 개발방법론 TDD(Test Driven Development)도 가능하게 한다.

기술적 한계 때문에 불가능했던 여러 이상적 개념이 여러 기술의 빠른 발전으로 이미 현실에서 실현된다. 점점 커지는 프로젝트 규모와 분산된 개발 센터 간 협업 때문에 고민한다면 반드시 컨티뉴어스 딜리버리를 검토할 필요가 있다. 이미 구글과 삼성, 엔비디아를 비롯한 많은 ICT 선도 기업이 사용하는 SW 개발 방법론이다. 효율적 개발 프로세스, 즉 SW 엔지니어링 시스템 구축이야 말로 비지니스 성공 기초이자 가장 중요한 부분이다.

한상훈 모우소프트 대표 sales@mousoft.co.kr