어제 잠들기 전에 ROO를 잠깐 본 것이지만 그 신선한 충격은 꽤 강하게 남아있었다. 스프링이나 하이버네이트, RoR등을 처음 봤을 때 못지 않은 감동이었다.

 

내가 생각하는 ROO의 특징과 의미는 이렇다.

  • ROO는 스프링의 기능을 제한하지 않는다. 로우레벨의 스프링의 모든 기능을 다 활용할 수 있도록 열려있다. 그런면에서 프레임워크가 필연적으로 가져오는 추상화가 발생하지 않는다.
  • ROO는 DDD스타일의 패턴을 지원한다. 투명한 영속성을 가지게 하는 JPA(Hibernate)와 로직을 도메인에 집중시키고 도메인을 트랜잭션 경계를 정의해준다. 구지 1:1로 대응이 될게 뻔한 Domain-Repository를 통합시켜주었다. 물론 여기에는 static한 방식으로 Finder메소드를 선언했다는 특징 또는 단점이 있다. 이는 아마도 RoR 스타일을 염두에 둔 것 같은데, 이에 대해서는 사실 좀 논란이 있을 수도 있다고 보여진다.
  • ROO는 POJO domain, controller를 사용하게 해준다. 투명한 Test(test에도 inter-type declaration이 적용됐다)와 POJO스타일의 도메인객체 응용이 가능하게 만들었다. 이를 위해서 사용한 Inter-type declaration은 정말 멋진 아이디어이다. Adrian Colyer가 조언해 줬을까?
  • ROO는 RAD개발을 가능하게 한다. 현재 ROO의 아키텍처 모델은 RoR과 비슷하다. 자바개발자라면 MVC+Helper 스타일의 구식 struts1 모델을 생각하면 된다. 하지만 훨씬 강력하다. 스프링의 모든 기능과 장점을 다 활용할 수 있기 때문이다. 원래 ROO는 mvc-service-domain-repository/finder 구조의 풀 DDD 아키텍처로 만들어졌다. 하지만 공개용으로 작업하면서 아마도 단순화된 구조로 접근하는 전략을 택한 것 같다.

 

ROO는 많은 aspect를 사용한다. 물론 ROO플러그인을 설치하면 filtering으로 _ROO_의 생성코드를 감출 수 있다. 또한 AJDT를 사용해서 IDE내에서 aspect가 적용된 코드를 직접 다룰 수 있다.

 

대충 분석이니 대충 여기서 마무리 해야겠다. 앞으로 ROO가 피드백을 통해서 발전하면서 어떤 모델이 나올지 기대 된다.

또한 ROO의 등장은 내게도 도전을 준다. 구지 ROO를 직접 사용하지 않더라도, ROO의 개발철학과 스타일을 따라서 ROO스타일의 프레임워크+툴을 만들어 쓸 수 있겠다는 자신감을 준다. 이제 개발을 새롭게 시작하는 스프링 3.0 기반 프레임워크는 ROO방식으로 만들 생각이다. 공개된 ROO와는 다르게 Full DDD 아키텍처를 사용할 생각이지만 어쨌든 같은 방식으로 접근이 가능하다고 생각된다. 기술적으로 도전할 거리도 많을 것 같다. 공부는 해봤지만 한번도 정식으로 적용해본 적이 없는 Inter-type declaration을 이용한 Mixin 방식도 더 깊이 연구해봐야겠다. Ruby의 module을 사용한 mixin 방식에 비해서 AJDT/AspectJ는 스태틱한 언어의 장점을 사용해서 Mixin된 코드의 네비게이션이나 에디팅이 가능하게 해주니 얼마나 좋은가.

 

한편으로는 Grails처럼 다이나믹 언어를 사용하고, 스프링과 하이버네이트를 백그라운드에 감추어서 접근하는 개발방법을, 한편으로는 직접적으로 스프링을 써서 개발하되 이런 반복적인 작업을 멋진 기술을 써서 감춰주어서 개발자들의 수고를 덜어주고 도메인 로직에 집중하게 하는 ROO 같은 것이 있다는 사실에 즐거움을 느낀다.

Related posts:

  1. 테스트 할 수 없는 것을 테스트 하기. Spring ROO와 static method mocking.
  2. Spring ROO 대충대충 분석 (3) ROO의 Inter-type declaration
  3. Spring ROO 대충대충 분석 (2) ROO란 무엇인가?
  4. Spring ROO 대충대충 분석 (1) 공개과정
  5. TSE2006 넷째날 두번째 세션 – ROO
  6. The Spring Experience 마지막날
  7. 뒤늦게 쓰는 SpringOne 2007 셋째날 후기
  8. 유쾌한 이슈처리 재촉 메일
  9. S1A 2008 셋째날 – Spring JavaConfig
  10. Spring 3.0 (8) Core 모듈의 선택 라이브러리 분석
  11. Spring 3.0 (55) getBean(Class) 등장
  12. Spring 3.0 (52) 반쪽짜리 3.0 RC1 공개
  13. The Spring Experience 둘째날
  14. Spring 상식퀴즈 (1) – DI 태클하기 해답편
  15. 미리 보는 Spring 3.0.1의 변경사항

Facebook comments:

to “Spring ROO 대충대충 분석 (4) ROO의 미래와 의의”

  1. You have noted very interesting details ! ps decent internet site . “I’m going to a special place when I die, but I want to make sure my life is special while I’m here.” by Payne Stewart.

  2. You should be a part of a contest for one of the highest quality sites online.
    I will highly recommend this blog!

  3. Spot on with this write-up, I absolutely believe that this site needs a great deal more attention. I’ll probably be back again to read through more, thanks for the advice!

  4. Every as soon as in a while we choose blogs that we read. Listed below are the latest websites that we pick out

  5. Here are some of the web-sites we advise for our visitors

  6. usually posts some really interesting stuff like this. If you are new to this site

  7. Very interesting details you have mentioned , thanks for posting . “My work is a game, a very serious game.” by M. C. Escher.

  8. I was examining some of your blog posts on this website and I believe this website is very informative! Retain posting.

  9. I truly enjoy looking through on this web site , it contains superb content . “Wealth and children are the adornment of life.” by Koran.

  10. Definitely believe that which you said. Your favorite reason appeared to be on the internet the easiest thing to be aware of. I say to you, I definitely get irked while people think about worries that they plainly don’t know about. You managed to hit the nail upon the top and also defined out the whole thing without having side-effects , people could take a signal. Will probably be back to get more. Thanks

  11. just beneath, are a lot of totally not associated web-sites to ours, nonetheless, they may be surely really worth going over

  12. we came across a cool site that you simply may possibly get pleasure from. Take a appear in the event you want

  13. I went over this website and I conceive you have a lot of wonderful info, saved to favorites (:.

  14. Amazing! This blog looks just like my old one! It’s on a completely different topic but it has pretty much
    the same layout and design. Great choice of colors!

  15. My brother suggested I might like this blog. He was entirely right. This post actually made my day. You cann’t imagine simply how much time I had spent for this information! Thanks!

  16. although web-sites we backlink to below are considerably not related to ours, we really feel they may be basically worth a go as a result of, so have a look

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha