Korean Quick Start

빠르게 시작하기

Grails 프로젝트 만들기

Grails를 설치했다면, 내장된 타겟을 사용하여 새 프로젝트를 생성할 수 있습니다:

grails create-app

create-app 타겟은 프로젝트의 이름을 물어볼 것이고, 아래와 같은 프로젝트 구조를 만들어냅니다:

%PROJECT_HOME%
    + grails-app
       + conf                 ---> 데이터 소스 등과 같은 설정 산출물(artifact)들을 위한 위치
       + controllers          ---> 콘트롤러 산출물을 위한 위치
       + domain               ---> 도메인 클래스를 위한 위치
       + i18n                 ---> 국제화(i18n) 메시지 번들을 위한 위치
       + services             ---> 서비스 클래스를 위한 위치
       + taglib               ---> 태그 라이브러리를 위한 위치
       + views                ---> 뷰(view)를 위한 위치
           + layouts              ---> 레이아웃을 위한 위치
   + lib
   + spring                    ---> 생략 가능한 Spring 설정
   + hibernate                 ---> 생략 가능한 Hibernate 설정
   + war
       + WEB-INF

데이터 소스 설정하기 (생략 가능)

"create-app" 타겟은 "<..>/grails-app/conf" 디랙토리에 몇 개의 데이터 소스 산출물을 생성해줍니다. 각 데이터 소스는 각각의 표준 환경을 대표합니다. 개발 환경을 위한 데이터 소스는 DevelopmentDataSource, 테스트 환경을 위한 데이터 소스는 TestDataSource, 마지막으로 프로덕션 환경을 위한 데이터 소스는 ProductionDataSource 입니다. 다음 모든 예제는 개발 환경을 위한 데이터 소스를 사용하는 것을 가정하고 있습니다. 환경에 대한 더 자세한 정보는 Korean Configuration 페이지를 참고하세요.

기본값으로 메모리 기반 HSQLDB를 사용하도록 설치되어 있습니다(테스트를 위해서는 훌륭하지만 실제 배포시에는 그리 유용하지 않습니다). 따라서 이 단계는 생략 가능합니다:

DevelopmentDataSource.groovy
class DevelopmentDataSource {
   boolean pooling = true
   String dbCreate = "create-drop" // one of 'create', 'create-drop','update'
   String url = "jdbc:hsqldb:mem:testDB"
   String driverClassName = "org.hsqldb.jdbcDriver"
   String username = "sa"
   String password = ""
}

데이터 소스를 설정하는데 필요한 작업은 단순히 원하는 데이터베이스와 드라이버를 사용하기 위해 설정값을 바꾼 후 드라이버 jar 파일을 <..>/lib 디랙토리에 복사하는 것이 전부입니다.

도메인 클래스 생성하기

(프로젝트 이름이 "my-project"라고 가정하고) "cd my-project" 명령을 입력하여 프로젝트의 루트 디랙토리로 이동한 후 "grails create-domain-class" 명령으로 타겟을 실행하고 도메인 클래스의 이름을 입력합니다. 도메인 클래스는 영속적인 산출물(persistent artifact)이고 도메인 클래스의 모든 속성은 자동으로 데이터베이스에 저장됩니다. 더 자세한 내용은 GORM (Grails Object Relational Mapping)을 참고하세요:

Book.groovy
class Book {
    Long id
    Long version

    String title
    String author
}

이 단계에서, 아마 테스트 데이터를 몇 개 만들어넣고 싶을 것입니다. 적절한 장소는 "<..>/grails-app/conf" 디랙토리에 있는 Grails 애플리케이션 부트스트랩 클래스의 "init" 클로저 입니다:

new Book(author:"Stephen King",title:"The Shining").save()
new Book(author:"James Patterson",title:"Along Came a Spider").save()

콘트롤러 생성하기

콘트롤러는 Grails 애플리케이션의 중심으로써, 웹 요청을 처리하고 요청 URL을 콘트롤러 클래스와 콘트롤러 클래스 내부의 클로저에 매핑하는 역할을 합니다.

"grails create-controller" 명령을 입력하여 타겟을 실행하고 콘트롤러의 이름을 입력하세요. 현재 우리가 따라하고 있는 예제에서는 "book"을 입력합니다. 이제 grails-app/controllers/BookController.groovy 파일이 생성되었을 것입니다. 이 파일을 열어서 아래와 같이 수정하면 동적 스캐폴딩 을 통해 애플리케이션의 나머지 부분이 런타임에 자동으로 생성됩니다:

class BookController {
   def scaffold = Book
}

Grails 실행하기

Grails 애플리케이션을 실행하기 위해서는 다음 타겟을 실행합니다:

grails run-app

이 명령은 8080 포트를 사용하는 Jetty 서블릿 엔진 인스턴스를 실행합니다. 9090과 같이 다른 포트를 사용하고 싶으면 grails -Dserver.port-9090 run-app 을 입력하세요. 책 목록 페이지에 접근하려면 브라우저를 실행하여 아래 주소를 입력하세요:

http://localhost:8080/my-project/book/list

또는, "list" 클로저가 BookController의 기본 액션으로 지정되어 있으므로 아래와 같이 입력해도 됩니다:

http://localhost:8080/my-project/book

Labels

 
(None)
  1. Nov 08, 2006

    Park Beom Jin says:

    도메인 클래스 생성하기에서 grails generateall이 아니라 grails createdomainclass가 되어야 할 거 같네요.

    도메인 클래스 생성하기에서

    grails generate-all이 아니라 grails create-domain-class가 되어야 할 거 같네요.