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!
데모와 다양한 플러그인을 보니 매우 인상적이다. 이전에 스프링을 단지 백그라운드에 사용했다고 느꼈던 것과 달리, 스프링과 거의 자연스럽게 융합되어있는 듯한 인상이다. 스프링 개발자라면 손 쉽게 기능을 활용할 수 있다는 것이 제일 큰 장점이다. 모든 복잡한 로우레벨의 프레임워크를 직접 구현하지 않고, 이용한 것이 성공의 비결이다. 스프링소스의 본격적인 지원에 힘입어서 조만간 큰 인기를 끌 수도 있지 않을까 기대가 된다. JVM과 그 위에서 동작하는 안정적인 엔터프라이즈 프레임워크의 신뢰도 덕분에 도입이 많아질 수도 있을 듯.
RoR로 개발되어서 성능으로 최근 고전하고 있다는 Twitter가 만약 Grails로 되어있다면 어쟀을까 궁금해진다.
that could be the end of this post. Right here youll locate some web-sites that we feel youll value, just click the links over