Spring ROO 대충대충 분석 (1) 공개과정

지난 3년동안 컨퍼런스에서 자랑만 실컷 하고 정작 실체 공개를 자꾸 미루었던 Spring ROO가 드디어 공개되었다. 원래 ROO는 스프링 시큐리티(구 Acegi)의 개발자인 벤 알렉스가 호주의 대규모 마트의 내부 프로젝트 용으로 만들어서 성공적으로 적용시키고, 그 후로 계속 발전시켜 온 것이다. ROO라는 말은 Real Object Oriented의 약자이고, 호주의 상징인 캥거루의 ROO이기도 하다.

 

ROO의 공개과정

ROO의 처음 발표를 들었던 것은 3년전 TSE(The Spring Experience)에서였다. ROO가 내 관심을 끌었던 것은 그 TSE에서 하나의 트랙을 차지할 정도로 당시에 폭발적인 관심을 끌던 DDD(Domain Driven Design) 방식의 프레임워크라는 것이었기 때문이다. DDD책에 나오는 바로 그 아키텍처를 그대로 적용했다는 것이 놀라웠다. 컨퍼런스 세션에서 들은 ROO의 모습은 매우 매력적이었다. Seriver/Repository 사이에 도메인 레이어를 적용했다는 것은 기본이었고, 쉘에서 몇가지 코드 생성 명령으로 이미 동작가능한 ROO의 CRUD모듈이 완성되는 것도 매력적이었다. 하이버네이트를 사용했음에도 하이버네이트의 HSQL을 직접 사용하는 코드를 만들지 않고, Find 로직을 IDE의 기능을 최대한 사용할 수 있도록 일종의 JavaConfig스타일로 정의하는 것으로 만들어 내는 것도 신선한 충격이었다. 또 DDD를 적용하기 위해서 당시에 많은 관심은 끌었지만 아무도 사용하지 않던 @Configurable을 이미 실전에서 사용했다는 것도 놀라웠다.

그때 벤 알렉스는 ROO가 실제 프로젝트에 적용했던 것인만큼 라이센스에 문제가 되거나, 기업의 내부 정보가 노출되는 코드들을 제거하는 작업을 거쳐서, 스프링의 운영진(당시 Interface21)과 협의해서 전략적으로 공개하겠다고 약속했다.

그리고 다음해 벨기에에서 열린 SpringOne Europe에서도 또 ROO세션에 참석했는데, 이전에 미리 레코딩 해온 스크린캐스트를 플레이하면서 세션을 진행했던 것을 라이브 코딩으로 바꾸었다는 것을 제외하면 별다른 특징을 발견 할 수 없었다. 공개시점은 계속 고민중이라는 말만 남긴채로. 그 뒤로 TSE 등에서 계속 ROO세션은 있었지만 계속 미뤄지는 공개결정 때문에 나를 비롯한 ROO에 관심을 가지고 있는 개발자들은 실망했고, 급기야 작년 SpringOne America에서 벤에게 직접 물어봤을 때 매우 난처한 모습으로 답변하는 것을 보고, ROO의 공개는 물건너 간 것이 아닌가라고 생각하기에 이르렀다.

그래서 ROO가 공개되기 어렵지 않겠냐는 것이 나의 판단이었다. 왜냐면 스프링소스 입장에서 볼 때 ROO가 특정 패턴과 스프링에 대한 접근을 추상화한 스타일의 프레임워크로 공개된다면, 매우 다양한 아키텍처와 적용방법을 모두 포용할 수 있는 범용 프레임워크인 스프링 프레임워크의 유연성이라는 면에서 안좋은 영향을 미칠 수 있기 때문이다. 그런면에서 스프링의 개발회사에서 어떤 특정 패턴의 프레임워크를 공개하는 것은 불편한 상황을 만들 소지가 높다고 생각했다.

 

하지만 놀랍게도 이번 유럽 스프링원에서 ROO가 공개되었다. 아직 M1도 아니고 Alpha-1이라는 컨퍼런스 데모용 급조 버전이긴 하지만, 어쨌든 공개용으로 만들어진 ROO가 나왔다는 것이 놀라웠다. 바쁜 일정 때문에 궁금함을 잠시 접고 M1정도 되는 안정버전이 나오면 보자고 생각했는데 며칠 사이에 A2가 나왔다. 아무래도 특정 환경(벤은 리눅스에서 스프링 개발을 한다)에서만 실행하도록 만든 것의 제약점을 좀 더 손본 것 같다.

어제 M3도 나왔고, 3.0을 적용한 프로젝트도 곧 시작해야 해서 새롭게 프레임워크 개발도 들어가야 하는데, 그래도 ROO를 한번쯤 봐줘야 하지 않을까 하는 생각이 들어서 A2를 받아서 졸리움을 참으며 한시간 정도 분석을 해봤다.

ROO를 들여다 보다가 잠이 번쩍 깼다. “이런 방법도 있었구나”라는 놀라움이 밀려왔다. 새로운 기술과 창조적인 접근방법을 보는 것 만큼 즐거운 것이 없다.

 

그래서 어제 대충 분석해본 ROO에 대해서 정리해보겠다.

4 Comments

김동현May 8th, 2009 at 10:34 am

오- 기대됩니다. 언제나 좋은 글 감사합니다.

물개May 8th, 2009 at 5:55 pm

오.. 완전 기대

Mr.MistoffeleesOctober 26th, 2009 at 2:38 pm

RoR만 못한걸 이제야 내놓다니…

TobyOctober 26th, 2009 at 3:20 pm

Mr. Mistoffelees/ ROO는 RoR이랑 같은 층위에 놓고 비교할 대상이 아닙니다. “스타크래프트보다 못한 Windows7″를 내놓다니 하는 식의 얘기처럼 들리는 군요.

Leave a comment

Your comment