S1A 2008 둘째날 – Grails
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로 되어있다면 어쟀을까 궁금해진다.
S2가 Groovy를 포함했다는 소식을 들었을때,
Groovy가 뜨겠구나 해서 국내 책을 찾아봤는데 한권도 없더라구요…
모 AF에도 Groovy를 상당히 사용해서 앞으로 기대할만한 기술인듯 하군요.
감사히 잘 읽었습니다. ^^*
Max/ Groovy, Grails 책이 벌써 12권이나 나왔는데.. 국내는 아직이군요.
플러긴 시스템 넘조아… 반했어
국내에도 얼른 Groovy와 Grails에 대한 관심이 높아졌으면 합니다.
1.0도 꽤 멋있었는데 1.1도 많이 좋아지더라구요. 더욱더 자연스러워지는 느낌이랄까요 ^^;;
좋은 포스팅 감사합니다.