그루비(Groovy)는 파이썬(Python)이나 루비(Ruby), 펄(Perl)과 비슷한 동적 프로그래밍 언어이다. 스크립팅 언어의 특징을 갖고 있으면서도 컴파일 방식으로 동작한다. 즉 인터프리터를 사용하여 그루비 소스를 바로 실행하는 것이 아니라, 컴파일을 먼저 한 다음에 컴파일된 기계어 코드를 실행하는 것이다.
그루비 소스를 컴파일하면 자바 가상 머신의 바이트코드(bytecode)가 생성된다. 자바 클래스 파일이 생성된다는 것이다. 따라서 그루비를 실행하려면 JVM이 필요하다. 그루비는 결국 자바 클래스로 만들어지기 때문에 자바와 상호 호출이 가능하다. 자바에서는 그루비의 메서드를 호출할 수 있고, 그루비에서는 자바 라이브러리를 100% 사용할 수 있다.
그루비를 처음 만든 사람은 제임스 스트라칸(James Strachan)이다. 2003년 8월, 그의 블로그에서 Groovy 개발이 처음으로 언급되었다. 2004년 3월, 정식으로 JCP(자바 스펙 관리 위원회)에 'JSR241'이라는 이름으로 자바 스펙 요청서를 제출하여 승인을 받았고, 2007년 1월에 Groovy 1.0 버전이 릴리즈 되었다. 그리고 2012년 7월에 2.0이 발표되었고, 2014년 하반기에 3.0 발표를 계획하고 있다.
사실 그루비가 등장하기 전에 유사한 방식으로 작동하는 스크립팅 언어가 존재하였다. 스칼라(Scala)라는 언어이다. 2001년, 마틴 오데르스키(Martin Odersky)에 의해 설계가 시작되어 2003년에 완성되었고, 2004년에 정식으로 발표되었다. 제임스 스트라칸은 그의 블로그에서 스칼라에 대해 이런 말을 남겼다. "누군가 나에게 '스칼라로 프로그래밍하기(Programming in Scala)'라는 책을 보여 주었다면 나는 결코 그루비를 만들지 않았을 것이다." 그래서인지 스트라칸은 2007년 그루비 1.0이 발표되기 1년 전에 조용히 그루비 프로젝트를 떠났다. 그렇다고 해서 그루비가 스칼라로 통합될 것 같진 않다. 그루비는 현재 Gradle과 안드로이드 스튜디오를 통해 그 존재감을 확신시켰고 지금도 계속 영역을 확장해 가는 추세이다. 자바 바이트코드로 컴파일되는 언어가 많아진다는 것은 자바 개발자에게 있어 좀 더 쉽게 코딩하는 방법이 많아진다는 것이기 때문에 기뻐할 일이다. 약간의 학습 시간이 소요되겠지만, 얻는 것에 비하면 아무것도 아닐 것이다.
1. Groovy 실행 원리
그루비 실행 원리를 알아본다. 그루비 소스는 컴파일하면 자바 클래스가 만들어진다. 그루비로 만든 자바 클래스를 실행하려면 groovy.jar와 asm.jar 라이브러리 파일이 필요하다. 실습을 통해 확인해 본다.
# 그루비 프로젝트 생성
1) 이클립스 메뉴바에서 [File] → [New] → [Project...] 메뉴를 선택한다(그림 1).
프로젝트 선택 창에서 [Groovy] → [Groovy Project] 노드를 선택하고 <Next> 버튼을 클릭한다(그림 2).
2) 프로젝트 생성 창에서 프로젝트 이름을 'TestGroovy'라고 입력한다. 그리고 <Finish> 버튼을 클릭하여 프로젝트를 생성한다(그림 3).
- 그루비 클래스 생성
3) Project Explorer 뷰에서 TestGroovy 프로젝트의 src 폴더를 선택한 뒤, 우클릭하여 [New] → [Other...] 메뉴를 선택한다(그림 4).
[Groovy] → [Groovy Type] 노드를 선택하고 <Next> 버튼을 클릭한다(그림 5).
다음 그림과 같이 그루비 클래스 생성 창이 뜨면, 패키지 이름으로 'groovy'를 입력하고, 클래스 이름으로 'Test'를 입력한다. 그리고 <Finish> 버튼을 눌러 클래스 생성을 완료한다(그림 6).
4) Test.groovy 파일을 다음과 같이 편집한다.
package groovy
a = 20
println a
println plus(10, 20)
def plus(x, y) {
x + y
}
println "실행 완료!"
//class Test {}
그루비 소스 파일을 저장하면 자바와 마찬가지로 자동으로 컴파일된다. 프로젝트의 bin 폴더에 가보면 다음 그림과 같이 자바 클래스 파일이 생성된 것을 확인할 수 있다.
- 그루비 클래스 실행
그루비로 만든 Test.class 파일을 실행해 본다.
5) Test.groovy 소스 파일에 대해 우클릭하여 [Run As] → [Groovy Script] 메뉴를 선택한다(그림 8).
그루비 실행 결과가 다음 그림과 같이 콘솔창에 출력될 것이다(그림 9).
# 그루비 클래스의 실행 원리
main 메서드도 없는데 어떻게 실행되는지 궁금할 것이다. 실행 원리는 다음 그림과 같다(그림 10).
그루비 소스를 컴파일하면 앞의 그림과 같이 소스 파일 이름과 동일한 이름으로 자바 클래스 파일이 생성된다. 그루비 소스의 plus() 메서드는 Test 클래스의 메서드로 변환된다. 그 외 메서드 밖에 작성한 모든 코드는 순서에 상관없이 Test 클래스로 변환될 때 run() 메서드 안에 들어간다. Test 클래스가 생성될 때 main() 메서드가 자동 생성되는데, 이 main() 메서드에서 run() 메서드를 호출하는 것이다. 이런 원리로 Test.groovy의 실행 결과가 앞에서처럼 출력된 것이다.
# 명령 프롬프트에서 그루비 클래스 실행하기
이클립스가 아닌 명령 프롬프트(맥에서는 터미널)에서 그루비 클래스를 실행하려면 다음과 같이 명령어를 작성한다. 이 때 자바 클래스 경로(CLASSPATH)에 groovy.jar와 asm.jar 파일이 포함되어야 한다.
java -classpath groovy.jar:asm.jar Test
참고도서 : https://freelec.co.kr/book/1674/
[열혈강의] 자바 웹 개발 워크북
[열혈강의] 자바 웹 개발 워크북
freelec.co.kr
'교재 실습 > 자바 웹 개발 워크북' 카테고리의 다른 글
124. 스프링 IoC 컨테이너 도입부 및 스프링 IoC 컨테이너 사용 준비 (1) (0) | 2022.10.02 |
---|---|
123. Groovy 문법 요약 (1) | 2022.09.29 |
121. Gradle (1) | 2022.09.27 |
120. 퍼시스턴스 프레임워크의 도입 정리 (0) | 2022.09.26 |
119. 실력 향상 훈련 (2) | 2022.09.25 |
댓글