본문 바로가기
Lecture/Grails

[Grails Part1-2] Hello Grails!

by cusmaker 2014. 12. 1.
반응형

안녕하세요 cocy입니다.

이번에는 지난번 포스팅에 이어 프로젝트를 생성해보겠습니다.


이클립스 기반이기때문에 크게 이질감이 없으실 겁니다.

프로젝트 생성도 크게 다르지 않습니다.

GGTS를 실행하면 나오는 Dashboard를 이용하셔도 되고,

Project Explorer 에서 우클릭 New > Others > Grails Project를 이용하셔도 됩니다.

그럼 다음과 같은 창이 뜹니다.



그림 1-1 Grails Project 생성


프로젝트 이름을 입력하시고 Finish를 눌러줍니다.

이때 주의하실점은 Java 버전은 1.6이상이어야하며,

JRE가 아닌 JDK로 잡아주셔야합니다.

tools.jar를 못찾는 경우가 바로 그러한 경우입니다. 이럴경우 다음 주소를 참고하시면 되겠습니다.

http://blog.daum.net/liberalis/13222450


프로젝트 추가가 끝나면 실행해 볼 차례입니다.

프로젝트 우클릭 > Run As  > Grails Command (run-app) 으로 실행합니다.

기본 포트는 8080입니다. 


그림 1-2 Grails 기본 Project 실행결과


정상적으로 실행되면 위의 화면이 나타나게됩니다.


그럼 지금부터 간단하게 

Grails의 기본 디렉토리 구조에 대해서 살펴보겠습니다.

디렉터리포함된 파일들
grails-app웹애플리케이션의 그레일스 관련된 파일들
conf데이터소스와 초기화관련 설정 파일들
controllers그레일스의 모든 컨트롤러, 처음에는 비어 있다.
domain그레일스의 모든 도메인 클래서(모델들), 처음에는 비어 있다.
i18n국제화를 위한 메세지 번들
service그레일스의 모든 서비스 클래스, 처음에는 비어 있다.
taglib그레일스의 모든 태그 라이브러리
views그레일스의 모든 뷰(GSP 또는 JSP), 처음에는 비어 있다.
layouts모든 사이트매시 레이아웃
grails-tests그레일스의 모든 단위 테스트, 처음에는 비어 있다.
hibernate(옵션) 하이버네이트 설정과 매핑 파일들
libjar형태의 추가 라이브러리들
spring스프링 설정파일(들)
src
groovy추가 그루비 소스파일들. 처음에는 비어 있다.
java추가 자바 소스파일들. 처음에는 비어 있다.
web-app웹 애플리케이션 문서 루트 디렉터리
csscss용 디렉터리
images이미지용 디렉터리
js자바스크립트용 디렉터리
WEB-INFJ2EE 메타 정보(web.xml등의)
classes컴파일된 클래스들. 처음에는 비어 있다.
tld컴파일된 태그 라이브러리들

(출처 : http://www.gliderwiki.org/wiki/183 )


수고하셨습니다. 지금은 한번 쭉 훑어보기만 하겠습니다.


다음은 Hello Grails! 를 찍기 위해 컨트롤러를 생성해 보도록 하겠습니다.

Grails의 모태인 Ruby on Rails 자체가 CUI기반이기때문에 

Grails역시 콘솔 명령어에 더 친숙합니다.

이클립스에서도 이런 콘솔명령어를 입력하기 위해 입력창을 일단 엽니다.

프로젝트 우클릭 > Run As  > Grails Commend...


그림 1-3 Grails Generate Controller


커맨드 입력창에 다음의 커맨드를 입력합니다.

create-controller hello

컨트롤러를 생성하는 명령입니다.


실행후에 프로젝트 디렉토리안의 controller를 보시면 프로젝트명의 패키지와 컨트롤러가 생성된 것을 확인 하실 수 있습니다.

컨트롤러의 확장자는 groovy인데요, 

그루비는 Grails에서 사용되는 언어로 자바와 비슷하지만 

웹개발에 좀 더 최적화된 개량된 스크립트 언어입니다.


그루비의 특징은 일반 스크립트언어와 달리 실행시 자바의 바이트코드로 컴파일되어 JVM위에서 실행이 된다는 것입니다.

컴파일된 바이트 코드는 자바와 호환되기 때문에 자바와 그루비간의 호환성은 두말 할 필요가 없습니다. 

정리해보면 그루비는 스크립트의 동적인 특성과 컴파일되어 속도 및 안정성 이 두가지를 모두 겸비한 언어라는 것입니다.


그루비의 이러한 특성중 Grails의 장점 또하나는

바로 class파일을 변경해도 재컴파일이 필요없다는 것입니다!

기존의 jsp 개발환경에서는 java파일을 수정하게되면 웹서버를 재시작해야하는 번거로움이 있었으나,

그루비는 해당 파일을 빠르게 컴파일하여 실시간으로 결과를 볼 수 있게 해줍니다.


package reviews

class HelloController {

    def index() { }
}


코드를 확인하시면 아주 심플합니다.

메소드로 보이는 index의 블럭 안에 다음의 코드를 넣어주세요.

render "Hello Grails!"

render 메소드(?)는 Java로 치면 System.out() 메소드와 동일하다고 생각하시면 됩니다.

Grails에서는 세미콜론을 사용하지 않습니다.

스크립트 언어답게 그루비는 변수타입에 관대(?)라기보다 유동적인 def라는 타입을 지원합니다.

그렇다면 지금 render 의 반환형은 String으로 볼 수 있겠죠.


이클립스 콘솔창에서 소스파일이 컴파일된것을 확인하시고

기존에 띄워둔 화면을 새로고침하시면 다음 화면을 보실 수 있게 됩니다.



그림 1-3 Hello Grails!

index에서 컨트롤러가 추가된 것이 보이네요.

추가된 컨트롤러를 누르면 Hello Grails가 보일겁니다.

수고 하셨습니다.