블로그 이미지
Max.

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Notice

'Code Generation'에 해당되는 글 1

  1. 2007.11.12 [DDP] ROO의 특징을 Demo에 적용해보기(4)
2007.11.12 10:20 이전글(~2009)
최근 찬욱님의 ROO Architecture review 라는 글을 보고 Demo에 적용해 보기로 했다. 해당글에서 눈에 띄는 것은 두가지가 있었다.

첫째 Repository에서 Finder의 분리이다. 어쩌면 이 당연한 현상을 왜 생각하지 못했는지 나 자신이 얼마나 생각없이 개발하는지 알수 있는 대목이다. 실무 개발시 주도메인은 상당히 많은 finder를 Repository에 만들수 밖에 없다. 그만큼 각양각색의 조건들이 포함된 Select가 많이 있기 때문에 그렇다. 이 개념은 당장 도입해도 좋을 개념이다. 사실 최근 프로젝트에서 엄청나게 많은 finder를 넣은 Repository를 만들었다. Repository라고 부르기에도 민망할정도로....

둘째는 DTO assembler라는 것이다. 이것은 DO를 DTO로 값을 복사해주는 역할을 한다. 이것 자체의 구현 역시 어렵지 않다. 그러나 이것이 주는 의미는 ROO에서 의미하는 바가 크다. 보통 우리가 말하는 Service Layer 에서 DO를 쓴다. 이것은 DTO에서 내부적(?)으로 가져다 쓰는 구조 이다. 즉 모든(3Tier)계층에서 DO를 쓴다. 그러나 ROO에서는 DO를 쓰지 않는다. 엄격히 Domain Layer 아래로 격리시킨다. 따라서 Biz Layer(이것이 다른이름으로 불리던 어쩌던 간에 비지니스로직을 수행하는층을말함)에서는 DTO 를 쓴다. 핵심은 여기서 나온다. 이렇게 DTO를 씀으로써 번거러움이 가중되고, 더 세분화 함(Finder등)으로써 늘어나는 클래스를 어떻게 할것인가?
ROO에서는 이런것들을 Code Generation 으로 해결한다. Finder를 수동(?)으로 구현하거나 DTO를 Dozer를 써서 이것을 수동(?)으로 구현하는것은 기존에 했던 방법보다 손이 많이 가며 그리큰 매력을 느끼기 힘들다.

그러나 이들을 자동화해 버린다면? DTO, Finder,XML 심지여 TestCase까지 자동으로 생성해 준다면? 멋지다. 이것이 ROO의 가장큰 특징이 아닐까 한다. CG(Code Generation)에 대해서는 아직 아는바가 없다. Toby님 글에 '아주 정교하게 구현되어 있다'라는 언급만 나왔을뿐 뭘 어떻게 하는지 알기 힘들다. ROO가 언제 공개될지, 아니면 영원히 오픈 안될수도 있지만, 지속적으로 주시해볼 필요가 있다.

일단 두가지 특징을 수동(?)으로 만들어 Demo에 적용해 보았다. 그냥 그저 그렇다 ㅡㅡ;;
역시 자동화가 Key 인것 같다. Maven과 eclipse에 대한 기능을 잘 익혀두어야 한다. ROO가 나올때를 대비해서 말이다.

(그나 저나 앞으로 ROO에 대한 소식을 들을만한곳이 없다. 어디서 소식을 들어야 할지...Toby님도 잠적하시고...-,.-a )
신고
posted by Max.
prev 1 next

티스토리 툴바