이번 SpringOneAmerica 2008에서 영회가 Grails의 매력에 푹 빠졌나보다. Groovy와 Grails의 개발자이자 이번에 스프링소스에 합류한 Graeme Rocher에게 메일을 보내서 이번에 발표한 세션 슬라이드와 소스코드를 대뜸 요청했다. 한국에서 하는 컨퍼런스에서 그것을 배껴서 발표할 때 사용하기 위해서 필요하다고 아주 뻔뻔하게 요청을 했는데 친절하게 보내주겠다는 답변을 받았다고 한다. 내년 초 JCO컨퍼런스에서 Grails에 관해서 발표하기로 작정을 한 듯 하다. 내가 좀 꼬시긴 했지만 귀찮아서 언제 준비해서 하냐고 빼더니 사실은 하고 싶은 마음이 있었나보다.

영회의 Grails 세션 발표 때문에라도 내년 JCO 컨퍼런스는 가볼만 할 것이다.

아드리안이 보여준 키노트 못지않은 멋진 데모를 기대해보자. 혹은 좀 버벅거리는 것을 보는 재미도. 아드리안이나 그레이엄처럼 100% 라이브코딩 아니면 안된다고 압박을 가해야지.

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