'grails'에 해당되는 글 16

  1. 2014.07.13 [미완] 권한 관리 - 틀 만들기, Grails
  2. 2014.02.10 [Grails] 파일 업로드 - 여러 개의 파일을 첨부(데이터베이스에 저장)
  3. 2014.02.07 [Grails] Calendar Plugin 사용하기
  4. 2014.02.04 Grails 정렬 방법
  5. 2013.02.09 STS 설치 - Grails 플러그인 추가
  6. 2012.12.30 [Grails] Database Console
  7. 2012.12.29 [Grails] 게시판 만들기 1
  8. 2012.12.29 Grails - 2.2.0
  9. 2012.12.19 Grails - Installation
  10. 2011.10.22 Grails - 1.3.7
  11. 2010.06.12 [Getting Started with Grails] 1. Introduction, 2. Installing Grails
  12. 2010.03.20 Building Twitter with Grails in 40 Minutes
  13. 2010.03.01 [Grails] 포트 변경
  14. 2009.04.10 [IBM dWs] Grails 마스터하기: GORM: 재미있는 이름, 진지한 기술
  15. 2009.04.06 Grails - 서버 재시작시 데이터 삭제되지 않게 하기
  16. 2009.03.06 [IBM dWs] Grails 마스터하기: 첫 번째 Grails 애플리케이션 구축하기

[미완] 권한 관리 - 틀 만들기, Grails

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

[Grails] 파일 업로드 - 여러 개의 파일을 첨부(데이터베이스에 저장)

[Grails] Calendar Plugin 사용하기

http://grails.org/plugin/calendar

> grails install-plugin calendar


start가 Date형으로 선언되어 있으면 Grails가 알아서 처리해 준다. (start를 display:false로 해서 등록 화면에서 나타나지 않게 해야 함.)

Grails 정렬 방법

STS 설치 - Grails 플러그인 추가

- STS 다운로드
zip 파일로 된 배포본을 다운로드받고 압축을 푼다.

- Grails 플러그인 추가


- Grails requires a JDK
Grails 프로젝트 생성시 JDK를 필요로 하면 Installed JREs에서 설정한다. 

[Grails] Database Console

H2 database console
http://localhost:PORT/APPNAME/dbconsole




[Grails] 게시판 만들기 1

- 시작
> mygrails create-app blog
> cd blog
> grails //start mygrails
grails> create-domain-class com.sample.blog.Entry
grails> create-controller com.sample.blog.Entry
grails> run-app

- 스캐폴딩
EntryContoller를 클릭하면 404에러가 난다.
EntryContoller.groovy
다시 호출해본다.
아직은 입력 필드가 없다.

- 도메인 생성
Entry.groovy




- stats 로 확인

Grails - 2.2.0

Grails가 버전이 올라가면서 많은 부분이 바뀌었다.

개발환경에 대화형 모드를 사용했고
자동 완성 기능도 지원한다. Grails 명령어만 지원하는게 아니고, 패키지명에도 지원된다.
HSQLDB 대신 H2를 사용함.[각주:1] Database Console 제공
UI도 변경되었음.
기본적으로 jQuery를 사용
그리고 메세지가 한글이 지원된다.[각주:2]

- Hello World Example
> grails create-app helloworld
> cd helloworld
> grails
grails> create-controller hello
grails-app/controllers/helloworld/HelloController.groovy
def index() { render "Hello World!" }
grails> run-app


  1. 오늘 몇시간 사용해보고, PetClinic 예제도 돌렸는데, UserGuide를 보고야 알았다. 데이터 계층을 잘 추상화해서 개발하는 입장에서 차이점을 모를 정도다. [본문으로]
  2. 1.X에서 이것도 때문에 고생했는데 [본문으로]

Grails - Installation

  1. Download, extract the archive
  2. Set GRAILS_HOME, JAVA_HOME environment variables
  3. Add $GRAILS_HOME/bin/ to PATH
  4. Type grails -version to check installation

Grails - 1.3.7

- Grails Quick Start

- Create project
> grails create-app bookstore
> cd bookstore

- Create Domain class
> grails create-domain-class Book //패키지를 지정하지 않으면 프로젝트명으로 패키지가 구성된다.
> grails create-domain-class com.example.Book

D:\reps\grails_workspace\bookstore\grails-app\domain\bookstore\Book.groovy
package bookstore
class Book {
    String title
    String author
}
- Create controller
> grails create-controller Book

D:\reps\grails_workspace\bookstore\grails-app\controllers\bookstore\BookController
package bookstore
class BookController {
//    def index = { }
    def scaffold = Book
}
- Run Application
> start grails run-app

http://localhost:8080/bookstore/

- 프로젝트 이름에 -, .을 사용하지 말것.
trip-planner : domain, controller는 trip/planner/로 생기는데 view는 trip/만 생김
trip.planner : 상동
tripPlanner : tripplanner/로 생김

[Getting Started with Grails] 1. Introduction, 2. Installing Grails

1. Introduction
Grails는 Spring, Hibernate등을 이용한 오픈소스 웹 어플리케이션 프레임워크다.

달리기 클럽을 위한 RaceTrack이라는 웹 어플리케이션을 만들고 이 어플리케이션을 확장시켜 본다.

2. Installing Grails
JDK 1.5 필요
여기서는 Grails 1.2 사용

- 설치방법
압축을 풀고 , GRAILS_HOME 환경변수를 잡고, GRAILS_HOME/bin을 PATH에 추가한다.

Grails는 HSQLDB를 내장하고 있다.
이 책에서는 나중에 MySQL을 사용한다.

Building Twitter with Grails in 40 Minutes

[Grails] 포트 변경

> grails -Dserver.port=9090 run-app

또는

$GRAILS_HOME/scripts/Init.groovy

serverPort = System.getProperty('server.port') ? System.getProperty('server.port').toInteger() : 8080

또는

$GRAILS_HOME/scripts/_GrailsSettings.groovy 

수정 (2011-11-04 추가, Getting Started with Grails)

 

[IBM dWs] Grails 마스터하기: GORM: 재미있는 이름, 진지한 기술

- Grails 마스터하기: GORM: 재미있는 이름, 진지한 기술
- Mastering Grails: GORM: Funny name, serious technology

- 일대다 관계 만들기
Law of Leaky Abstractions, hasMany 설정, naked object pattern
class Trip{
    String name
    String city
    ...
    Airline airline //object composition
}

class Airline{
    static hasMany = [trip:Trip]
    ...
}
- PK가 노출되는 것을 막기 위해 toString()를 재정의
(이 방법 말고 다른 방법은 없나? 디버깅 때문에)

- static constraints
필드 순서 지정
데이터 유효성 검증(grails-app/i18n/messages.properties)

- GORM DSL
하이버네이트 HBM 매핑이나 어노테이션을 사용할 수도 있지만 Grails는 static mapping에서 한다.(naked-object 방식)
레거시 테이블 사용시 유용

- DataSource.groovy
새로운 환경을 추가할 수 있다.
dbCreate 설정(hibernate.hbm2ddl.auto)
    create-drop, create, update
데이터베이스 변경




Grails - 서버 재시작시 데이터 삭제되지 않게 하기

> grails prod run-app //prodDb.script 에 데이터가 저장된다.
grails-app/conf/DataSource.groovy에서 development 설정을 production 과 동일하게 둔다.
hsqldb를 사용하므로 파일에 저장되도록 한다.
dbCreate = "create-drop" //update 로 수정한다.
url = "jdbc:hsqldb:mem:devDB" //jdbc:hsqldb:file:devDB;shutdown=true 로 수정한다. devDB.script 에 데이터가 저장된다.

또는 서버 시작시 데이터를 넣는다.
conf/BootStrap.groovy
class BootStrap {

    def init = { servletContext ->
        new Book(author:"Stephen King",title:"The Shining").save()
        new Book(author:"James Patterson",title:"Along Came a Spider").save()
    }
    def destroy = {
    }
}

- 참고 : each문 사용




class BootStrap {

    def init = { servletContext ->
        if(GrailsUtil.environment == "development"){

            new Tag(name:"Work").save()
            new Tag(name:"Home").save()
            new Tag(name:"Study").save()

            def admin = new User(userId:"admin", password:"grails").save()
            def testUser = new User(userId:"test", password:"test").save()
            def testUser2 = new User(userId:"testA", password:"test").save()

            (1..11).each{
                new Entry(title:"$it", content:"content$it", user:admin).save()
            }
            new Entry(title:"test", content:"content", user:testUser).save()
            new Entry(title:"123", content:"456", user:testUser2).save()
        }
    }
    def destroy = {
    }
}


[IBM dWs] Grails 마스터하기: 첫 번째 Grails 애플리케이션 구축하기

- Installation

- Sample
> grails create-app trip-planner
> cd trip-planner
> grails create-domain-class Trip
Add member variable to grails-app/domain/Trip.groovy
> grails generate-all Trip
> grails run-app

Browse to http://localhost:8080/trip-planner
- 포트 변경




- 동적 스캐폴딩
trip-planner/grails-app/controllers/TripController.groovy
class TripController{
    def scaffold = Trip
}
전체 코드 15줄(grails stats 로 확인가능)로 CRUD 기능을 처리하는 웹어플리케이션을 작성할 수 있다.

- 참고자료
IBM developerWorks : Grails 마스터하기
NetBeans : Introduction to the Grails Web Framework

[Grails1.0 사용자 가이드] 전체 목록
Grails Korean Home