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

공개SW 활용 성공사례

Play framework 2+JAVA, EBean, JGit, Twitter bootstrap+Custom CSS, LESS, H2 Embedded DB

개발자의, 개발자에 의한, 개발자를 위한 SW를 만들다


SW개발 프로젝트에 참여하고 있는 국내 개발자들 사이에 입소문이 자자한 협업 개발 도구가 있다. SVN, GitHub, TeamForge, JIRA, SourceForge 등을 떠올릴지도 모르겠다. 언급한 것들은 한국을 비롯해 전 세계 개발자들에게 사랑받는 대표적인 프로젝트 도구 혹은 서비스라 할 수 있다. 네이버가 선보이고 있는 협업개발플랫폼인 Yobi(이하 ‘요비’)도 조만간 저들 틈에 입성되지 않을까 점쳐본다. 기존 개발 도구들이 가진 한계점을 상당부분 극복했을 뿐 아니라, 무료로 공개해 누구나 편리하게 사용할 수 있다는 점 등 매력적인 요소가 다분하다는 사용자의 평가이다. 이미 알만한 개발자들은 진작에 사용하고 있다는 요비의 요모조모를 살펴보자.

- 기     관 NAVER
- 수행년도 2013년
- 도입배경 코드저장소, 이슈트래커, 코드교환 및 리뷰 등의 기능을 갖춘 프로젝트 관리 솔루션 필요성 대두
- 솔 루 션 Play framework 2+JAVA, EBean, JGit, Twitter bootstrap+Custom CSS, LESS, H2 Embedded DB
- 도입효과 : 프로젝트 관리에 꼭 필요한 기능을 무료로 사용이 가능하고, 웹 저장이 아닌 서버 저장 방식으로 보완 유지, 설치 편의성 제공 등

 


Naver D2는 For Developers, By Developers의 약자로, 개발자들을 위해 개발자들이 직접 만들어 가고 있는 네이버 개발자 지원 프로그램이다. 네이버가 축적한 기술과 지식을 공유하고, 외부 개발자들을 지원해 국내 개발자 역량 강화를 이끌어 업계와 네이버가 함께 성장하는 선순환 구조를 구축해나가고 있다.


처음 요비를 기획하고 현재까지 발전시키고 있는 채수원 네이버랩스 테크리드(TL)는 요비야 말로 네이버 개발프로젝트 중 ‘가장 개발자 지향적이며 순수한 동기에서 시작된 프로젝트다’라고 말문을 열었다. 개발자인 그 스스로가 현장에서 필요를 절감하면서 시작하게 된 프로젝트가 요비이기 때문이다.



사람 관리가 아닌, 개발자를 위한 프로젝트 도구 필요

그는 오랜 기간 개발자로 활동하면서 다양한 프로젝트를 경험했다. 여러 프로젝트를 거치면서 깨닫게 된 사실 하나는, 팀원 모두가 열심히 일을 하지만 어딘가 모를 업무 누수가 발생하더라는 것이다. 예를 들면, 코드 저장에서 야기된 문제라던가, 팀원 간 커뮤니케이션, 이슈트래킹 등에 상당히 많은 에너지가 소모되고 있다는 점이다.


그런 이유로 ‘참여하는 인력이 얼마나 일을 했냐’하는 사람관리가 아닌, 개발 프로젝트 진행 전반에서 발생하는 모든 이벤트를 구성원 모두가 쉽고 간편하게 관리함으로써 프로젝트를 성공으로 이끌 수 있는 방법에 대한 고민이 시작되었다. 사실 이는 여느 개발팀에서도 공통적으로 겪는 문제일 것이다. 그래서 프로젝트의 다양성 만큼이나 여러 방법이 동원되는 것인데 예를 들면, 엑셀, 이메일, 파일서버 사용에서부터 Git(깃), SVN 등의 서비스를 활용하는 방법에 이르기까지 다양하다.

이미 시중에 개발자들이 사용하는 협업 도구들이 있는데 애써 비슷한 것을 또 만든 이유가 궁금했다. 이에 그는 프로젝트 개발에 필요한 기능을 모두 갖추고 있으면서 쉽게 설치가 가능하며 무료로 사용할 수 있는 도구는 극히 드물다고 설명한다.


꼭 필요해 보이는데 왜 많이 없는 것인지에 대한 질문에는 개발 소요 비용이 상당히 높은데다 안정된 테스트 환경이 수반이 되어야하는 등의 이유로 누구든 선뜻 개발에 나서기 어렵다는 것이다. 늘 머릿속에 쓸만한 협업 도구를 만들어 보자는 바람을 가지고 있던 중 네이버로 자리를 옮기면서, 사내 여건상 시도해 볼 만하다는 판단이 섰다고 한다. 사내에서 소수의 몇몇이 모여 시작했고 우선적으로 자신들이 필요로 하는 기능요소들을 최대한 담기 위해 적지 않은 시간을 들여 구체화해 나갔다.



공개SW 철학에 힘을 보태다

명확한 목표를 세워두고 상세화된 사항들을 이번 마일스톤이 마지막이라는 생각으로 우선순위를 정해 순서대로 개발을 진행했다고 초기 개발과정을 설명했다. 특히 눈길을 끄는 것은 공개SW 정신을 실천하는 과정이다. 예를 들어 개발에 착수하기 전에 오픈소스 유사 모듈을 찾아 그것을 쓰고 적당한 것이 없으면 비슷한 것을 골라 수정한 후 이것을 원래 프로젝트에 컨트리뷰트하는 방식을 설정했다.


이렇게 2012년 처음 시작된 요비 프로젝트는 사내에서도 서서히 주목받게 되었다. 특히 네이버의 공개SW 생태계 확산 분위기도 프로젝트에 더욱 힘을 실어 주었다. 공개SW로부터 받았던 유무형적 혜택을 일방적으로 누릴 것이 아니라, 이제는 네이버가 가진 자원을 많은 사람들과 함께 나누자는 것이 그 취지이다. 요비는 네이버랩스(Naver Labs)의 정식 프로젝트로 승격되고 더욱 완성도 높은 프로젝트 개발을 위해 가속도가 붙었다.




▲ Yobi 구조도


요비의 구현 기술을 들여다보면 대부분의 기술 요소로 공개SW를 활용했다. 개발 기본 구조부터 웹 서버까지 모든 기능이 함께 제공되는 프레임워크로 Play framework 2(이하 'play2')를 적용하고, play2에 내장된 ORM(Object Relational Mapping)으로 SQL 작성을 상당수 줄이는데는 EBean을 썼다.


저장소 기능은 구글, 깃허브, 페이스북 등의 엔지니어들이 개발하고 있는 JGit으로 요비의 Git을 구성했다. DB는 성능이 좋은 경량 DB로 쉽게 임베디드 시켜 배포할 수 있는 장점을 가지고 있으면서 play2와 궁합이 잘 맞는 H2 Embedded DB를 적용시켰다. 또한 자체적으로는 디자인 리소스가 많지 않았기 때문에 Twitter bootstrap, Custom CSS, - LESS를 활용함으로써 UI를 좀 더 풍부하게 구성할 수 있었다.



짱짱한 코드저장소, 이슈 트래커, 협업 코드 교환, 코드리뷰 제공

대부분의 프로젝트 관리 툴들은 웹상에서 서비스를 제공하고 있기 때문에 보안에 취약할 수 밖에 없다. 비밀 유지가 가능하게 하는 경우엔 비용이 든다. 요비는 처음부터 ‘설치형 프로젝트 호스팅 SW’를 지향해 웹이 아닌 로컬 서버에 저장이 가능하도록 만들었고, 사용자가 설치된 요비 서비스 전체나 혹은 특정 그룹/프로젝트를 각각 프라이빗/퍼블릭으로 생성이 가능하게 했다. 특히 이러한 기능은 비밀유지가 요구되는 국내 공공 프로젝트나 SI업체에서 활용이 기대되는 부분이다.


또 다른 사용자 지향적인 요비의 장점을 꼽자면 쉬운 설치를 들 수 있다. 윈도운, 맥 뿐 아니라 리눅스 환경에서도 지원이 되며, 별다른 추가 도구들을 설치할 필요 없이 자바7이상, 인터넷이 연결된 환경에서 올인원(All-in-one)으로 설치가 가능하다.


요비의 주요 기능은 코드저장소, 이슈 트래커, 협업 코드 교환, 코드리뷰이다. 여타 프로젝트 관리 서비스에서 일부 기능이 없거나 사용하는데 비용이 많이 드는 기능들을 요비 하나에 담아냈다. 한 곳에 프로젝트에 관한 모든 것을 저장하고 이후에 참여하게 될 사람들에게 온전히 그 내용들이 전승될 수 있도록 하는 것을 목표로 한다.


또한 그 내용이 유기적으로 함께 보존이 가능하도록 유도하고 있다. 이는 코드나 이슈들에 대한 내용을 팀원들이 자유롭게 논의할 수 있고, 프로젝트가 진행되면서 필연적으로 증가하게 될 코드들도 안정적으로 저장될 수 있게 지원하며, 항시 웹에서 조회가 가능하고 필요에 따라서는 원하는 시점으로 다시 돌아갈 수 있어 편리하다.




▲ Yobi 프로젝트 사이트(http://yobi.io), 깃허브에도 공개되고 있다. http://github.com/naver/yobi


특히 개발자들이 꼽는 요비의 장점 중 하나는 편리하고 강력한 코드 리뷰 기능이다. 새로운 기능이 만들어지고 해당코드가 베이스 코드로 합쳐지기 전에 개발팀에서 충분히 코드를 리뷰하고 개선할 수 있도록 편리한 리뷰 기능을 제공하고 있다. 실제로 코드리뷰 기능 때문에 요비 사용을 시작하게 되었다는 팀들이 많다고 한다.



▲ Yobi 코드 리뷰 기능


네이버의 네이버랩스, NHN Next, D2FEST에서도 요비를 상당 부분 활용해 봄으로써 안정성 테스트나 기능개선에 적용했고, 2013년 10월 첫 대외공개 이후 곧 0.9버전의 릴리즈를 앞두고 있다.



사용자 만족도 쑥쑥

요비는 그간 적극적인 홍보를 펼치지 않았음에도 불구하고 개발사들 사이에선 이미 입소문이 났다. 네이버 외에도 현장에서 요비를 활용하는 사례도 늘어나고 있는데 SI업체나 공공관련 프로젝트, 대학 등 다양하다. 실제 요비의 사용기를 들어봤다.


마이다스아이티의 웹솔루션 개발조직을 맡고 이종협 과장은 기존 Visual Studio를 사용하면서 비용적인 부담이 컸기 때문에 공개SW 사용을 시도하게 되었다고. 형상관리는 SVN, 이슈관리 Redmine, 개발 환경도 Window/VC++에서 리눅스/자바 기반으로 바꿨다. 그러던 중 요비를 만났다는 그는 요비의 장점을 크게 ‘고기능’과 ‘무료’라고 꼽는다. 인터페이스가 심플해 기획자, 디자이너, 개발자 누구나 사용이 편리하고, 기능적인 면에서는 프로젝트 관리자의 권한 위임이 가능하다던가 형상관리와 이슈관리를 비롯해 Git과 SVN을 동시에 지원하는 등 꼭 필요한 요소들을 모았다는 것이다. 더구나 이 모두를 무료로 사용할 수 있어 개발팀으로서는 더없이 매력적일 수 밖에 없다고 평한다.


뉴미디어 콘텐츠 분야 마이스터학교인 미림여자정보과학고에서도 요비를 적극 활용하고 있다. 스마트 창작터를 담당하는 함기훈 교사에 따르면, 이전에 다른 외국의 서비스들도 사용을 시도해 봤지만, 학생들이 쓰기엔 기능이 복잡하고 영어가 많다보니 불편했었다고 한다. 이에 반해 요비는 사용이 편리한데다 그간 어려움을 겪었던 속도나 용량 문제, 학생들이 개발한 소스를 외부 사이트에 올려놓는 부담을 덜 수 있게 되었다고 설명했다.


▲ 요비 meetup 현장



하반기 해외 선보일 예정, 한국을 대표하는 공개SW가 목표

네이버랩스의 옥상훈 부장은 최근 NHN Next, D2FEST은 물론이고 네이버 전사차원에서 요비를 활용하고 있으며, 테스트 코드로 테스트하고, 테스트 서버와 베타 테스트 사이트를 운영해 프로젝트 완성도를 한층 높이고 있다고 한다. 향후 엔터프라이즈 버전도 선보일 예정인데 현재 테스트를 통해 수정 요청 사항을 수집하고 사용성 테스트 중에 있다. 또 네이버는 이전에 프로젝트 관리도구로 사용한 JIRA의 데이터들을 요비로 이전하는 작업도 착수할 것이라고 밝혔다.


올 상반기 중 릴리즈될 0.9버전을 해외에 소개하는 것을 시작으로 국내외 홍보를 본격화할 예정이다. 채수원 개발자의 바람처럼 우리나라에서 만들어진 공개SW 프로젝트가 국내 뿐 아니라 해외에서도 널리 활용되고 그로인해 반대로 해외 개발자들도 요비 프로젝트에 참여해 함께 만들어 갈 날이 머지 않을 것이라는 기대감을 가져본다.



[인터뷰]


“이제는 공개SW 철학을 실천할 때”

채수원 네이버랩스 테크리드(TL)


채수원 네이버랩스 테크리드(TL)

개발에 어려운 점은 무엇이었나?

적은 인원으로 개발하면서도 유의미한 수준의 제품을 만들고, 더불어 다른 제품들과 차별화된 장점을 갖게 만들기 위해 늘 고민하고 노력하지만 여전히 쉽지 않다. 단순히 ‘무료’라는 것만이 절대 매력이 되어서는 안된다는 믿음 때문이다. 유저들이 많아지면 그에 따른 다양한 요구사항이 늘어나게 되고 개발자로서의 고충도 덩달아 커지기 마련이다. 큰 부담이 되기도 하지만 그럴때마다 ‘만들고 있는 요비가 최소한 우리들만이라도 즐겁고 편리하게 사용할 수 있는 제품이 될 수 있도록 하자’는 목표를 상기시킨 것이 동기부여가 되었다.


적은 인원이 기획, 개발, 테스트, 사내서비스 운영, 외부 배포 등을 직접 해야하는 과정이 벅찼는데 생각해보면 어떤 개발이든 쉬운 것은 없지 않은가...다만 어떻게 그 상황을 함께 극복해 나갈것인가?에 대한 준비가 필요하리라 본다. 우리는 멤버 각자가 ‘우리의 목표가 얼마나 동기부여가 되어있느냐’라는 인식이 해결의 열쇠였다.



요비 외에 네이버가 개발한 공개SW 프로젝트를 소개해 달라

네이버에서는 개발자 상생 프로그램인 ‘NAVER D2’프로그램의 일환으로 요비 이외에도 여러 종류의 공개SW 프로젝트가 만들어지고 있다. 대표적으로 애플리케이션 성능관리 도구(APM)인 PinPoint(핀포인트), 멤캐시드 클라우드인 Arcus(아커스), 국내 CMS 시장의 과반수 이상을 차지하고 있는 XE(Xpress Engine), 공개SW DB인 CUBRID(큐브리드) 등이 있다. 관련해서는 http://naver.github.io 에 정리돼 있다.



네이버의 공개SW 정책 방향이 궁금하다.

네이버도 많은 공개SW를 활용하면서 큰 도움을 받고 있기 때문에 공개SW 생태계가 더욱 공고화되기를 바라고 있다. 여러 가지 도구와 서비스를 공개SW화하고 있는데 이를 통해 국내외 개발자들과 함께 성장할 수 있기를 기대한다. 네이버가 ‘여러 가지 SW를 공개SW 프로젝트로 진행하는 것’에 대해 기술 최고 책임자인 송창현 CTO의 전언을 빌리겠다.


- 개발자들의 높은 성취감 및 자신의 가치를 높일 수 있는 방법이며,
- Code quality를 높일 수 있는 방법 중 하나이다. 또한
- High-quality SW 개발을 더욱 빠르게 확산시킬 수 있는 방법 중에 가장 중요한 방법이라고 생각한다. 그리고 이 모든게 매우 쿨하지 않는가?




- 공개SW 역량프라자
맨 위로
맨 위로