프로그래밍 그루비

저자
디에크 쾨니히, 기욤 라포르쥬, 앤드루 글러버, 폴킹, 존 스킷 지음
출판사
인사이트 | 2009-03-02 출간
카테고리
컴퓨터/IT
책소개
프로그래밍 그루비 는 그루비의 문법과 사용하는 법을 이해하기 쉽...
가격비교 글쓴이 평점  

짬짬이 그루비Groovy를 살펴보기 시작했다. 순 그레들gradle을 능숙하게 다루기 위한 목적으로 살펴보고 있는데,
그루비가 가지고 있는 매력도 상당하다.

Type plus(Type type) {} 를 재정의하니까 다른 형태로 동작한다.

package kr.pe.ihoney.groovy.study.begin

class Money {
    private int amount
    private String currency

    Money(int amount, String currency) {
        this.amount = amount;
        this.currency = currency;
    }

    /**
     * 재정의된 plus(+) 연산자
     * @param other
     * @return
     */
    Money plus(Money other) {
        assert null != other
        if(other.currency != currency)
            throw new IllegalArgumentException("Cannot add $other.currency to $currency");

        return new Money(amount + other.amount, currency);
    }

    @Override
    public int hashCode() {
        amount.hashCode() + currency.hashCode()
    }

    @Override
    public boolean equals(Object other) {
        if(null == other) return false
        if(!(other instanceof Money)) return false
        if(currency != other.currency) return false
        if(amount != other.amount) return false
        return true
    }
}
package kr.pe.ihoney.groovy.study.begin;

import static org.junit.Assert.*;

import org.junit.Test;

class MoneyTest {

    Money money

    @Test
    public void test() {
        def bulk = new Money(1000, "WON")
        assert bulk
        assert bulk == new Money(1000, "WON") //재정의된 ==(equals) 연산자 사용
        assert bulk + bulk == new Money(2000, "WON") // 재정의된 +(plus) 연산자 사용
    }

}


스프링 등 다양한 라이브러리에서 Groovy DSL을 지원하고, 그레들gradle 사용도 늘어나면서 그루비Groovy(http://groovy.codehaus.org/)를 학습해야겠다는 생각에 프로젝트를 생성했다.

  • rocking-the-groovy - github
    gradle init --type groovy-library
    
    로 생성한 프로젝트를 이클립스에 import 하고 실행하려고 해도 정상적으로 인식이 안되는 문제에 봉착했다(지금 생각하면 매우 간단한 문제였는데… 역시 기초는 중요하다).

수동으로 환경설정을 하면 어찌어찌 실행할 수 있게 되기는 했는데 왜 그랬는지 풀 수 있는 방법을 알고 싶었다.

그러다가 문득…

‘eclipse’ 플러그인을 넣었던가?

하는 생각이 스쳐지나간다. .gitignore 내에는 이클립스와 인텔리제이에서 생성하는 생성물들에 대한 목록은 추가시켜놓고, 정작 build.gradle 에다가 이클립스 플러그인을 넣었던가? ㅡ_-)?


아니나 다를까…
추가하고 다시 프로젝트를 임포트 하니 정상적으로 동작한다.
하아. 머리가 나쁘면 몸이 고생한다더니...

참여링크 : http://onoffmix.com/event/19279

다른 분들과 함께 열심히 준비중인 컨퍼런스가 열립니다. ^^ 많은 참여 부탁드립니다.


어제 권남님이 그래들gradle 튜토리얼을 진행해주실 때 프롬프트 옆에 깃의 브랜치명이 나타나는 모습을 보고 신기해서 찾아봤습니다. 그러다가 발견한 곳이
tag를 checkout 할 때 detached 라고 나오는 것이 보기 싫어서 찾아봤다.
http://oliverdavies.co.uk/blog/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt
에 나와있는 일부 쉘parse_git_tag 을 추가해서 적용 후 확인 OK.

git branch 를 checkout 했을 경우:


git tag에 대해서 checkout 했을 경우:



클라우드 컴퓨팅 환경에서 프로젝트를 생성하고 코딩하고 배포까지 한큐에 할 수 있는 서비스가 나왔다.

https://codenvy.com/

구글google이나 깃헙github 계정을 이용하여 signup하고 현재 서비스되고 있는 PaaS에 배포설정까지 가능하다.

codenvy.com 에서 지원하는 기술들이다. 선택하는 기술들에 따라서 배포가능한 PaaS가 달라진다.

[Java Spring] 기술을 선택한 뒤, 선택가능한 PaaS 서비스

[None]을 선택하고 application을 실행했다.

codenvycorp.com 에 앱을 생성하고 배포하여 테스트해볼 수 있다.

클라우드 컴퓨팅 환경에서 개발(협업)하고, git 을 이용하여 소스를 관리하고, PaaS에 애플리케이션으로 배포까지 할 수 있는 서비스.

이 서비스의 유료화 정책은 어떻게 될까?

정말 궁금하군. 

+ Recent posts