http://www.bloter.net/archives/191407

안드로이드 앱 개발자는 보통 ‘이클립스’라는 도구를 많이 이용했다. 구글은 2013년부터 안드로이드 개발자를 위한 맞춤 개발도구인 ‘안드로이드 스튜디오‘를 지원하고 있다. 아직 정식판을 출시하진 않았지만 기능을 업데이트하면서 사용자들의 피드백을 받고 있다. 이 가운데 눈에 띄는 기능을 하나 꼽자면 ‘그래들‘이라는 빌드 도구이다.

gradle_03_android_icon

구글 “그래들은 안드로이드 빌드 도구의 미래”

그래들은 오픈소스 빌드 도구다. 그래들재단과 그래들웨어라는 업체가 2009년부터 개발했다. 빌드란 앱이 만들어지기 전까지 필요한 소스들을 한 장소에 모으는 작업이라고 보면 된다. 안드로이드라면 apk 파일을 만드는 과정이라고 볼 수 있다. 테스트나 배포, 개발 등도 자동화할 수 있다. 국내 자바 개발자들 사이에서는 2년 전부터 그래들에 대해 관심이 커지는 추세다.

김기완 GDG(Google Developer Group) 안드로이드코리아 운영자는 “아직 국내에 그래들을 사용하는 환경은 별로 없지만, 점차 늘어날 것으로 예상된다”라며 “기업마다 빌드 환경 구성에 대한 내용은 잘 알려져 있지 않지만, 깃허브에서 최근 올라오는 다수의 해외 오픈소스 라이브러리나 프로젝트의 경우 그래들 빌드를 사용하는 것으로 확인됐다”라고 설명했다.

gradle_01googleio▲’구글 I/O 2013’에 소개된 그래들

구글은 지난해 구글 개발자를 위한 행사 ‘구글 I/O 2013’에서 그래들을 공식 지원하겠다고 발표했다. 이 덕분에 개발자들 사이에 그래들에 대한 관심은 더 집중된 상태다. 김용욱 GDG 안드로이드코리아 운영자는 “구글은 안드로이드 빌드 도구의 미래를 ‘그래들’이라 밝히기도 했다”라며 “안드로이드 스튜디오에 적극적으로 그래들을 넣고 있다”라고 설명했다.

[youtube id=”LCJAgPkpmR0″ align=”center”]

☞’구글 I/O  2013′ 중 ‘안드로이드 SDK 빌드 시스템’ 관련 동영상 보기

앤트 vs 메이븐 vs 그래들

과거 안드로이드 개발에선 ‘앤트’ 기반 빌드 도구가 많았다. 안드로이드 이클립스는 앤트 기반으로 제공되기도 한다. 앤트는 초창기 유연함과 쉬운 사용법으로 사랑받는 빌드 도구로 자리잡기도 했다. 최근 안드로이드 개발자가 늘면서 앤트 기반 도구에 대한 아쉬움도 하나둘 늘어났다. 그 중 하나가 리포지토리를 가져오기 힘들다는 점이다. 리포지토리란 데이터를 모아둔 저장소다. 리포지토리를 이용하면 좀 더 다양한 고급 기능을 추가할 수 있는데, 앤트 기반 도구에서는 이를 추가하기 힘들었다.

앤트 기반 도구의 부족함을 채우기 위해 개발자들은 ‘메이븐’에 눈을 돌렸다. 메이븐은 다양한 기능과 리포지토리 지원 기능 덕분에 현업에서 사용자가 늘고 있다. 메이븐도 약점은 있다. XML 기반으로 작동되는 탓에 파일을 설정하는 절차나 작업 과정이 복잡해 개발자 불만을 사고 있다.

gradle_04_gdg_logo

그래들은 기존 앤트 기반 도구와 메이븐이 가졌던 장점을 흡수했다. XML로 처리하는 것보다는 간단히 명령어를 명시하는 것만으로 손쉽게 고급 기능을 추가할 수 있게 했다. 앤트가 가진 유연성도 고스란히 물려받았다. 하지만 아직 개발 초기 단계인 탓에 버전 간 충돌이나 안정성 문제에 대한 지적은 감수해야 한다.

그래들 코드랩

지난 5월3일, 20여명이 넘는 개발자들이 그래들을 배우기 위해  서울 강남의 한 공간에 모였다. GDG 안드로이드코리아가 주최한 ‘그래들 코드랩’ 행사다. 코드랩이란 특정 기능을 개발하기 위해 단계를 나누고 목표를 세워 함께 배워나가는 행사를 일컫는다. 참가자들은 그래들로 안드로이드를 빌드하는 방법을 익히고, 예제 소스를 실행해보기도 했다. GDG 안드로이드코리아 운영진 2명이 강의실을 돌아다니며 회원들의 질문을 받고 오류를 고쳐나갔다.

모임에는 20대부터 40대까지 다양한 개발자들이 참여했다. 모임을 주도한 김기완 운영자는 “이번 코드랩 진행을 준비하는 데 약 6시간 정도 들었다”라고 설명했다. 행사에서 김용욱 운영자는 그래들에 대한 소개 자료를 만들었고, 김기완 운영자는 소스코드를 준비했다.

gradle_02_gdg_oraganizer_kim

▲김용욱 GDG 안드로이드코리아 운영자가 그래들에 관한 소개를 했다.  

김용욱 GDG 안드로이드코리아 운영자는 “안드로이드 스튜디오를 통해 그래들을 접한 개발자들이 호기심과 궁금증을 갖고 찾아온 것 같다”라며 “그래들에 대해 코드랩을 열어보자는 의견은 꾸준히 있었다”라고 설명했다.

“그래들은 자바 언어를 사용하는 거의 모든 환경이나 자바 버추얼머신을 사용하는 대부분의 환경에서 유용하게 쓰일 수 있습니다. 빌드는 원래 복잡해서 잘 관리하기 어려운데, 기존 도구들은 더 어려웠거든요. 앤트는 유연하고 강한 도구지만, 모든 것을 개발자가 알아서 했어야 했어요. 공유하기도 어려웠고요. 저는 앤트 파일이 사실 재사용 가능한 것인지는 의문이 조금 들어요 복잡해진 앤트 파일은 읽기도 어렵고 수정하기도 어려워서 어떤 경우에는 빌드 전담가가 있기도 했던 기억이 있거든요.”

그는 메이븐과 비교해 그래들이 가진 장점에 대해서도 소개했다. “메이븐은 패키징 시스템이 있어 원격에서 자동으로 받아 설치해왔지만 XML 파일이라서 번거로운 절차들이 좀 많습니다. XML 파일을 다른 프로젝트에서 붙여넣기를 하기도 했죠. 메이븐에서는 또 일반적이지 않은 기능들을 처리하긴 어려웠던 것 같아요. XML 파일에 일반적이지 않은 절차를 기록하는 것은 설사 가능하더라도 좀 피하고 싶죠. 그래들은 그 중간을 잘 찾아낸 것 같아요.”

gradle_06_gdg_lecture03

 ▲5월3일 진행된 ‘그래들 코드랩’

김기완 운영자는 안드로이드 개발자로 활동하며, 업무에서 그래들을 사용한 경험을 살려 이번 코드랩을 진행했다. 그는 “각종 라이브러리를 관리하기 편하기 때문에, 라이브러리를 적잖이 사용하거나 앱 하나에 무료·유료·태블릿 버전 같은 다양한 빌드 결과를 원하는 개발자는 그래들을 사용하면 좋다”라고 설명했다.

“매이븐은 빌드 설정파일 자체가 XML로 돼 있기 때문에 정적인 느낌이었다면, 그래들은 그 자체가 그루비(Groovy) 스크립트로 이뤄져 있어요. 그래서 빌드 설정파일에서 코드를 통해 직접 빌드 과정을 제어할 수 있죠. 또 XML 같은 경우는 실제 설정값보다 기본 뼈대에 들어가는 코드의 양도 제법 되기 때문에, 같은 역할을 수행하는 빌드 설정 파일을 놓고 비교해보면 그래들이 상대적으로 적은 코드로 이뤄져 있습니다.”

gradle_08_logo

 

GDG 안드로이드코리아는 2012년 페이스북 그룹으로 시작해 성장한 모임이다.  현재 구글플러스 커뮤니티 기준으로 회원이 2600여명 있다. 지난해엔 200~400명 규모의 행사를 직접 열 정도로 구글 관련 개발자 커뮤니티 중에서는 참여가 높은 편이다. 현재는 안드로이드 개발자 행사를 주로 열고 있지만 곧 안드로이드  UX 등 개발에서 확장된 다양한  요소를 다루는 커뮤니티가 되는 것을 목표로 하고 있다. 코드랩은 회원들의 의견을 받아 주제를 정해 두세달에 한 번씩 연다. GDG 안드로이드코리아에 관한 모든 정보는 구글플러스 공식 계정을 통해 볼 수 있다.

김용욱 운영자는 “안드로이드만큼 오해를 많이 받는 운영체제는 없는 것 같다”라며 “여러 사람들이 대화하는 장을 만들어 안드로이드에서 추상화된 부분에 대해 살펴보고 싶다”라고 말했다. 또 그는 “무조건 최신 트렌드에 대해서만 쫓아는 갈 필요는 없겠지만, 무엇이 있는지 제대로 교류하는 장을 만들고 싶다”라고 덧붙였다.

김기완 운영자는 “많은 개발자들과 만나고 개발 중 일어난 문제점을 공유하고 같이 해결방법을 찾아보고 싶다”라며 “꼭 개발관련된 주제의 모임이 아니더라도 서로 퇴근 후 만나 커피라도 한 잔 할 수 있는 모임을 만들어보고 싶다”라고 포부를 밝혔다.

gradle_05_gdg_codelab_lecture02

▲경품 추천 시간에는 운영자가 직접 코딩한 추첨 프로그램을 통해 일부 참여자들에게 상품을 나눠주기도 했다.