TSE2007 둘째날.

오전에는 두개의 세션이 있었는데 Web기술 트랙의 두개의 세션을 선택했다. Spring이 등장한 이후로 SpringMVC에 가장 큰 변화가 있는 것이 바로 Spring2.5이다. 2.5에 등장한 Annotation DI를 적극적으로 활용해서 기존 Controller인터페이스에서 완전히 독립적인 POJO Controller를 개발 할 수 있는 기능이 추가되었다. 물론 기존에도 MultiActionController갈은 Controller인터페이스의 구현이 필요없는 방법이 있었지만 여전히 HttpServletRequest, HttpServletResponse 파라메터가 필요하고, FormController처리와 같은 복잡한 기능이 필요한 경우에는 여전히 Controller인터페이스를 구현한 추상클래스들을 사용해야 했다. 하지만 2.5에서는 servlet 객체를 사용하지 않고도 Controller작성이 가능하다. 이제 controller 단위테스트를 위해서 불편한 mock object(MockHttpServletRequest, …Response)를 사용할 필요가 없다는 뜻이다. 그러면서도 복잡한 form처리에 필요한 command객체 사용, validator, data binding, custom property editor 등을 사용할 수 있다.

첫 세션은 SpringWebFlow의 개발리더이자 SpringMVC의 주요 개발자 중의 한명인 Keith Donald의 “Full Stack” Web Frameworks: How Does Spring Stack Up? 이다. Full Stack Web Framework(FSWF)이란 RubyOnRails, Grails, Seam과 같이 웹기반 애플리케이션 개발에 필요한 모든 기능과 패턴을 제공하는 프레임워크를 말한다. 물론 스프링은 그 자체로 Full Stack Web Framework은 아니다. 하지만 스프링의 모듈과 다른 기술들을 조합해서 얼마든지 다양한 형태의 Full Stack Web Framework의 구성이 가능하다. Keith의 발표에서 가장 관심의 대상이 된 것은 바로 SpringMVC 2.5+에 관한 부분이다. 이미 릴리즈된 Spring2.5의 MVC는 그 자체로 웹개발에 매우 편리한 기능을 제공한다. 거기다 더 해서 지금 개발중인 몇가지 기능들이 추가되면 스프링 기반의 웹개발에 굉장한 발전이 있게 될 것이다. 세션때 보여준 예제코드를 보니 거의 RubyOnRails의 REST기반의 ActionController와 거의 비슷한 방식의 개발이 가능하다. 아직 구현이 안된 @PathElement정도만 추가하면 RoR의 라우팅처럼 URL path를 이용한 handler mapping과 파라메터 처리가 가능하다. 세션중에 그런 기능 도입에 대한 참석자들의 의견을 물었는데, 다들 빨리 만들어내라고 아우성이었다. 조만간 개발해서 다음 Spring2.5마이너 업그레이드 때 반영하겠다고 했다. 왜 그걸 아직도 구현 안한 것이지!

@PathElement란 /hotel/1/book/new 같은 URL에서 1을 파라메터 값으로 가져올 수 있게 하는 것이다. “hotel/{hotelid}/book/new”라는 RequestMapping만 해주면 된다. 그러면 public void new(@PathElement(“hotelid”) int hotelId) {..} 와 같은 handler method를 사용할 수있다.

또 하나의 중요한 변화는 SpringWebFlow의 flow정의와 진행을 SpringMVC handler내에서 손쉽게 만들 수 있다는 점이다. 이 것은 SpringWebFlow 2.0에 등장하는 SWF Java Flow Config을 이용한 것으로 보인다. 본격적으로 SpringMVC와 WebFlow를 통합해서 사용할 수 있게 된다.

두번째 시간은 Alex Arendsen의 Simplifying CRUD operations with Spring @MVC에 참석했다. @MVC가 말해주듯이 Spring2.5의 어노테이션을 이용한 Controller개발에 관한 시간이다. 첫째시간 내용과 연결이 되면서 실제로 CRUD 전 기능을 어노테이션 기반의 MVC로 만드는 방법을 설명해 주었다. 지금까지 SpringMVC의 가장 뛰어난 기능으로 부각되어오던 SimpleFormController가 바보가 되는 순간이었다. 구지 복잡한 백그라운드 플로우와 hooking방식의 개발을 하지 않고도 직관적이고 유연하게 form controller를 만들 수 있다. 새로운 MVC는 파라메터, 모델, 뷰 등에 대해 매우 유연하고 당양한 방식의 설정이 가능하다. 동시에 WebDataBinder나 Validator등을 적용하는 것이 가능하다.

아쉬운게 있다면 @PathElement가 아직 구현되지 않았다는 것과 ReferenceData와 같은 참조 모델정의를 직접 해야 한다는 것. 그리고 RoR의 filter같은 인터셉터를 Controller레벨에서 직접 정의하는 것이 있으면 좋겠다는 정도. 2008년에 Spring Web기술이 한차원 더 발전하게 될거라고 하니 많은 기대가 된다.

셋째 세션은 Rob Harrop의 Data Access and I/O Strategies for Batch Processing. Spring Batch의 도입 세션 정도 되는 시간이다. 일반적인 배치 애플리케이션을 개발할 때의 주의할 점과 전략에 대한 설명이었는데 사실 조금 지루했다. 너무 뻔한 얘기들이어서 그런 것 같다. 뭔가 획기적인 이야기가 있을까 기대했던 내가 잘못이겠지.

Collection/DOM 쓰지 말자. File I/O가 느린게 아니다. 데이터를 chunk로 나눠서 batch로 처리하자. 멀티쓰레드로 in/process/out을 병렬화 하자 등등. 결론은 SpringBatch를 쓰자. 하지만 SpringBatch가 사실 배치애플리케이션을 만들어주는 것은 아니다. 배치 작업에 대한 invoke나 스케줄링, 리포트 등을 일관된 방식으로 제공하는 인프라스트럭처일 뿐이지 배치의 핵심 로직은 어짜피 개발자들이 직접 만들고 책임져야 하는 것이다.

넷째 세션은 Rod Johnson의 The State of the Art in Dependency Injection시간. Spring의 기원이 되는 1:1 J2EE Design & Development 책의 예제로부터 출발해서 지금에 이르기까지 스프링을 비롯한 각종 DI 기술의 특징과 장단점을 비교하는 시간이었다. Spring1.0~2.5와 함께 Pico-container를 비롯해서 EJB3, Seam, Web Beans, Google-Guice에 이르기까지 다양한 DI기술들을 살펴보았다. 결론은 Spring 2.5가 모든 면에서 최고의 DI 솔루션이라는 것. 흥미로운 이야기 몇가지는 Spring이 처음에는 constructor-injection을 지원하지 않다가 pico의 영향으로 중간에 지원하게 됐다는 것. 그 이야기를 하면서 Rod Johnson은 스프링은 유저를 위하는 것이라면 무엇이든지 추가할 수 있다는 유연성을 가진다고 했다. 그 말의 뉘앙스를 잘 풀어서 얘기하면 setter injection이면 충분하지만 pico의 위협과 constructor를 쓰겠다고 지랄요구하는 사용자들에 못이겨서 어쩔 수 없이 추가했다는 이야기다. 그걸 점잖게 얘기하는 Rod Johnson이 얼마나 재밌던지… 그게 얼마나 억울했는지 자바의 constructor가 얼마나 짜증나는지 모르겠다면서 차라리 C++의 constructor가 낫다는 부연설명을 잊지 않았다. 그리고 1.1에서 등장한 FactoryBean은 TSSS에서 만난 Adrian Colyer의 제안으로 추가하게 되었다고 한다. 그게 Adrian이 스프링 프로젝트와 본격적인 관계를 같게 되는 계기가 된 것 같다.

사실 Rod Johnson은 annotation DI의 도입에 대해서 무척 강하게 저항해왔다. 거의 3년전부터 사용자들이 줄기차게 요구해온 것이 annotation을 이용한 DI였다. 하지만 Rod Johnson은 항상 스프링의 XML이면 충분하다고 했다. 하지만 결국 EJB/Seam의 공격과 Google-guice의 위협에 그것도 무너져 버렸다. 지금은 Spring2.5의 annotation DI가 얼마나 훌륭한지 자랑하지만, 그러면서 역시 한편으로는 annotation DI만가지고는 불충분하고 결국 XML이 필요하다는 것을 강조하는 것을 빼먹지 않는다. 나름 자신이 한 주장이나 발언을 꺽고 어떤 결정을 내렸을 때 그게 Rod Johnson같이 자존심이 강하고 자기확신이 강한 사람에게는 얼마나 힘든 일이었는지 이해가 간다. 어쨌든 constructor-injection은 모르겠지만 annotation DI는 정말 잘했다. Google-guice의 non setter method injection(setter가 아닌 일반 메소드의 파라메터를 이용해서 DI하는 것)을 배꼈다고 사람들이 머라고 하면 어떠겠나. 쓰는 스프링 사용자만 좋으면 그만이지.

하지만 후반의 Spring DI방법의 비교와 best practice에 관한 부분은 지난 QCon에서 들은 것과 너무 유사해서 당황스러웠다. 5주나 지났는데 좀 업그레이드 좀 하지!

이렇게 둘째날(세션으로는 첫째날)이 지나갔다. 사실 지금 저녁 키노트와 Rapid Fire세션이 있는데 키노트는 Forester Research인가하는 회사 부사장이 와서 졸리는 얘기를 한다고 해서 제끼고. Rapid Fire세션은 관심있는 주제는 이미 다 들은 것들(게다가 발표자가 똑같은 사람!)이고 Object Grid니 Compass같은 것은 관심없고 해서 제끼고. (-_-;)

숙소에서 @MVC 코드나 만들어보면서 놀아야겠다.

22일에 열리는 이번 KSUG 세미나 때는 @Controller를 이용한 새로운 SpringMVC 개발에 관한 데모를 해볼 생각이다. Annotation DI와 함께 무척 흥미로운 시간이 될 것이다. 그동안 SpringMVC가 너무 복잡하고, 방대하고, 어려워서 다른 선택을 한 개발자들이라면 꼭 관심을 가져볼만 한 시간이 될 것이다.

귀찮아서 사진도 안찍고, 대충 대충 쓰는 TSE2007 둘째날 후기 끝.

Related posts:

  1. TheSpringExperience 2006 등록
  2. SpringOne 2007 첫날 후기
  3. QCon 2007 San Francisco 참석중
  4. SpringOne 2007
  5. 성의없는 QCon San Francisco 2007 후기
  6. 뒤늦게 쓰는 SpringOne 2007 셋째날 후기
  7. SpringOne 2007 둘째 날 후기
  8. SpringOne 2007 & parleys.com
  9. Spring Framework 2.5 Released
  10. 스프링프레임워크는 IoC 컨테이너가 아니다
  11. 이번주 할 일
  12. Spring 3.0.1 mvc:annotation-driven 이 몰래 하는 짓
  13. 스프링의 새로운 유지보수 정책은 눈물겹다
  14. S1A 2008 셋째날 – Spring JavaConfig
  15. Java와 생산성

Facebook comments:

to “TheSpringExperience 2007 둘째날”

  1. 그림이나 샘플 코드를 좀 넣어서 써요.. 낼부턴..ㅋㅋ

  2. 하루 하루 이야기가 흥미진진 합니다.
    스프링은 변화가 너무 빠르다는 그낌이 있는데요
    그래도 좋은 변화니 즐겁네요 ^^*
    잘 읽었어요… 내일도 부탁해요 :)

  3. I find myself coming back to your web-site only because you have lots of awesome insights and also you happen to be at this a while, which is very impressive and tells me you know your stuff.

  4. You precisely saved me atleast 1 hour of time. I am making a project in this particular topic and your contribute has helped me through one of the topics of my project. I will browse to the other pages now.

  5. An fascinating concept this. I’m 1 of those men and women whom tend to wait for things to mature prior to taking action but in this case I’m mindful that inaction leads to only failures so I will heed your comments and begin to do anything about it.

  6. hey. I just got word of this unique webpage and I should really believe that this unique is a nice write-up. Bless you for this kind of awesome info.

  7. Great blog! Do you have any tips and hints for aspiring writers?
    I’m planning to start my own site soon but I’m a little lost on everything.
    Would you recommend starting with a free platform like WordPress
    or go for a paid option? There are so many choices
    out there that I’m totally overwhelmed .. Any ideas? Kudos!

  8. Can I just say what a comfort to discover someone who genuinely knows what they
    are talking about over the internet. You certainly realize how to bring an issue to light
    and make it important. More people ought to read this and
    understand this side of your story. I can’t believe you aren’t more popular because you surely have the gift.

  9. I have found the best kept secret in internet traffic and I want to share it with you. Most people think the best website traffic comes from Google but the real quality visitors comes from paid traffic. The guys that I know that make the high 6 and 7 figures all buy their web traffic. Go here to see the service they shared with me: http://gmbal.com/079x

  10. My friend Brian Miehe, a guy who drives a LOT of web traffic to various offers through his large website network, has just released a web traffic service with a free trial so website owners can “try before they buy”. If you are interested in driving lots of web traffic to your website then don’t miss this offer: http://gmbal.com/189u

  11. mbt staka shoes TheSpringExperience 2007 둘째날 » Toby’s Epril

  12. Traffic is the key to any website business. I found a company that has been an amazing resource in building our traffic and the communication back and forth has been refreshing. I use most of the services offered by this company and I am now getting hundreds of targeted visitors to my website every day. Take a look here: http://gmbal.com/2411e

  13. You need targeted traffic to your website so why not get some for free? There is a VERY POWERFUL and POPULAR company out there who now lets you try their traffic service for 7 days free of charge. I am so glad they opened their traffic system back up to the public! Check it out here: http://2hams.com/2312t

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