이런 글을 보게 될 줄은 정말 상상도 못했다. DDD의 적용이라는 난해한 주제를 이렇게 흥미롭고 깔끔하게 소개할 수 있다는 사실에 놀랐다. Eternity님이 블로그에 일년 가까이 연재해오다 오늘 시리즈의 마지막 글을 올리며 마무리 된 Domain-Driven Design의 적용이라는 시리즈 얘기이다.

사실 그 내용이 DDD의 적용이라는 쉽지 않은 주제를 다루었다는 점보다도 그 내용을 차근 차근 단계를 밟아서 점진적으로 개선하여 완성해나가는 과정을 보여주면서 설명했다는 것에서 더 놀라웠다. 켄트 벡의 TDDBE를 처음 읽었을 때 받았던 신선한 느낌과 비슷하다.

만약 처음부터 최종 예제를 늘어놓고 각 요소들이 DDD에서 말하는 이런 저런 것이다라는 식으로 설명했다면 별 대단할 것 없는 단순하고 건조한 스프링과 하이버네이트를 이용한 DDD 구현모델의 소개 정도에 그쳤을 것이다. 그렇게 완성된 결과만 보는 것으로는 조금 흥미를 가지게 될지는 모르겠지만, 그 이상의 깊이 있는 영감을 얻거나 뭔가 도전 해보고 싶은 자극을 얻기는 힘들었을 것이다.

어쩌면 Enternity님의 글을 읽으면 짜증 나는 사람도 있을 것이다. 첨부터 DDD적용은 이렇게 하이버네이트를 이용해서 Repository를 만들고, 스프링으로 DI 하는 식으로 보여줘도 될텐데, 왜 결국엔 없앨 단순하고 엉성해 보이는 코드를 만들어 놓고, 그것을 선수들끼리 보기엔 어쩌면 유치해보이는 뻔한 이유를 들어가며 이리 저리 고치고 해서 서서히 발전시켜나가는 긴 과정을 밟냐는 것이다. 어쩌면 TDD에 대해서 비난하는 사람들의 이야기랑 비슷할지도 모르겠다다. 첨부터 척 설계해서 바로 만들면 되는 것을 가지고, 쪼잔하게 실패하는 테스트를 만들고 그걸 통과시키게 코드를 만들고 어쩌고 하는 쓸모없는 과정을 거쳐서 시간낭비하며 개발하고 있느냐는 식의 비판과 비슷할 것이다.

문득 며칠 전에 트위터에서 본 글이 생각난다.

Computers are useless. They can only give you answers. – Pablo Picasso

다 아는 쉬운 코드 가지고 뭐 그리 말이 많냐, 빨리 가져다 쓸 수 있는 완성된 샘플코드나 내놔라, 세계적인 소프트웨어 하나 못만들어놓고 남들 가르칠 생각하지 말아라 하는 식으로 얘기하는 사람들의 모습이 떠오른다. 지겹게 들려오는 그런 식의 얘기에 요즘은 대답하는 것도 귀찮다. 

 

어쨌든 Eternity님의 글은 그런점에서 매력적이다. 작은 시도와 그것에 대한 고민, 그리고 중요한 가치와 원칙을 지켜나가도록 코드를 개선하고 테스트로 검증하는 과정을 통해서 왜 이런 결과가 만들어지게 되었는지 그 이유와 근거와 과정을 조금은 장황하게 설명해주는 것이 그의 글의 장점이다. (그래도 ‘녹색 막대를 드디어 만났다’는 식의 표현은 왠지 낯뜨거웠다)

그의 글들은 사실 그리 친절하지는 못하다. 아마도 대부분의 개발자들은 처음 들어봤거나, 아니면 들어본 적은 있지만 그 정의와 의미에 대해서 명확하게 모르던 많은 용어들이 딱딱한 정의와 인용구와 함께 마구 등장하는 것이 부담스러울지도 모르겠다. 하지만 딱딱하긴 해도 그 용어와 의미에 대해서 꼼꼼하게 풀어서 설명해주고 있고, 그것이 설계와 구현 코드를 통해서 적용되어져 가는 과정이 잘 드러나 있기 때문에 마음 먹고 진지하게 읽고 곰곰히 생각해본다면 이해 못할 어려운 내용은 없다. 하지만 글에 나오는 현란한 용어와 고급스런 문장에만 매료될 뿐 실제 내용에 대해서 깊이 고민하면서 읽지 않는다면 다 읽어봤자 건지는게 없을지도 모르겠다. 최소한 세번쯤은 읽고 코드도 그대로 따라해봐야 그 가치를 알 수 있지 않을까 싶다.

아무튼 이런 식의 접근에 알레르기가 없는 사람이라면 다 추천한다.

 

참, 그의 설계의 본질, 그리고 UML이라는 글도 빼놓을 수 없다.

나는 켄트 벡이 Responsive Design 세미나에서 얘기한 "Design is not a rational process"이라는 충격적인 이야기를 그보다 한참 전에 Eternity님의 설계에 관한 글에서 먼저 만났다. 소개에 보니 켄트 벡을 좋아한다고 하던데 뭔가 통하는게 있었는지 어쩐지 모르겠지만.

설계란 과학적이거나 합리적인 무엇이 아니다

이런 멋진 이야기를 할 수 있는 Eternity님이 부럽다. 아 부러워.

 

알만한 사람은 다 아는 Enternity 조영호님에 대한 이야기는 여기서 끝.

Related posts:

  1. Domain Model vs. DTO
  2. Spring 3.0.1 mvc:annotation-driven 이 몰래 하는 짓
  3. 유쾌한 이슈처리 재촉 메일

Facebook comments:

to “Eternity님의 Domain-Driven Design의 적용 시리즈”

  1. 오 잘 보고 갑니다. 좋은 블로그네요 :) 요즘 보는 책들이 항상 GoF나 Martin Fowler 등 한 그룹에 속한 것들로 추려지는 이상한 현상이 발생하고 있거든요.
    앞으로도 좋은 글 많이 부탁드려요 ㅎㅎ

  2. 잘보고 갑니다. 설계란 과학이거나 합리적인 무엇이 아니다. 정말 공감이 아네요.

    개념적인 무엇일까요? 설계에 Rational 한 Process가 없다는 말도 정말 공감이 가고..

    계속 제품을 개발 중인데, 늘 새로운 생각과 IDEA에서 새로운 설계가 나오는 것 같네요..

  3. Whilst I truly like this post, I believe there was an punctuational error close towards the finish of your third section.

  4. XsfIhe cubxnjvacnyf, [url=http://nvpmxvugbtlq.com/]nvpmxvugbtlq[/url], [link=http://cqgesbiuygyt.com/]cqgesbiuygyt[/link], http://ugbpduaixeff.com/

  5. Hi, how are things? I recently shared this posting along with a coworker, we’d a healthy giggle.

  6. You Could Look HERE
    [url=http://la-hp.com/member/indexinotlogin.php?/burberry-perfume-canadaburberryfactory-outlet.html]burberry perfume canada[/url]
    burberry perfume canada

  7. thanks for share!

  8. thanks for share!

  9. Click Here To Find Out More
    [url=http://www.taxinsi.com/include/nike-air-max-1-tz-patta75.html]goedkope nike air max[/url]
    goedkope nike air max

  10. Visit THESE Guys
    [url=http://www.qq1433.com/member/nopicee.php?/dallas-cowboys-jerseys-for-cheap-is-synonymous-with-high-fashion-and-quality.html]dallas cowboys jerseys for cheap-Is synonymous with high fashion and quality[/url]
    dallas cowboys jerseys for cheap-Is synonymous with high fashion and quality

  11. Why Not Try these out
    [url=http://www.sjzwaihui.com/images/menuarrowp.php?/moncler-coats-on-sale-are-popular-for-their-informes-fesign.html]moncler coats on sale-Are popular for their informes fesign[/url]
    moncler coats on sale-Are popular for their informes fesign

  12. Click Here To Find Out More
    [url=http://www.feiyangcn.com/member/vipiout.php?/kids-moncler-fashionistas-wept.html]kids moncler-Fashionistas wept[/url]
    kids moncler-Fashionistas wept

  13. І’m really loving the theme/dеsign of уοur weblog.
    Do you eѵer run into anу bгowser сοmpatibilitу ρroblems?
    Α hаndful of my blоg readers have cоmplained
    about mу site not ωorking correctly in Explorer
    but looks grеat in Chrome. Do you hаvе аny
    гeсommendatіοns to help fіx this рroblem?

  14. Visit This Website
    [url=http://www.huiyi18.com/digg/404.php?green-lip-mussel-tabletsmeizitangofficial-online.html]official online[/url]
    official online

  15. Look At THESE Guys
    [url=http://fakebootsonsale.com]cheap fake uggs[/url]
    cheap fake uggs

  16. Sneak A Peek At This Web-site
    [url=http://cheapbaileybuttonoutlet.com]black uggs[/url]
    black uggs

  17. mbt shuguli Eternity님의 Domain-Driven Design의 적용 시리즈 » Toby’s Epril

  18. mbt fora shoes Eternity님의 Domain-Driven Design의 적용 시리즈 » Toby’s Epril

  19. cialis ireland
    An essential suggestion for effective social websites industry is to keep track of your social media marketing accounts routinely. Hire someone or use your own time and energy to check out the net for mentions of your own business, specifically on sites like Yelp, Twitter and Facebook. Using this method, you may answer unfavorable or positive reviews in an appropriate way, and possibly supply savings to customers that have had a poor practical experience. This shows customers you value their viewpoints and might cause them to appear upon your company far more favorably.
    viagra comprar
    Have a amount in your thoughts for each common task. Will you frequently use a local library pc and always abandon your Usb 2 . 0 travel powering? Think “a few” or whatever the correct quantity is. Psychologically amount those items you have to pick up any time you abandon. Perhaps your secrets, your catalogue credit card, plus your Usb 2 . 0 cards?
    priligy kaufen
    If winter months weather has your complexion searching dried up and dull, brighten up your epidermis with a combination of your regular groundwork or cream by using a luminescent water or lotion highlighter. Choose a wealthy, subtle product with micronized nutrients or even a pearly or opalescent amount of shimmer. Apply to the brow your bones, cheeks, and collarbones.
    kamagra geneve

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