카테고리 없음

그루비 1.6에 대한 기욤의 글

jintopark 2009. 2. 28. 21:01
기욤이 그루비 1.6에 대해 자세히 설명한 글이 InfoQ에 올라왔다. 가장 큰 변화는 속도 개선이라고 한다.

속도에 대해  ..
바라던 바고, 당연히 앞으로도 계속 진행해야 할 것이다. 현장에서 써보면 그렇게 많이 느리다는 생각은 들지 않는다.

다중 할당은 ..
가끔은 있었으면 하고 바랄 때가 있었다. 고마운 일이다.

어노테이션 완전 구현..
나는 잘 안쓰는 기능인데, 어쨌든 이번 버전부터 모든 기능을 지원하게 만들었다고 한다.

리턴 생략 (if,else, try,catch, finally)..
별로 좋아보이는 문법이 아니다. 패스

AST 변환..
꽤 재미있는 기능인데, 역시 익숙해지려면 시간좀 걸리겠다.  말로 설명하면 길고, 간단하게 예제중에@Singleton이라는 것을 보자

아래는 전형적인 싱글톤 클래스다

public class T {
    public static final T instance = new T();
    private T() {}
}
한 줄이면  같은 코드를 만들 수 있다.
@Singleton class T {}
이런 인자를 주면 어떻게 될까

@Singleton(lazy = true) class T {}
생성되는 코드는 이런 식이 된다.
class T {
    private static volatile T instance
    private T() {}
    static T getInstance () {
        if (instance) {
            instance
        } else {
            synchronized(T) {
                if (instance) {
                    instance
                } else {
                    instance = new T ()
                }
            }
        }
    }
}

이 밖에도 @Immutable, @Lazy, @Delegate, @Newify, @Category, @Mixin, @PackageScope, @Grab 등이 있다.

이외에도 읽어볼만한 내용들이 꽤 있는데, 실전에서 적용해보지 않은 상태라 뭐라 말하기 힘들다. 재미있어보이거나, 적용해보게되면 또 올리겠다.