본문 바로가기

Groovy

자바의 새로운 날개, 그루비(Groovy)


동적이고 유연한 스크립팅 언어, 그루비(Groovy)


그루비(Groovy)는 자바와 달리 타입에 대해 동적이고 유연한 언어이다. 그루비는 현재 JSR 241에 올라가 있고 오픈소스로 개발이 진행되고 있으며, 앞으로 J2SE 6.0에 정식으로 포함될 것이라고 한다.

J2SE 5.0보다 훨씬 고급 수준의 언어, 코딩량을 현격하게 줄여주고 개발 시간을 단축시켜주는 언어, 리스트와 맵을 위한 리터럴이 언어 자체에 녹아 있는 그루비를 배워 미래에 대비하자.

그 루비 프로그래밍 언어라고 하면 아마도 국내에서는 생소한 독자들이 많을 것이다. 그루비는 태어난 지 이제 1년을 갓 지난 프로그래밍 언어이기 때문이다. 그루비는 지난 6월 말 미국 샌프란시스코에서 열렸던 자바원에서 소개되기도 했다. 파이썬이나 루비를 접해보고 자바에 경험이 있는 독자라면 대부분 그루비도 좋아하리라고 본다. 이 글에서는 그루비의 역사, 맛보기, 더 잘 쓰기를 주제로 하여 그루비의 특징들을 소개하고자 한다.

  • is an agile and dynamic language for the Java Virtual Machine
  • builds upon the strengths of Java but has additional power features inspired by languages like Python, Ruby and Smalltalk
  • makes modern programming features available to Java developers with almost-zero learning curve
  • supports Domain Specific Languages and other compact syntax so your code becomes easy to read and maintain
  • makes writing shell and build script-xs easy with its powerful processing primitives, OO abilities and an Ant DSL
  • increases developer productivity by reducing scaffolding code when developing web, GUI, database or console applications
  • simplifies testing by supporting unit testing and mocking out-of-the-box
  • seamlessly integrates with all existing Java objects and libraries
  • compiles straight to Java bytecode so you can use it anywhere you can use Java

  • 그루비의 역사
    자바가 탄생한 지 이제 어언 10년이 다 되어간다. J2SE 5.0(코드명 : 타이거)까지 나왔으니 청소년기에 접었다고 할 수 있다. J2SE 5.0는 J2SE 1.4에 비하여 언어적인 면에서 많은 것이 바뀌었기 때문에 자바 프로그래머의 입장에서 보면 새로운 자바 구문을 익혀야 하는 부담이 있다.

    그루비는 자바처럼 객체지향 언어이지만 자바에 없는 고급 개념들이 있고, 자바처럼 변수의 타입에 대해 완고하지(statical) 않으며, 동적인(dynamical) 언어이다. 또 그루비로 작성된 소스 파일을 컴파일하지 않고 바로 실행시키는 스크립팅 언어이다.

    그 루비는 미국 출신의 Bob McWhirter과 영국 출신의 James Strachan 두 사람에 의해 창시되었다. 사실 이들 두 사람은 그루비 프로젝트 이전에도 Maven 등 여러 개의 프로젝트를 이미 공동으로 진행하고 있었다. 개발 초기에 밥은 어휘 분석을, 제임스는 유닛 테스트를 담당했다. 그 결과 첫 작품은 2003년 8월 29일에 발표되었다.

    C 언어처럼 기계어 기반의 객체지향 언어로는 C++가 있고, 또 소스코드를 바로 실행시키는 스크립팅 언어로는 셸스크립트, Perl, 파이썬, 루비, Tck/Tl 등이 있다. 한편 자바 가상기계(JVM) 기반의 스크립팅 언어로는 자이썬, 제이루비, 자끌, 빈셸, 라이노 등이 있다.

    이 중에 그루비와 가장 맞먹을 만한 상대는 자이썬이 아닌가 한다. 특히 자이썬에 관하여는 본지를 통해 이미 소개된 적이 있는 것으로 기억한다. 제이루비 프로젝트는 현재 개발이 진행되고 있는지도 알 수 없을 정도로 프로젝트 개발이 너무 느리게 진행되고 있다.

    그루비는 파이썬과 루비의 영향을 가장 많이 받은 언어이다. 언어의 간결함은 파이썬/자이썬의 것을 추구했고, 클로저(코드 블럭) 등의 개념은 루비의 것을 이어 받았다.

    그 루비가 발표된 지 겨우 1년여밖에 안 되었는데도 불구하고 그동안 여러 프로그래머들의 칭찬을 받아왔다. 자이썬이나 루비를 쓰다가 그루비를 접한 프로그래머도 꽤 되는 것으로 알고 있다.  <화면 1>은 2003년 12월에 조사된 JVM용 스크립트 언어의 선호도 조사표이다(출처 : viva.sourceforge.net/republic/2004/01/). 또 <표 1>은 스크립트 언어의 비교표이다(출처 : www.tcl.tk/advocacy).

    Groovy 사이트 : http://groovy.codehaus.org
    Groovy Download : http://groovy.codehaus.org/Download
    Groovy API 1.1 : http://groovy.codehaus.org/api/index.html
    Groovy JDK Method : http://groovy.codehaus.org/groovy-jdk.html
    Groovy User Guide : http://groovy.codehaus.org/User+Guide
    Groovy Getting Started Guide : http://groovy.codehaus.org/Getting+Started+Guide
    Groovy Developer Guide : http://groovy.codehaus.org/Developer+Guide
    Groovy 개발자와 공헌자들: http://groovy.codehaus.org/team-list.html

     




    그루비 다운로드와 설치
    그루비 프로젝트 홈페이지(groovy.codehaus.org)나 다운로드 페이지(dist.codehaus.org/groovy/distributions)를 방문하여 그루비 소스와 바이너리를 구할 수 있다.
    http://www.grails.org/Download



    download groovy code ref - groovy-reference-card.pdf