Skip to main content

[Android] Gradle, Groovy Books

최근 AndroidAndroid Studio 라는 통합 개발툴과 함께 새로운 빌드 시스템을 공개 했다.

그동안 Android 의 유명한 Opensource Library 는 대부분 Maven 을 기반으로 배포되고 있었는데 Android 가 채택한 빌드툴은 바로 Gradle 이다.

Gradle Logo
figure 1. Gradle Logo
Gradle 은 Java 진영에서 Maven 이후 주목받고 있는 차세대 빌드툴 이다.
Ant 와 Maven 의 장점과 함께 더 발전된 기능들을 제공하고 있고,  Groovy 라는 언어를 기반으로 동작 한다고 한다.

나 역시 Maven 까지는 어깨너머로 본 기억이 있지만, Gradle 은 정말 처음인지라 Android 를 하는데 이런것 까지 해야되나 라는 생각이 들기도 한다.

하지만, Android 의 성장과정을 생각해 보면 이러한 빌드툴은 반드시 필요하긴 하다.

최근 Android Project 는 단일 Project 로 진행 되는 경우가 거의 없을 정도로 다양한 Opensource 및 Libraries 를 포함하고 있다.

단순히 Eclipse 에서 Compile 로 Device 에 App 을 올리기에는 덩치가 너무 커지고 있고, 기본이 되는 Build Tool 이 없기 때문에 Ant 나 Maven 등 기존 Java 진영에서 많이 사용하고 있는 여러 Builde Tool 들이 사용되다 보니 개발자 입장에서는 여러 Library 를 사용할때 어려운 점에 봉착 하기도 하기 때문이다.

그런데 이 Gradle 를 공부하기 위해서는 Groovy 라는 언어에 대한 이해가 먼저 선행 되어야 한단다.

figure 2. Groovy Logo
Groovy 가 Java 기반의 언어라고는 하지만 Android 하나 하기도 벅찬데 Build 를 위해 새로운 언어를 공부해야 된다는 점은 부담으로 작용된다.

더욱이 우리나라에 Groovy 번역 도서는 달랑 한권. Gradle 관련 도서는 전무한 상태이다.
그마나 Groovy 와 Gradle 를 자세히 정리한 블로그가 있고, Groovy Korea 가 있어 여러 정보를 얻을 수 있을 것 같다.

당연한 이야기지만 위 사이트들은 Android 에 한정된 이야기만을 하는 사이트 들이 아니다.
나처럼 Android 개발을 위해 Groovy 와 Gradle  에 접근한 사람들에게는 그 내용이 방대하고 어디서부터 시작해야 할지 난감할 것이다.

그래서 오늘부터 Android 개발을 위해 Groovy 와 Gradle 를 공부해 볼 생각이다.
일단은 Groovy 기본을 좀 보면서 Gradle 을 사용할 수 있는 기초를 닦은 후, Android Project 에 적용해보도록 해야겠다.

전쟁에 나가기 전에 준비를 철저이 하듯이, 새로운 언어에 적응하기 위해 책을 구입하고 말았다.

바로 Groovy in Action( 한국판: 프로그래밍 그루비) 와 Building and Testing with Gradle  이다.
figure 3. Groovy in Action
2009 년에 나온 번역서라 시대에 좀 뒤쳐지지 않을까 생각이 들기도 하지만, 엄청 유명한 도서 인데다, 그리고.. 번역서라곤 이거 한권 뿐이다.

figure 4. Building and Testing with Gradle
게다가 Gradle 는 번역서도 없다. 때문에 원서 pdf 를 통해 공부해야 할 판이다. 한글로 써 있어도 어려운 판국에.. 원서라니 .. 하지만 별다른 수가 없으니.. 어서빨리 번역서가 나왔으면 좋겠다..ㅠ

앞으로 계획도 좀 잘 세워서 하나하나 차근차근 배워 나가도록 해야겠다.
한편으로는 새로운 빌드툴을 공부한다는 생각에 의욕이 100%!

Comments

Popular posts from this blog

[GDG Seoul] OSS/Github 입문 CodeLab 후기

작년 이맘때 쯤, GDG Android Korea 에서 CodeLab 을 진행 했었는데, 올해는 GDG Seoul 에서 진행한 "OSS/Gitub 입문 CodeLab" 이란 타이틀로 CodeLab 을 진행하여 참가하게 되었다. git 이나 Github 를 처음 사용하는건 아니였지만, 거의 SVN 처럼 사용 해 온지라, "이참에 재대로 한번 배워보자!" 하는 맘이 컸고, 다른 분들은 어떻게 Github 를 사용하시는지도 궁금했다. CodeLab 은 크게 - OSS 에 대한 설명 및 Newbi 를 위한 Tutorial - Github 및 git 에 대한 Tutorial - CodeLab 순으로 진행 되었다. (딱히 순서에 이름이 없는것 같아서 임의로 붙였다.) 1. OSS 에 대한 설명 및 Newbi 를 위한 Tutorial (뉴비X 님) ( 슬라이드 링크 ) OSS (Open Source Software) 에 대한 간략한 소개와 Linux Kernel 를 예로 Contribute 하는 방법에 대한 이야기를 들을 수 있었다. Android 의 경우만 해도 여러 open source library 의 도움으로 좀더 편하고 쉽게 App 개발을 진행 할 수 가 있는데, 사용하면서 개선한 사항에 대해서 내가 코드에 기여할 수 있겠다. 라는 생각이 많이 들었다. 특히 Newbi 를 위한 주의해야 할 사항이 인상깊었는데, 간단하게 요약 하자면, - coding Style - You are just a newbi here - start from jab  ( 작은 것 부터 시작하자.. 조그마한 작업부터, 혹은 리뷰…) - commit log style - summarized title on First Line - just \n on Second Line - Detailed log after 3rd Line 이정도가 아닐까 싶다. 특히, 의욕이 너무 지나쳐서 너무 많은 것을 커밋...

[Book] 다양한 예제로 학습하는 데이터구조와 알고리즘 for Java

인사이트 에서 Java 를 이용한 자료구조 & 알고리즘 도서가 나온다는 소식을 듣고 기다리고 있었는데, 때마침 JCO 때 인사이트 부스에서 판매하고 있었다. 원래 사려고도 했고, 책도 몇권안남아서 보자마자 바로 구입! fig1. 책 이미지 기다렸던 책이기도 했고, 이참에 자료구조를 재대로 공부해보자 라는 다짐으로 읽기 시작했다. 찾아보니 원서는 Amazon 에서도 별점이 꽤 높아보였다. 아직 초반이지만, 읽으면서 아쉬운 부분을 먼저 좀 써 보려고 한다. 아무래도 많이 기대했던지라, 좋은점 보다는 아쉬운 점이 많이 눈에 보이게 된다. 1. Java 스럽지 않은 코드 인사이트에서 출판한 이 책은 C 버전도 있다. C 버전을 좀 봐야 알겠지만, 아마도 이 책은 C 기반으로 작성 된 후, Java 로 포팅 된 느낌을 강하게 받는다. 역자 서문에서도 저자가 C 기반의 코드로 작성해서 Java 스럽지 못한 부분이 있다고 말하고 있다. 그래도 네이밍 이라던지, 기본적인 코드 스타일이 전혀 Java 스럽지 못하다 보니 보는내내 좀 불편한 기분이 든다. (난 각 언어별로 스타일을 좀 중요시 보는 편이라 아무래도 눈에 많이 거슬리는 편이다.) 또한, 자료구조를 설명하는 과정에서 포인터 라는 단어가 많이 나타난다. 아무래도 C 로 설명한 부분을 Java 로 옮기다 보니 단어 선택이나, 표현방법에서 Java 로 표현하기 애매한 부분이 있는것으로 보인다. C 랑 Java 를 모두 공부했다면 그러려니 할 수 있는 부분이지만, Java 만 조금 알고 있는 상태에서 자료구조를 공부하기 위해 이 책을 구입했다면 아마 설명 부분에서 난해하게 느껴질 수 도 있다. 2. 예제 코드의 오류. 예제코드를 타이핑 하다보면, 스펠링이 틀리거나, 앞에서 소개한 메소드를 사용하는데 메소드명이 서로 다르다거나 하는 문제로 코드가 정상적으로 동작하지 않는 문제가 보인다. 이런 문제는 번역과정에서 조금 아쉬운 문제로 보인다. Amazo...

[Tip] Homebrew 로 설치한 Python 환경에서 GAE Flask 설치하기

2014.07.10 -- Issue -- ~/.pydistutils.cfg 파일을 생성하고 나서 pip install 을 할 경우, permission denied 오류가 발생하는 경우가 있다. 이때는 prefix= 를 삭제하면 정상적으로 설치할 수 있다. 또는, 설치시 아래와 같은 명령어로 설치한다. pip install --user --install-option="--prefix=" <package-name> -------------------------------------------------- Mac 에서 Homebrew 를 사용하면 각종 package 를 편리하게 관리 할수 있다. 그런데 Homebrew 를 통해 Python 을 설치한 환경에서, Google App Engine 의 Flask package 를 설치하기 위해 명령어 ( pip install -r requirements.txt -t lib/ )를 실행하면 아래와 같은 오류가 발생한다. 말 그대로 prefix 를 설정해 달라는 이야기 인데, 해결 방법은 다음과 같다. HOME(~/) 에 .pydistutils.cfg 파일을 생성하고 아래 코드를 추가한다. [install] prefix= 그리고 다시 실행하면 정상적으로 Flask package 가 설치되는것을 확인할 수 있다. Reference 1. stackoverflow http://stackoverflow.com/questions/24257803/distutilsoptionerror-must-supply-either-home-or-prefix-exec-prefix-not-both 2. Github Issue https://github.com/Homebrew/homebrew/wiki/Homebrew-and-Python