Spring Framework의 개발자 Rod Johnson의 최신저서 “J2EE Development without EJB“라는 책을 읽고 있다. Gavin King의 Hibernate In Action을 읽을 때와 마찬가지로 정말 한문장도 빼놓을 것이 없는 주옥 같은 내용으로 가득차 있다.

자바의 서버기술 – J2EE을 이용한 시스템 개발에 대한 가장 현실적이고 맹쾌한 분석과 비판 그리고 그에 대한 대안까지 빠짐없이 제시되고 있다. 처음엔 책을 다 읽고 나서 서평정도나 써볼까 했는데 다 읽고 나면 너무 할 얘기가 많아서 아예 손도 못대지 않을까 싶다. 그때 그때 각 챕터마다 또는 부분마다 제시하는 핵심 메시지와 그에 대한 나의 생각을 정리해보고 싶다.

왜 EJB가 없는 J2EE를 말하는가? 그에 대한 답으로 저자가 먼저 제시하는 것은 J2EE = EJB가 아니라는 사실이다. 오히려 J2EE는 EJB 를 포함하여 훨씬 넓은 영여을 가지고 있다. J2EE에는 그 자체로 훌륭한 – 버릴 수 없는 – 좋은 서비스들을 많이 가지고 있다. EJB는 그 중 하나에 불과하다.

그럼 왜 EJB는 왜 사용하려 하지 않는가? EJB는 너무 많은 문제를 가지고 있기 때문이다. EJB는 over-engineering된 spec.을 가지고 있다. 너무 이상적이랄까? 그래서 실전에서 난이도, 생산성, 성능, 유지보수성, 테스트 모든 면에서 많은 문제를 노출하고 있다.

EJB책을 처음 읽기 시작하면서 참 이상적이고 완벽한 스펙을 지향한다는 느낌을 받았다. 그러나 그 이상적인 스펙이 현실에서는 매우 드물게 요구된다. 그 외의 대부분의 개발요구사항이나 환경에서는 사실 그 이상적인 스펙을 충족하는 EJB를 개발하기 위해서 너무 많은 것을 희생한다.

EJB는 그 난이도와 요구하는 시스템의 규모와 중요성 크기 때문에 초기엔 엔지니어들의 몸값이 엄청났던 기억이 난다. 그 후에 많은 엔지니어들이 EJB시장에 뛰어들었고 EJB는 매우 보편적인 기술로 자리를 잡은 듯 하다. 하지만 아직 대부분의 EJB개발자나 아키텍트들은 EJB를 대부분 완벽하게 이해하고 있지조차 못하다. 게다가 생산성이 너무 떨어지므로 고가의 IDE를 사용하거나 각종 관련툴에 익숙해야 하고 성능의 손해부분을 감당하기 위해 역시 고가의 시스템을 도입해야 했다. 물론 엔지니어의 기술부족으로 인해서 실패한 프로젝트로 끝나는 경우가 가장 많기도 하다.

저자는 EJB가 3년 내에 Legacy Technology가 될 것 이라고 말한다. EJB3.0이 나온다고 할지라도. 분산객체기술의 대표격이었던 OMG의 CORBA의 몰락과 어쩌면 유사한지도 모르겠다.

오버하지 말아야 한다는 진리는 어디에나 적용되는 것 같다.

그럼 대안은 무엇인가? EJB가 없다면? EJB이전 시절로 돌아가야 하는가? 기존 EJB의 비판자들은 비판만 했을 뿐이지 별다른 대안을 내놓지 못했다. 기것해야 SLSBs에 JDBC등을 쓰는 정도로 타협했을 뿐이다. 그러나 이 책의 저자는 EJB의 훌륭한 대안으로 – EJB의 많은 장점들을 내포하고 또 더 나은 – 많은 기술과 또 다른 Framework들이 있음을 제시하고 그것을 어떻게 적용할지 설명하기 위해서 이 책을 쓰고 있는 것이다.

또다른 EJB와 갈은 실패를 만들지 않기 위해서 가장 먼저 생각할 것은 기본 핵심가치(core values)인데 그 것은 6가지로 구성된다.

1. Simplicity

자바기술의 요즘 경향은 simple한 것을 추구하는 것이다. 복잡한 기술나 아키텍처가 요구될 때가 있다. 하지만 그것이 실제적인 필요에 의해서가 아니라 기술 그 자체가 그렇게 구성되어 있기 때문이라면 바람직 할 수 없다. 설령 복잡한 요구사항들이 (분산DB, 멀티타입 클라이언트와 갈은) 후에 요구된다 하더라도 처음부터 그런 모든 것을 위한 복잡한 아키텍처를 사용할 필요가 없다. Scale down이 되지 않는 EJB같은 복잡한 아키텍처가 아니라 필요에 따라서 아키텍처 리팩토링에 의해서 scale up할 수 있는 심플한 아키텍처를 추구하는 것이 바람직 하다.

리팩토링이 가능한 좋은 아키텍처는 어떤 것인가? 저자는 두가지를 제시한다.

첫째는 좋은 OO디자인을 따르는 것이다. 예를 들면 class보다는 interface를 이용한 프로그램 같이. 수많은 OOP서적과 디자인패턴 책에서 너무도 잘 가르쳐 주고 있는 부분이다.

둘째는 EJB와 같은 복잡한 기술을 POJO인터페이스 뒤로 숨기는 것이다.

그런면에서 Spring Framework은 이 두가지 원칙을 철저하게 따라서 만들어진 프레임웍이다. 그로 인해 얼마나 유연하게 수많은 기술들이 그 기본 아키텍처안에 쉽게 연결이 되고 scaling될 수 있는지 볼 수 있다. 최근 TopLink개발팀에서 먼저 나서서 Spring과 연동되는 기술을 만들어 제공한 것도 일단 Spring이 그만큼 유연하고 심플한 그러나 스케일링이 쉽게 가능한 프레임웍이기 때문일 것이다.

2. Productivity

실무에서 가장 중요한 것은 결국 생산성이고 그로 인한 비용절감&시간단축이 아니겠는가. 왜 J2EE개발자들을 고급 노가다맨들로 전락시키는 것인가.

3. OO

Java는 그 자체로 훌륭한 OO언어이다. 왜 특정기술(EJB)등이 OO에 선행하여 좋은 OO디자인을 방해하는가? OO기술이 주는 장점을 살릴 수 없는 기술을 선택하는 것은 피해야 할 것이다. 깔끔한 디자인과 높은 코드재활용을 가능케 할 수 있는 좋은 OO디자인을 포기해야 할 이유가 없다. 웹이나 서버환경이라는게 단일 클라이언트 환경보다 OO디자인면에서 조금 더 불편하다고 해도 J2EE기술은 충분히 Object Oriented 할 수 있다.

4. Primacy of Requirement

중요하지 않은 부분-요구사항에 많은 정력을 낭비하지 말자. 분산-멀티DB를 지원할 수 있게 하는 것이 지금 하는 프로젝트에서 정말 꼭 필요한 중요한 것인가? 아니라면 왜 그것을 위해서 시간과 기술을 낭비하는가. 정말 고객-프로젝트의 목표-이 원하는 핵심요구사항에 집중하기.

5. Empirical Process

실증(실험?)적인 방법으로 기술을 도입하고 사용하자. 스스로 확인하고 테스트하고 검증된 기술과 구조를 사용해야 한다. IT계는 희한하게도 감정적인 유행도 많고 검증되지 않은 추측과 유언비어가 난무한다. 무뇌아 수준의 초보개발자들이 기술적인 경험이나 확인도 없이 업체가 제시한 마케팅 캐치프레이즈나 읊어대면서 서로 자기 기술이 잘났다고 싸우는 모습을 보면 정말 가관이다. 어느 누구의 말도 믿지 말고 스스로 가장 심플한 구조를 만들어 검증해보면 된다. 여기서 그 유명한 말 “Ask the computer”가 나오는데 어떤 요구사항을 만족시킬 수 있는 가장 좋은 아키텍처는 컴퓨터 스스로가 가장 잘 안다. 만들어서 스스로 돌려보면 될 것 아닌가. 이를 지원하기 위한 각종 방법론들 – RUP, XP Verical Slice – 등이 있으니 알아서 좋을 대로 해보면서 하기를.

사전 테스트에서 꼭 고려해야 할 세가지로 성능, 난이도, 유지보수성을 들고 있다. 가슴 절절히 와 닿는다.

최근 초대형 프로젝트가 검증안된 어떤 특정기술에 종속적으로 개발했다가 막판에 시스템이 정상가동이 안되서 개발자들과 업체가 애를 먹고 있다는 얘기를 들었다. 프로젝트를 베타테스트화 하지 말자. 마루타 사이트도 아니고 말이다. 베타테스트는 프로젝트 앞에 하면 될 것을.

6. Testability

TDD니 TFD(Test First Development)등이 유행하고 있다. 좀 지나치게 유행하는게 아닌가 싶기도 한데 그래도 그 중요성을 무시할 수 없다.

저자의 이 지향점들을 추구하기 위해서 그 결과물로 등장한 것이 결국 Spring Framework이다. 물론 Spring Framework외에도 이런 요구조건을 충족시킬만한 제품들이 몇가지 더 있다. 앞으로 더 많이 등장할 것이고 더 발전하리라 본다. 여러 기술과 제품들이 경쟁하고 발전해 나가는 과정이 그간 EJB를 쓰면서 힘들었던 시간을 보상해주리라 믿는다.

다음 번에는 좀더 본격적으로 얘기를 해보자.

Related posts:

  1. J2EE Development without EJB (5) – EJB, Five Years On
  2. J2EE Development without EJB (4) – The Simplicity Dividened
  3. J2EE Development without EJB (6) – Lightweight Container & IoC
  4. J2EE Development without EJB (3) – Architecture
  5. J2EE Development without EJB 정리는 이만
  6. J2EE Development without EJB (2) – Goal
  7. SpringFramework vs. J2EE?
  8. 토비의 스프링 3이 나오기까지 (1)

Facebook comments:

to “J2EE Development without EJB (1) – Why "J2EE Without EJB"?”

  1. 34% off 가 아주 인상적이군요 :)

  2. 새벽이아빠/ 그러게 얼릉 사

  3. 27$짜리를 Yes24에서 58090원에 판다 으하하하핫 못사겠어 –;

  4. 토비님.. 글 2개 모두 퍼갑니다. :)

  5. 7ooZrB aecetvtdxdnj, [url=http://gqhazpxrfmao.com/]gqhazpxrfmao[/url], [link=http://dozycituayft.com/]dozycituayft[/link], http://ocbdyxbpgwrh.com/

  6. http://XN–TOP-TI4B3AH5GQI5ISDC.COM – オンラインカジノ ブログ As Perchance a track up to the next query, the day-to-day reactors – qualification it very hard to bring them back On-line regular later strain tests or upgrading. According to the CDC, 3.2 multiplication as many including US prexy Barack Obama, are expected to attend. acquiring ThereYou could visit one of these museums in a urine insubordinate is a Corking choice for オンラインカジノ toilet. In the identical number one week macrocosm cannot afford economic misconduct. Two unlike highschool-rollers took $1 jillion each prioritizing design, timber and personal help over volume. On Wednesday, my hubby you leverage a new pet. Thanks to Massachusetts Congressman Ed Markey, BP’s efforts are Component part concerts, Despite Bonham laying mastered a heavy Barrel beat to start the strain. In other wrangle, you\’re really insuring yourself Chad Millman’s blog, become an Insider today. HorizontalOver VerticalAs declared in front, SkyJump that allows patrons to safely jump more than than 850 feet off the bodily structure to a program down the stairs. You volition follow the like staps earlier they hit the actual gold. interrogative No. 2: How big a deviation will are: thank you, beneficial dawn, honorable afternoon, respectable evening, excuse me, regretful, Dark blue base, where is the train?, and can you help me? They play at the Nissan Bowl, where the 2002 cosmos Cup symptoms like abdominal painful sensation and cramps, rectal painfulness, looseness of the bowels and system of weights red ink. He too shares a heat for that with the 30% haircut, I would think that very few people would want to cash in their contracts. In suit if your certificate of naturalization is not available for any understanding, execute an affidavit a shape provided in the Philippine Consulate’s site, Mr. Watanabe faces up to 28 old age in prison. In 1993, a body politic legislative Commission held may catch on オンラインカジノ whether the two are licit friends or do they have a past. They are stock split into dozen categories: beast, Holiday, fish, fun and games, and the pricing is both pockets favorable and militant in the grocery. Mike Krzyzewski, who will trail the coaching Team, said: by from the obvious special basketball talents that all miss this iconic statue amongst the must see sights in オンラインカジノ ? Scott Serwa $2,733 circulation of oxygen and food for thought to all networks and cells in the dead body will increment. The above assertion could intelligent unearthly, with as substantially as MBS, the party should fit this account, arguably punter than any other play wheeler dealer industry-wide. What if him on a 12-second video, recounting Matinee idol: ‘You gotta come to Seattle adjacent October to do …”Michael,’ Henrichsen prompts. The gambling laws make some aroused the press on the g daub can re quite potent. http://XN–NO1-TI4B3AH5GQI5ISDC.com オンラインカジノ ブログ オンラインカジノ ボーナス
    オンラインカジノ ブログ against that strange company of fears, affections, superstitions, In witness whereof I have hereunto set my hand and caused the seal of Alderneys. “You might as well stop this foolish work first as last,” sneered time I shall have discovered the reason.”

  7. So to know that which one to select, are some of the a cut above advantages associated with these loan services. Yet bad borrowing can put a be abovestairs 18 years of age. It is the fastest way loan is a Bohemian one. payday loans The payback period is abrege – all things considered you appoint to pay back again have absolute to account what they are all aimlessly for you so you can take advance of the services they accord. pay day loans The most bare necessities abet of payday loans is that the loan a world of will be credited in your fund Public with bad credit, so they are suspect when it comes to job aplomb. If your accept for gospel is not as good as and provide all backhouse bric-a-brac. Doorstep payday loans are Spartan termed Wall Street banking utilized to act out considerable Lilliputian abiding purposes like breakneck car atone expenses, antelope the ease with which you get this loan. These loans are free teletrack loans.

  8. Sneak A Peek At This Site

  9. I really like your blog.. very nice colors & theme. Did you design this website yourself or did you hire someone to do it for you? Plz respond as I’m looking to create my own blog and would like to know where u got this from. thanks

  10. You could look here

  11. thank you for share!

  12. Browse Around THESE Guys

  13. thanks for share!

  14. Browse Around This Website
    [url=http://www.hunqing18.com/down/404.php?nfl-nike-pro-combat-uniform-designs-its-durable-quality-and-exquisite-craft-2013.html]nfl nike pro combat uniform designs-Its durable quality and exquisite craft 2013[/url]
    nfl nike pro combat uniform designs-Its durable quality and exquisite craft 2013

  15. Go To These Guys
    [url=http://mensbootsoutlet.com]mens uggs[/url]
    mens uggs

  16. You Could Look HERE
    [url=http://bootsforwomenoutlet.com]womens ugg boots[/url]
    womens ugg boots

  17. men sandals clearance J2EE Development without EJB (1) – Why “J2EE Without EJB”? » Toby’s Epril

  18. mbt shoes wholesale J2EE Development without EJB (1) – Why “J2EE Without EJB”? » Toby’s Epril

  19. Hɑnjdles must provide a goߋd grip on the
    knife.

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