본문 바로가기

Home > 정보마당 > 공개SW 활용 성공사례

공개SW 활용 성공사례


공개SW 기반 빌드 자동화 솔루션으로 자동화된 개발 프로세스 체계 마련

MMORPG 게임인 ‘모나크(Monarch)’를 개발한 마이어스게임즈(MaiusGames)는 일련의 개발 관련 작업을 일원화하고 자동화하고자 CI(Continuous Intergration, 지속적인 통합) 솔루션의 도입을 모색했다. 그 과정에서 공개SW인 팀시티(Teamcity)를 도입한 마이어스게임즈는 이 솔루션으로 일상적인 개발 프로세스를 자동화하고 소프트웨어 개발 공정을 간소화함으로써 개발 생산성이 높아지고 개발 시간이 단축되는 효과를 얻을 수 있었다.

- 기     관 마이어스게임즈
- 수행년도 2010년
- 도입배경 복잡한 개발 프로세스로 인한 개발상의 비효율성 개선 필요, 다양한 개발툴과 CI 솔루션의 연계 필요
- 솔 루 션 팀시티, 레드마인(Redmine)
- 도입효과 : 개발 시간 단축, 개발 생산성 증대, 코드 무결성 확보, 자동화되고 체계화된 개발 프로세스 구축, 프로젝트 가시성 향상

마이어스게임즈 로고
2008년 설립된 마이어스게임즈는 CJ E&M과의 퍼블리싱 계약을 통해 중세 유럽을 배경으로 판타지적인 요소가 결합된 대규모 부대 전투 게임인 ‘모나크’를 2013년 상반기 서비스를 목표로 개발하고 있는 게임 개발 전문 스튜디오다. 이 회사는 모나크 프로젝트가 시작된 지 3개월여 만에 프로토타입을 지스타 2008의 B2B 관에 출품하면서 그 기술력을 알렸고, 5년여의 시간이 소요되는 대규모 MMORPG 개발을 단 2년여 만에 완료해 업계의 이목을 끌었다. 이처럼 단기간 내에 대규모 프로젝트를 성공적으로 마칠 수 있었던 데에는 국내 유수의 게임 프로젝트에 참여한 전문 인력의 역량 외에 일상적인 처리를 자동화하고 소프트웨어 개발 공정을 간소화해 팀 커뮤니케이션을 개선한 공개SW 기반 CI 솔루션의 도움이 컸다.


비효율적인 개발 프로세스 개선 방안 모색

대규모 프로젝트 성격의 게임 프로세스를 효율화할 방안을 찾던 마이어스게임즈는 이를 가능케 할 솔루션으로 CI의 도입을 고민해왔다. CI 솔루션을 고려한 이유는 무엇일까? 이에 대해 안준영 마이어스게임즈 CEO는 “국내 유수의 게임 개발사를 두루 경험해봤지만 개발 프로세스상의 비효율적인 요소들 탓에 게임 빌드의 불안전성이 높고 팀워크가 무너지는 경우를 여러 번 경험했다”면서 “이를 사전에 예방하고 개발자의 역량을 게임 개발에만 집중시키기 위해서는 CI 솔루션을 개발 프로세스에 안착시킬 필요가 있었다”고 설명했다.
게임 엔진, 개발 툴, 서버와 클라이언트, 그래픽, 사운드 등 다양한 영역이 집약된 게임 프로젝트는 수많은 프로젝트가 상호 연동되고, 배포 목적이나 빌드 환경에 따라 특정 오프셋을 설정해야 하는 등 개발 프로세스가 복잡해 팀원 개개인의 사소한 실수가 개입할 여지가 많다는 게 안준영 CEO의 설명이다.

모나크 게임의 대규모 전투 장면
[모나크 게임의 대규모 전투 장면]


공개SW 기반 CI 솔루션, 팀시티 도입

마이어스게임즈는 우선 상용 CI 솔루션인 파이널빌더(Finalbuilder)를 도입하고 주 간격으로 프로젝트가 자동 빌드되는 개발 프로세스를 설립 초기부터 확립했다. 그러나 파이널빌더는 인터페이스가 복잡하고 스크립트 계층을 제외한 영역의 커스터마이징이 불가능하며 개발 툴과의 연동에 제약이 많아 새로운 대안이 요구됐다. 그 결과 마이어스게임즈는 소스 코드의 일관성을 유지하면서 커밋에 의해 자동 빌드될 뿐 아니라 커스터마이징이 자유로운 공개SW인 팀시티를 도입하기로 결정했다. 최창호 마이어스게임즈 프로듀서는 “다양한 CI 솔루션을 검토한 결과, 라이선스 정책에 따라 상용SW와 공개SW로 나뉘는 팀시티가 기능 완성도가 높고 다양한 툴과의 연동에도 유리해 실시간 빌드를 염두에 둔 CI 솔루션 도입 취지에도 부합했다”라고 설명했다. 젯브레인스가 공개SW로 배포하는 팀시티 프로페셔널 에디션은 통합 서버 기반의 분산형 빌드 제어 툴로, 확장성이 우수하고 다중 IDE를 지원하며 커스터마이징이 자유로워 독자적인 개발 프로세스를 확립하는 데 유리하다. 또한 커밋에 따른 자동 빌드와 시간 간격에 의한 빌드를 지원하고, 중앙 서버 기반의 자동화된 통합 빌드 환경에서 팀원 간 최종 빌드를 공유하도록 함으로써 소스 코드의 무결성을 유지할 수 있다. 세계 유수의 게임 개발사가 이미 도입해 그 우수성이 충분히 입증돼 있는 점도 물론 마이어스게임즈의 선택에 고려됐다.

팀시티 로고


일원화된 개발 프로세스 체계 확립

마이어스게임즈는 주 개발 툴인 비주얼 스튜디오를 비롯해 코드의 일관성을 유지하기 위한 버전 관리 툴인 퍼포스(Perforce), 플래시를 게임에서 이용 가능한 리소스로 컨버전하는 스케일폼(Autodesk Scaleform), 공개SW 기반 버그 트래킹 시스템인 레드마인, 인스톨쉴드, 자체 개발한 저작 툴 등을 팀시티와 연동하고 개발, 컴파일, 디버깅, 디지털 서명, 결제 솔루션, 배포, 패치 등의 여러 서브 프로젝트와 빌드 과정을 팀시티에 통합함으로써 개발 지향적이고 일원화된 자동 빌드 환경을 사내에 구축했다. 여기에 컴파일과 관련된 스토리지 저장 기술을 커스터마이징함으로써 30여분이 소요되는 서브 프로젝트의 빌드를 2분 미만으로 단축시켜 실시간 빌드가 가능해졌으며 주 단위로 통합 빌드도 실시했다. 이로써 비주얼 스튜디오 등의 각 개발 툴에서 생성된 코드가 소스 컨트롤 툴에 체크인되면 팀시티가 이를 감지하고 실시간으로 빌드가 이뤄지는 자동화된 통합 빌드 환경이 완성됐다.


[팀시티 블록다이어그램]


이를 통해 최신 소스가 패키지화하고 배포될 수 있는 상태가 유지됨으로써 통합 빌드 수행 전에 발견하기 어려운 문제와 개발 환경 차이로 인한 컴파일 오류 등을 예방할 수 있었다. 뿐만 아니라 생성일과 마일스톤 등 미리 정의된 규칙에 따라 자동으로 빌드 넘버가 부여돼 롤백이나 이슈 발생 시 통일된 기준에 의해 판단할 수 있게 됐다. 개발 효율성의 향상과 개발 시간 단축을 비롯해 지역별, 배포 유형에 따른 빌드를 프로젝트 추가로 관리할 수 있고, 프로젝트의 가시성이 확보돼 전체 프로세스 진행 상황을 파악할 수 있는 것도 팀시티 도입의 주요 효과로 꼽힌다.


[도입된 팀시티 화면]


2012년 10월 유저간담회에서 모나크의 신규 시스템을 소개하고 시장 가능성을 확인한 마이어스게임즈는 최근 첫 트레일러를 공개하는 등 본격적인 서비스 런칭을 준비하고 있다. 2년여 만에 글로벌 시장을 겨냥한 대규모 MMORPG의 개발을 성공적으로 완료한 마이어스게임즈의 이런 성과는 개발 효율성을 제고하고 팀원 간의 효과적인 협업을 도운 공개SW가 있어 가능했다. 최근 마이어스게임즈는 일원화된 팀시티 기반의 통합 빌드 환경을 바탕으로 웹사이트 등의 부가적인 프로젝트까지 팀시티와 연동할 계획을 수립하는 등 그 적용 대상을 점차 확대하고 있다.

-----------------------------------------------------------------------------------------------------------------------------

[인터뷰]

“개발 생산성 향상 위해 CI 솔루션 우선 검토해야”

안준영 마이어스게임즈 CEO / 최창호 마이어스게임즈 프로듀서

안준영 마이어스게임즈 CEO
안준영 마이어스게임즈 CEO
Q> 설립 초기부터 CI 솔루션에 주목한 이유는 무엇인가

일반적인 기업 환경에서는 팀 규모가 클수록 사람에 의존적인 영역이 더 많고, 이를 개선하기도 쉽지 않다. 이는 개발 팀도 마찬가지이므로 수작업이 필요한 개발 프로세스로 인해 사람의 실수가 팀의 협업이나 프로젝트에 악영향을 미치는 문제를 방지하기 위해서는 수작업을 최대한 자동화할 수 있는 솔루션이 필요하다. 개발자가 개발에만 집중할 수 있는 환경을 마련하는 것이 개발 생산성을 높일 수 있는 가장 효과적인 수단이므로, 이를 가능케 하는 CI 솔루션 중 팀시티처럼 유용성이 검증된 공개SW에 기업들이 더 주목할 필요가 있다.

최창호 마이어스게임즈 프로듀서
최창호 마이어스게임즈 프로듀서





Q> 개발 프로세스 개선을 위한 ‘개발 방법론’도 주목받고 있는데…

개발 효율화 방안으로 애자일 등의 개발 방법론이 화두가 되고 있지만 정작 현업에서는 이를 도입할 만한 여건이 갖춰지지 않은 경우가 많다. 이 때문에 개발 방법론의 무리한 도입이 오히려 업무만 가중시키는 결과를 초래할 수 있다. 따라서 개발 방법론 자체에도 의미를 둘 수 있지만, 그보다는 이를 수행할 수 있는 환경이 갖춰졌는지를 먼저 고민할 필요가 있다. 대부분의 사람들이 변화를 두려워하는 만큼 개발 방법론의 필요성에 대해 먼저 팀원 내에서 공감을 형성하는 것이 무엇보다 중요하다. 이런 점에서 보면 아직까지는 새로운 개발 방법론의 도입에 더 신중할 필요가 있다고 생각된다.



-----------------------------------------------------------------------------------------------------------------------------





- 마이크로소프트웨어 조수현 기자 suhyeoni@imaso.co.kr


- 공개SW 역량프라자


맨 위로
맨 위로