Grails is Spring – Key Message.

자바와의 호환(같은 class로 컴파일)등이 장점. 당연히 Spring 2.5의 최신기능을 다 사용할 수 있다.

Plugin을 활용한 확장기능 – ex) Flex

G2One이 스프링소스에 인수되었기 때문에 이제 Groovy,Grails의 적용에 대해서 기업이 스프링소스의 지원을 받을 수 있다. 

2005년 여름 시작, 2008년 초 1.0 릴리즈. 70,000 downloads/mth. 최근 일년간 크게 인기 상승. 프로덕션 사이트에서 사용할 만큼 안정이 되었다는 뜻.

Grails의 철학

  • 이미 있는 성공한 기술을 적극 활용
  • CoC
  • Sensible Defaults

Grails는 SpringMVC의 고레벨의 추상화된 모델. 또한 Spring/Hibernate의 추상화. 스프링의 설정을 자동으로 생성&관리. 어떤 WAS에도 설치 가능.

 

SpringMVC/Grailsㅇ dispatch sequence는 똑같다. Grails View Resolver, Grails Controller…

Spring의 ViewResolver, View, DispatcherServlet, i18n, Multipart… 등을 그대로 사용.

 

GORM – Hibernate스타일의 ORM. – Grails Console을 이용해서 간단히 테스트 해볼 수 있다. (RoR Console과 비슷)

Dyamic Finder. Criteria. Cache. Lock Strategy 등 지원. – 거의 Hibernate의 기능을 최대한 활용하는 듯.

 

GSP(View)를 사용할 때 groovy로 만든 간단한 custom tag를 쉽게 적용할 수 있다.

 

Plugins – conventions, register bean def 등의 다양한 기능을 추가해서 사용할 수 있다. GrailsApp과 ApplicationContext 양쪽에 적용가능. 플러긴을 이용해서 런타임 중에 스프링의 특정 부분에 대한 설정을 추가할 수 있다.

 

데모 Twitter 만들기

Acegi plugin을 설치하면 기본 인증과 관련된 코드가 자동생성된다. Principal Info를 Acegi를 통해서 간단히 가져아서 사용 가능(PrincipalInfo.username). Domain Model에 constraint를 같이 설정할 수 있다. RoR비슷. <g:formRemote .. > – Ajax Form 기능을 간단히 만들 수 있다.

Searchable plugin을 설치하면 검색-목록 스타일의 기능을 간단히 만들 수 있다. 초간단.

스프링의 어떤 설정이라도 추가할 수 있다. (ex. Cache bean 등록후 GORM find metod에서 사용하기)

ActiveMQ plugin을 이용해서 JMS – Message Driven POJO 개발도 가능(JmsTemplate을 바로 사용가능). 스프링에서 되는 것중 안되는 것이 없다. 오호.

REST style의 publishing 기능. (withFormat { .. html, xml, rss …}) – feed plugin 이용해서 rss등의 포맷지원.

Quartz plugin – Job개발을 간단하게.

Mail plugin – def mailService라고 추가만 하면 바로 메일 전송기능 바로 이용가능.

 

정리

Grails is not just a web framework, Grails is  a platform!

왠만한 유명한 것은 plugin으로 다 되어있다.

  • Test : seleium, fitnesse, code coverage.
  • UI : Flex, GWT, GrailsUI(YahooUI)
  • Security: SpringSecureity, JSecurity, OPenID.
  • 기타 등등

 

Grails 1.1 – maven support, testing framework의 내장, Scaffolding, Better plugins & GORM. 현재 베타.

Groovy&Grails – 12권의 책이 벌써 나와있다.

 

데모와 다양한 플러그인을 보니 매우 인상적이다. 이전에 스프링을 단지 백그라운드에 사용했다고 느꼈던 것과 달리, 스프링과 거의 자연스럽게 융합되어있는 듯한 인상이다. 스프링 개발자라면 손 쉽게 기능을 활용할 수 있다는 것이 제일 큰 장점이다. 모든 복잡한 로우레벨의 프레임워크를 직접 구현하지 않고, 이용한 것이 성공의 비결이다. 스프링소스의 본격적인 지원에 힘입어서 조만간 큰 인기를 끌 수도 있지 않을까 기대가 된다. JVM과 그 위에서 동작하는 안정적인 엔터프라이즈 프레임워크의 신뢰도 덕분에 도입이 많아질 수도 있을 듯.

RoR로 개발되어서 성능으로 최근 고전하고 있다는 Twitter가 만약 Grails로 되어있다면 어쟀을까 궁금해진다.

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha