TSE의 즐거움 중 하나는 식사시간마다 만나는 다양한 개발자들과의 대화이다.

아침식사시간에는 보스턴에서 금융시스템을 스프링으로 개발한다는 중국계 미국인과 캘리포니아에서 스프링을 사용해서 개발한다는 나이가 지긋한 개발자를 만났다. 나도 저렇게 머리가 히끗할 때까지 개발자로 살면서 계속 신기술을 배우고 적용하고 이런 컨퍼런스에 참석할 수 있을까 잠시 생각해보았다. 꿈*은 이루어진다는데. 까짓거 그렇게 살아보자.

TSE2006 아침식사시간
아침 식사시간 

점심시간에는 어제 만났던 Isidoro와 폴랜드에서 온 개발자, 영국에서 온 개발자와 함께 식사를 했다. 모두다 이번 컨퍼런스에 매우 만족하고 있었고 오전에 참석한 세션 얘기를 하면서 흥분을 감추지 못했다. 인터넷을 뒤지면 다 나오는 그런 흔한 얘기나 정보가 아닌 깊이 있는 통찰력과 경험을 나누는 시간이 많기 때문에 그럴 것이다.

저녁은 시차로 인해서 너무 피곤한 탓에 밤 시간을 위해서 포기하고 룸에서 잠깐 눈을 붙였다. 덕분에 지금까지 쌩쌩하긴 하지만. 아.. 배고프다.

오늘은 DDD트랙에 올인하기로 했다. 사실 DDD는 Spring의 기술은 아니다. DDD는 기술이라기 보다는 하나의 새로운 방법론 또는 패러다임이다. 사실 방법론이라고 하기도 뭐한게 어떤 세세한 프로세스를 정의한 것은 아니다. 대신 중요한 core value와 몇가지 중요한 전략을 제시한 것이다. 책이 나온 것은 2002년이고 많은 사람들이 관심을 가지기 시작했지만 사실 본격적으로 DDD가 현장에서 구현된 것은 오래 되지 않은 듯 싶다. 특히 Spring2.0이 나오면서 DDD가 매우 관심의 대상이 되었는데 그 이유는 Interface21의 컨설턴트들이 대부분 DDD believer들이기 때문일 것이다. Spring2.0가 지향하는 기술 중에는 DDD를 실전에서 잘 사용할 수 있게 해주는 것이 많다.

나도 DDD책을 읽고 관련된 아티클이나 정보를 열심히 수집하고 연구해밨지만 사실 아직도 막연한 것이 사실이었다. SUN의 blueprints로부터 비롯된 Anemic Model + Big Fat Service Layer구조가 거의 표준 아키텍처이고 오랫동안 그 스타일로 개발해왔기 때문에 그럴지도 모르겠다.

첫째 세션은 DDD의 저자 Eric Evans이었다. Eric은 그다지 일반 컨퍼런스나 세미나를 많이 하지 않은 것으로 알고 있다. 내가 잘 모르는 것일 수도 있지만 이번 TSE를 빼고는 컨퍼런스 세션목록에서 그의 이름을 본적이 없다. 왠만한 컨퍼런스는 다 쫒아다니는 Mat Raible도 그의 강의를 처음 들었다고 한다. Eric은 매우 조용하고 점잖은 스타일이다. 학자같다고나 할까. 그의 얘기 하는 스타일은 딱 그의 책에서 느껴지는 분위기와 닮았다. 하지만 Modeling에 관한 그의 시각과 주장에 대해서는 매우 강한 확신을 가지고 이야기 해주었다. DDD의 모든 내용을 다루기 보다는 한가지 실제 예를 가지고 DDD가 지향하는 바가 무엇인지 잘 설명해 주었다. 어떻게 구현하는지에 대한 구체적인 전략은 없지만 어떻게 모델링 해야하는지에 대한 부분에선 많은 것을 배울 수 있었다.

세션이 끝나고 잠시 Eric을 만나서 얘기를 나누었다. 한국에서도 DDD에 대한 관심이 많다고 얘기했더니 무척 반가워한다. 영회님이 DDD책을 번역하고 있다고 얘기해 주었더니 자신은 그 사실을 몰랐다고 하면서 놀라워 했다. 번역자에게 자기한테 꼭 연락을 주라고 했다. 딱 걸렸다. ㅋㅋ

 

DDD의 저자 Eric Evans와 함께 
Eric Evans와 세션끝나고 한장. 나랑 덩치가 비슷하다. 귀여운 것도.

Eric은 DDD트랙의 모든 세션에 계속 참여를 했다. DDD가 어떻게 Spring에 접목되고 사용되는지에 대해서 관심이 많은 것 같다. 사실 DDD가 Spring컨퍼런스의 5개 트랙중 하나를 차지한다는 것만으로도 Spring과 DDD의 긴밀한 관계를 잘 보여주는 것 같다. Spring이 퍼뜨린 새로운 아이디어들과 프로그래밍 전략은 매우 중요한 것이 많다. Spring은 Lightweight Container, POJO, AOP, Resource abstraction, Dynamic language intergration과 같은 지금 가장 인기있는 전략을 퍼뜨리고 실전에 적용할 수 있게 해준 중요한 역할을 해왔다고 볼 수 있다.

둘째시간은 Keith Donald의 The Building Blocks of Domain-Driven Design시간이었다. Keith는 Spring Web Flow의 개발자이자 Interface21의 창립멤버이다. 그는 자신을 DDD신봉자(A beliver in DDD)라고 소개했다. Spring의 기술을 이용해서 DDD책에 나오는 원리와 요소들을 실전에 많이 적용해왔다고 한다. DDD트랙에서 연속으로 두개의 세션에서 DDD에 관한 실전기법을 소개했는데 첫시간은 Entity, VO, Service, Aggregate와 같은 DDD를 이루고 있는 구성요소에 대한 이야기이다. 포인트카드 갈은 Dining Reward시스템을 DDD원리에 따라 어떻게 각각의 구성요소로 만들어가는지를 실제 예제와 함께 설명해주었다. 다른 기술기반레이어(Infrastructure Layer)에서 독립된 영역으로 Domain layer를 만들고 이를 테스트하고 만들어나가는지를 설명해주었다. 처음 OO에 대해서 배울 때 자주 등장했던 바로 그 OO적인 모델과 코드를 볼 수 있었다.

DDD를 적용하려면 기존의 J2EE 3-tier layered architecture와는 다른 접근방법이 필요하다. DDD를 적용한 아키텍처는 다양하게 있겠지만 핵심은 Domain layer가 명확히 독립적으로 구분되어져야 한다는 것이다. 이렇게 독립된 Domain layer는 service layer등과 함께 application layer의 핵심을 이룬다.

또 한가지 강조한 것은 Entity, Value Object, Service를 잘 구분하는 것이다. 특히 Entity와 immutable한 VO를 모델에서 적절하게 선별해 내는 능력이 중요하다. Entity중에서 root역할을 하는 것을 aggregate entity라고 한다. Serivce layer에서는 주로 이 aggregate entity를 이용해서 domain layer에 접근을 한다. 동시에 repository가 매칭되는 기준이 되기도 한다.

셋째시간에는 앞시간에 이어서 The Art of Domain Modeling  이라는 좀 더 전략적인 DDD방법론에 대해서 설명을 했다. DDD은 domain experts와 developers간의 모델을 distill하는 과정이라고 설명할 수 있다. 모델과 구현이 긴밀한 연계를 통해서 계속 모델이 distilled되는 과정이다. 그러기 위해서 중요한 것은 domain experts와 developers 상호간에 의사소통이 가능한 ubiquitous language가 필요하다. 복잡한 다이어그램이나 비주얼툴보다는 통일되고 간결하게 응축된 언어가 더 중요한 모델링의 도구가 될 수 있다. 앞 시간에 설명했던 예제를 좀 더 상세하게 다루어서 설명을 해줬다. 어떻게 고객과 이야기하면서 모델을 distill해가는지 단계적으로 볼 수 있었다. 그러면서 Spring을 이용한 DDD의 구현방법도 일부 보여줬다. 발표 내용에 자주 DDD책에서 인용한 구절이 등장한다. DDD책이 막연해 보여도 정말 실제 적용을 어찌 할지를 가이드 해주는 중요한 역할을 해주는 것을 알 수 있었다. Eric이 계속 세션에 참석했기때문에 Keith도 살짝 긴장한 모습이었다. 좀 난해한 질문은 Eric에게 다시 물어보기도 하면서 진행을 했다.

마지막 세션은 Juegen Hoeller의 Code Organization Guidelines for Large Code Bases 였다. 사실 DDD와 직접적인 관계가 없어보이긴 하지만 무척 새롭고 흥미로운 주제였다. 코드를 어떻게 모듈화하고 패키징화해야 지속적으로 발전하고 성장하는 시스템을 건전한 아키텍처와 구버전호환성을 동시에 충족할 수 있는가 하는게 주제였다. Spring처럼 방대한 프레임워크는 그런게 아주 중요하다. 그런 부분에서 굉장히 신경을 많이 써서 설계했다고 한다. 패키지 설계에서 가장 중요한 것은 항상 한 방향으로만 의존관계가 이뤄져야 한다는 것이다. 순환의존구조가 되는 것은 좋지 않다. 그런면에서 Spring은 거의 완벽할 정도로 패키지, 모듈간의 의존구조가 한방향으로만 되어있게 설계되어있다. JDK나 Hibernate같은 것은 상호참조의 문제가 있다고 한다. 새로운 주제였는데 관심을 가져볼만하다. 특히 공개된 API를 가지는 시스템을 설계할 때는 초반의 이런 구조적인 설계가 무척 중요하다.

Juegen Hoeller세션
Juegen Hoeller세션 

아침까지는 쌩쌩했는데 오후되면서 시차때문인지 가끔 정신이 몽롱해져갔다. 집중하려고 애를 쓰고 매 쉬는 시간마다 커피를 마셨지만 나중에는 너무 힘들어서 결국 저녁을 포기하고 그 시간에 잠깐 잠을 잤다. 푹 자고 싶었지만 다시 일어나 저녁 시간에 참석.

BoF는 Ben Alex와 함께하는 Acegi모임에 갔다. 여러가지 많은 질문과 토론이 이어졌는데 보안과 관련해서 상당히 재밌는 이야기들이 많이 오갔다. 나도 아직 Acegi를 본격적으로 써보지는 않았지만 많은 기대를 하고 있다. Acl을 이용한 전략에 관해서 내일 세션이 있는데 갈까 고민중이다.

BoF가 끝나고 파티시간. 수술후 절대 금주하고 있긴 했는데 그래도 파티인데 하고 맥주를 가볍게 한잔 했다. 오후에 만난 일본에서 온 Hiroyuki Arai라는 개발자와 얘기를 많이 나누었다. 아시아에서온 3명 중 한명이다. NTT에서 Spring을 이용해서 내부 프레임워크를 만들고 적용하고 있다고 하는데 아직 일본에는 Spring커뮤니티가 없다고 한다. 그래서 공부를 하고 와서 Spring커뮤니티도 만들고 기술도 전수하라고 회사에서 보내줬다고 한다. 와우.. 부럽다. 아무래도 아시아 지역은 Spring과 같은 신기술에 소외되어있다. 특히 오픈소스는 회사가 전략적으로 들고 오지 않기 때문에 자발적인 참여가 필요한데 언어장벽이 크기 때문에 확실히 한계가 있다. 그런 면에서 아시아 지역 스프링 유저그룹을 만들어보자고 제의했고 흔쾌히 참여하기로 했다. 또 필요하면 상호 컨설팅이나 공동 세미나도 열기로 했다. 조만간 일본도 가봐야 할 것 같다. :)

 

The Spring Experience 파티
The Spring Experience Party. 왼쪽에 흰옷을 입은 사람이 Tangosol의 Carmeron Purdy이다.

Hiroyuki Arai와 함께 파티에서
Hiroyuki Arai와 파티에서

이렇게 본격적인 세션이 시작된 둘째날이 지나갔다. 사실 컨퍼런스의 짧은 시간안에 모든 원하는 것을 배우고 알기는 힘들다. 컨퍼런스의 목적은 사실 그보다는 많은 자극과 영감을 얻는 것이다. 특히 DDD에 대한 오늘의 시간들은 무척 큰 의미가 있을 것 같다. 대략적인 생각으로도 지금까지 Spring을 사용해왔던 패턴에 많은 변화가 있을 것 같다. 어쩌면 그동안 발전시켜온 OSAF를 전면 새로 디자인해야 할지도 모르겠다. 어렵겠지만 새로운 도전과 도약이 될 것 같아 무척 기대가 된다. 

Rod Johnson의 싸인을 받아달라는 물개의 부탁은 못들어줄 것 같다. 만나면 진지한 기술얘기를 나누는 분위기다. 싸인을 받거나 하는 사람은 찾아 볼 수가 없다. 물개 미안 :)

 

Related posts:

  1. The Spring Experience 마지막날
  2. Spring Experience 2006
  3. The Spring Experience 첫날
  4. The Spring Experience 2006
  5. The Spring Experience 셋째날 – TSE사람잡네
  6. developerWorks Column – ‘열띤 토론의 장, The Spring Experience 2006’
  7. The Spring Experience
  8. Spring ROO 대충대충 분석 (1) 공개과정
  9. Spring활용전략 세미나를 마치고
  10. 이번주 계획과 이것 저것
  11. Rod Johnson의 Testing with Spring
  12. 테스트 할 수 없는 것을 테스트 하기. Spring ROO와 static method mocking.
  13. Spring 3.0 (7) Spring 3.0 Dependency Matrix
  14. Spring 3.0 (26) Spring Expression Language와 @Value
  15. Spring 3.0 (35) Spring 3.0 Reference Document 공개

Facebook comments:

to “The Spring Experience 둘째날”

  1. Eric Evans.. 미국에 버려둔 가족 아냐? 정말 비슷하네. 그렇다고 귀여운것도 닮았다니. 우웩~

    전에 고슬링 아저씨나 맥클라한 아저씨랑 만났을 때도 아무짓도 안했는데 뭐, 싸인은 반쯤 농담이였어. 블로그에 계속해서 후기 올리는 걸로 용서해 줄께. :)

  2. 데칼코마니decalcomanie라니까요. 내년에 제가 싸인 받아 드리죠. 저 그런거 잘할 수 있는데. :)

  3. DDD에 대한 흥미로운 대화(토비님과)

    TSE2006 둘쨋날 저녁 파티를 마치고 숙소로 돌아온 토비님의 메시지를 시작으로 즐겁고 흥미로운 대화가 시작되었다. 모 단체와는 달리 허술하기 짝이 없는 검열을 통과한 일부를 발췌… ㅋㅋ…

  4. 영회님 블로그에 이어 토비님 블로그 잘 봤습니다.
    저도..
    “Eric Evans와 세션끝나고 한장. 나랑 덩치가 비슷하다. 귀여운 것도.”
    이 말이 제일 인상적이네요.

    에릭이 DDD 트랙 전 세션에 관심을 가지는 모습이 멋지네요.

  5. 국내에 DDD 전도사 이야기들

    DDD책을 보면서 패러다임이 많이 바뀌었는데, 내가 잘못 이해를 한것이 아닌가 고민스러울때가 있었다.spring2.0 overview를 통해서 DDD를 나에게 알려주었던 국내에 DDD전도사 토비님이 이번에는 Th…

  6. q1AoHs hbxzcsdqjgeg, [url=http://gbjqkzmgzndc.com/]gbjqkzmgzndc[/url], [link=http://nsspjegfbcwk.com/]nsspjegfbcwk[/link], http://rxsztlzqtjwi.com/

  7. In the event you would have to make your method by way of an opponent, discern that it do not a person.
    Air Max Pas Cher http://nikeairmaxpascher90.blogspot.com/

  8. Friendships final in the event that every one acquaintance thinks he has a small transcendence beyond the many other.

  9. A most extreme method to missed someone needs to be chilling ideal definitely individuals knowing you will‘l make them.

  10. It’s accommodating guide South and north South korea style some pot team to the Beijing Games. The idea will get fair credit rating regarding launching the whole world on the brand new South east asia for the ’64 Tokyo Olympics as well as for helps to create a far more start To the south Louis Vuitton Shoes South korea due to ’88 Seoul Online games.

  11. I Really like your blog! Ideal important information that has been truly helpful. I hope you and your loved ones have a very good day!
    chloe 財布 http://www.myindyareahome.com/

  12. *There are some fascinating points in time in this article but I do not know if I see all of them center to heart. There is some validity but I will take hold opinion until I look into it further. Good article , thanks and we want much more! Added to FeedBurner also
    コーチ 財布 メンズ http://www.quepachuca.com/categories-4.html

  13. You ought to be a part of a contest for one of the most useful sites on the web. I’m going to highly recommend this website!|

  14. mbt usa The Spring Experience 둘째날 » Toby’s Epril

  15. Great internet website! It looks really good! Maintain the helpful work!|

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