본문 바로가기 주메뉴 바로가기 푸터 바로가기

사이트맵


Book Mark
[전문가 기고] 모바일 소프트웨어 스타트업의 개발 환경
  • 외부전문가 기고
  • 독일
  • 프랑크푸르트무역관 강환국
  • 2014-12-04
  • 출처 : KOTRA

 

모바일 소프트웨어 스타트업의 개발 환경

 

김태헌 Software Engineer, Heap GmbH

 

 

 

스마트폰을 중심으로 하는 모바일 플랫폼은 새로운 가치 창출을 목표로 하는 창업자에게 매우 매력적인 플랫폼이다. 실제로 수많은 스타트업 기업이 모바일 플랫폼상의 소프트웨어 시스템 개발에 힘쓰고 있는데 본 기고문에서는 필자의 경험에 근거해 베를린의 모바일 소프트웨어 스타트업의 개발 환경에 관해 이야기하고자 한다.

 

많은 스타트업이 이른바 ‘lean startup’이라고 일컬어지는 매우 작고 단순하며 민첩한 개발 방법을 선호한다. 이를 위해 시장에 내놓는 첫번째 제품은 가장 핵심기능만을 가지는 매우 작은 버전으로 정의한다. 이를 ‘Minimum Viable Product(MVP)’라고 부르는데 이 MVP의 목적은 최소한의 자원을 투입해 시장의 반응을 살피고 이를 토대로 제품의 발전 방향을 결정하는 것이다. 가능한한 시장의 반응에 민첩하게 대응하기 위해 제품의 개선은 조금씩 매우 자주 이루어지도록 하는데 이와 같은 짧은 주기의 개선 및 배포에 제품의 개발 환경을 최적화시키기 위해 노력하고 있다.

 

단기간에 새로운 버전을 신속하게 납품(delivery)하기 위해서는 제품의 빌드, 테스트, 적용 및 배포의 자동화가 매우 중요하다. 이를 ‘Continuous Delivery(CD)’라고 하는데 이렇게 자동화된 생산공정(pipeline)을 구축하는 것은 규모가 매우 작은 스타트업에서는 결코 쉬운 작업이 아니다. 그럼에도 불구하고, 많은 개발 팀이 제품의 본격적인 개발 이전에 이렇게 자동화된 개발 환경을 구축하는데 많은 비용을 투자하고 있다. 모바일 소프트웨어 시스템은 보통 클라우드 서버와 클라이언트 앱으로 이루어져 있는 경우가 많은데 서버와 클라이언트 앱은 보통 개별적인 CD pipeline을 가진다. 이 CD pipeline을 구동하기 위해 별도의 서버 하드웨어를 구축하는 경우가 많다. 제품의 개발 전단계에서부터 ‘DevOps’라 불리우는 시스템 개발·운용 팀 간의 투명한 상호보완을 염두에 두고 개발 환경을 구축한다.

 

빈번하고 신속한 업데이트와 동시에 안정적인 시스템의 작동을 보장하기 위해서는 제품의 테스트가 매우 중요하다. 몇몇 agile 개발방법론에서 요구하는 상당한 정도의 테스트 중심 개발 환경(TDD 혹은BDD)의 구축까지는 힘든 것이 사실이지만 제품 개발 코드와는 별도로 테스트 코드를 작성하는 것은 별도의 비용을 발생시킴에도 불구하고 제품의 안정성을 보장하기 위해 반드시 필요한 비용이라는 공감대가 형성돼 있다. 제품의 개별 모듈을 테스트하는 unit test와 소프트웨어의 동작을 점검하는 acceptance test가 위에 언급한 CD pipeline에 통합이 돼 제품이 배포되기 전 자동으로 테스트가 이루어진다.

 

서버와 클라이언트는 자원이 허락하는 한 별도의 엔지니어가 개발을 담당한다. 신속한 개발 및 유지보수를 위해서는 각각의 영역에 특화된 전문인력이 필요하다고 생각하기 때문이다. 프리랜서 개발자의 경우에는 서버와 복수의 클라이언트를 동시에 개발하는 경우도 있지만 보통의 스타트업은 대규모의 네트워크 트래픽과 최신의 UI/UX를 상정하기 때문에 분야별로 별도의 엔지니어를 두는 경우가 많다. 서버의 개발 언어로는 전통적인 Java, Ruby, Python과 더불어 최근에는 Scala, Go 등이 인기를 얻고 있다. 서버 인프라로서는 Amazon Web Service가 인기가 높고 좀더 쉽게 접근이 가능한 Heroku, CloudControl 등도 많이 도입돼 있다. 최근에는 Digital Ocean과 같은 IaaS도 인기를 얻고 있다. 모바일 클라이언트에 있어서는 iOS를 보통 먼저 개발하고 Android를 나중에 개발한다. PhoneGap, Xamarin과 같은 플랫폼 독립적인 개발환경은 특별한 경우를 제외하고는 찾아보기 힘들고 HTML5에 기반한 웹앱 또한 모바일 플랫폼에 있어서는 여전히 인기가 높지 못하다. 한국과 비교해 수준이 낮은 모바일 네트워크 환경에서도 작동을 보장해야 하기 때문에 LTE, 3G, EDGE 등의 초고속과 초저속 네트워크 환경에서의 테스트가 필수적이다. 또한 네트워크가 전혀 잡히지 않는 offline 환경에서의 작동도 매우 신경을 써야 한다.

 

개발 과정의 컨트롤에 있어서는 Jira, Pivotal Tracker 등의 이슈트랙킹 툴이 많이 쓰이지만 기존의 툴에 크게 얽매이지는 않는 편이다. 포스트잇과 화이트보드를 이용한 아날로그적인 툴을 선호 하는 팀도 있고, 모든 것을 Dropbox로 관리하는 팀도 있다. 개발의 진척상황을 공유하기 위해 팀 미팅을 자주 가지지만 짧고 매우 간결한 미팅을 선호한다. 미팅의 시간이 길어지는 것을 방지하기 위해 의자가 없는 높은 테이블을 미팅에 활용하기도 한다. 부득이하게 미팅이 길어질 경우에도 피로가 쌓이면 즉시 휴식을 취한다. 피로한 상태에서의 미팅은 매우 비효율적이라고 생각하기 때문이다.

 

소프트웨어의 개발에 있어서 무엇보다 중요한 것이 ‘사람’이라는 공감대가 형성돼 있다. 제품 개발 인력 간의 의사소통이 원활하도록 사무실 작업공간의 배치 등에 매우 신경을 쓰고 과도한 근무가 되지 않도록 배려를 많이 한다. 과도한 근무는 확장성과 유지보수성이 떨어지는 디자인·소스코드를 생산한다고 믿기 때문이다. 이를 위해 많은 스타트업이 직원의 자율적인 근무시간을 보장하려고 노력하고 있다. 코드리뷰의 중요성에 대한 공감대가 있어서 이를 도입하려고 노력하지만 자원의 제약으로 쉽지는 않다. 자동코드 분석 툴 등으로 이를 보완할수도 있지만 기본적으로는 각 팀원을 신뢰하고 개개인이 최상의 능력을 끌어낼 수 있는 환경을 조성하는데 노력한다.

 

여전히 많은 스타트업이 실리콘밸리의 스타트업 문화를 배우기 위해 노력하고 있지만 베를린만의 색깔을 담아내려는 노력도 있다. 필자가 속한 팀에서는 실리콘밸리와는 다른 베를린 특유의 개성과 다아나믹을 제품의 철학으로 담아내고자 수 많은 시도를 이어오고 있다.  

 

 

※ 이 원고는 외부 글로벌 지역전문가가 작성한 정보로 KOTRA의 공식의견이 아님을 알려드립니다.

 

<저작권자 : ⓒ KOTRA & KOTRA 해외시장뉴스>

공공누리 제 4유형(출처표시, 상업적 이용금지, 변경금지) - 공공저작물 자유이용허락

KOTRA의 저작물인 ([전문가 기고] 모바일 소프트웨어 스타트업의 개발 환경)의 경우 ‘공공누리 제4 유형: 출처표시+상업적 이용금지+변경금지’ 조건에 따라 이용할 수 있습니다. 다만, 사진, 이미지의 경우 제3자에게 저작권이 있으므로 사용할 수 없습니다.

댓글

0
로그인 후 의견을 남겨주세요.
댓글 입력
0 / 1000