Shinnara's Blog
Talking with Shinnara :: NaraTalk.com

Groovy 시작하기

Computer/Programming/Java 2007/09/10 14:29 by Shinnara

사용자 삽입 이미지
오늘은 Groovy 에 대해 소개해 볼까합니다. 솔직히 Groovy 에 대해 알게된건 얼마안되었습니다. 이글을 쓰기 한시간 전 쯤? 완전 초보지요.. 앞으로 Groovy 에 대해 하나씩 알아가는 과정을 담아볼까 합니다.




먼저 Groovy 의 홈페이지 입니다.

http://groovy.codehaus.org/
http://groovy.codehaus.org/Korean+Home 한글화 페이지

이 페이지의 내용을 조금 옮겨보면 다음과 같습니다.

Groovy 란?

자바 플랫폼에서 실행되는 기민한 동적 언어(agile dynamic language) 이며, Python, Ruby, Smalltalk 언어에서 영향을 받은 많은 특징을 가지고 있습니다. 자바 개발자들은 자바와 비슷한 문법을 사용하여 이러한 특징들을 구현할 수 있습니다.
웹 어플리케이션 개발, 쉬운 쉘 스크립트 사용, Groovy의 JUnit 기능을 이용한 간결하고 의미있는 테스트 케이스 작성, 복잡한 실제 어플리케이션 의 프로토타이핑과 구현은 너무나 간결하고 매혹적입니다.

Groovy는 이미 작성된 모든 자바 객체, 라이브러리와 깔끔하게 동작하며, 어플리케이션 개발스크립팅 모드에서 모두 자바 바이트코드 로 직접 컴파일 됩니다.

간단한 hello world 스크립트:

def name='World'; println "Hello $name!"


객체 직향을 사용한 좀 더 복잡한 코드:

class Greet {
def name
Greet(who) { name = who[0].toUpperCase() + who[1..-1] }
def salute() { println "Hello $name!" }
}

g = new Greet('world') // 객체 생성
g.salute() // "Hello World!" 출력


기존 자바 라이브러리의 사용:
import org.apache.commons.lang.WordUtils

class Greeter extends Greet {
Greeter(who) { name = WordUtils.capitalize(who) }
}

new Greeter('world').salute()


커맨드 라인에서의 실행:

groovy -e "println 'Hello ' + args[0]" World


최근 회자되는 최고의 화두 중의 하나는 "Agile" 일 것입니다. XP(eXtreme Programming), TDD (Test Driven Development), PP(Pair Programming) 등으로 대표되는 Agile 방법론들에 대해서는 익히 들어 알고 계실것입니다. 이러한 방법론에 못지 않게 사용하는 언어 역시 생산성이나 효율에 지대한 영향을 미치게 됩니다. 얼마전부터 큰 반향을 일으키고 있는 Ruby 와 Rails 가 대표적인 예라 할 수 있습니다. 단 몇줄의 코드로 웹서비스를 만들어내는 과정을 통해 그 놀라온 생산성을 만천하에 알리기도 했습니다.

일반적으로 스크립트 언어나 인터프리터 언어가 생산성이 좋습니다. 뭐 당연하겠지요. 보다 결과를 빨리 볼 수 있기도 하고.. 또한 언어 자체의 설계나 기본 개념이 서로 다른 면도 있습니다. 컴파일러 언어의 대표격인 C는 생산성보다는 주로 성능에 맞춰져 있으니까요. 코드를 힘들고 어렵게 짜더라도 더 빨리 실행될 수 있으면 되는 게 C 세계라고 생각합니다. 하지만 개발하는 과정에 있어 가장 중요한 것이 성능만은 아닐 것입니다. 성능 좋은 시스템을 만들기 앞서 해당 시스템의 전체적인 윤곽을 보기 위해 proto type 을 만들어야 하는 일은 개발에 있어 부지기수겠지요.

위의 예에서도 봤듯이, 하나의 작업을 수행하기 위해 할 수 있는 방법은 너무도 많습니다. 중요한 것은 목적에 맞는 방법을 택하는 것이겠지요.

아는 만큼 보인다고 하지요. 결국 해결 방법이 다양함을 알아야 더 좋은 방법을 택할 수 있을 것입니다. 한분야를 깊게 파고 드는 것도 중요하겠지만, 넓은 안목으로 다양성을 인정하며 끊임없이 새로운 것을 익히는 것 또한 그 중요한 일이 아닐 수 없습니다.


0 Trackback, 0 Comment

TRACKBACK :: http://naratalk.com/trackback/128 관련글 쓰기

댓글을 달아 주세요

1  ... 185 186 187 188 189 190 191 192 193  ... 264 
다...... (264)
Computer/Programming (106)
Links (14)
책 읽는 즐거움 (7)
끄적임 (66)
즐거운 과학 나라 (7)
일본 (5)
Study (4)