달력

092010  이전 다음

  •  
  •  
  •  
  • 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
  •  
  •  
"This is the wolrd's largest Spring conference" 로드 존슨 키노트에서 흥미로웠던 내용
  • Grails/Groovy
    • 40 분 동안 Twitter 만드는 것이 인상적. 다른 세션(Spring 3.0 세션을 들은 듯)을 듣느라 동료가 들었음.
    • 어떻게 엔터프라이즈 소프트웨어에 맞는 Spring (재사용 컴포넌트와 강력한 설정을 지향)와 Groovy/Grails 습성 (단순함, CoC와 플러그인)이 상호작용할 수 있는가? 확실히 있지만, 과연 두 접근방식에서 배출점 그리고 서로 통합하는 최선안은 무얼까?
    • Grails에서 널리 쓰이는 CoC(convention over configuration)의 한계는?
    • 자바 개발자를 위한 친절한 소개자료가 있는가? Java/Spring/Hibernate 세계에서 Groovy/Grails 세계로 인도할 트랙이 있다면 무척 흥미로울 것이다. 기존 애플리케이션에 GSP 같은 것을 추가하고, groovy Controllers 와 URL 매핑을 기존 Spring Services와 혼용하고 일부 Spring-based Groovy beans 와 GORM을 쓰는 식일까? 프레임워크 전체를 변경하는 것보다 일부만 바꿀 수 있다면 훨씬 좋을 것이다.
  • Spring 3.0 - 나는 REST 지원을 비롯해서 3.0 출시 이후 가지고 놀 수 있는 빛나는 장난감 모두를 다룰 필요가 있다.
    • JDK 1.4 제거라는 것이 Spring API를 의미하는 가? 아니면 설마 내 API까지?
    • Spring Webflow EL(Expression Language)를 잘 쓰는 법?
    • Spring JavaConfig 잘 쓰는 법?
  • RESTful 애플리케이션
    • @Controllers 와 RestTemplate 을 이용한 REST 구현 
    • Validation 등의 MVC 다른 기능 통합
    • 객체 변환에 쓰이는 프레임워크 혹은 포맷?
  • Spring에 맞는 AJAX. 컨퍼런스를 일찍 떠나느라 놓친 세션을 참가자들을 만날 수 있었던 것이 반가웠다.
  • IoC 개선. 애플리케이션 컨텍스트에서 단순한 List, String 이나 primitive 값을 넣고 빼는 것이 복잡하다.
    1. Rod는 @Value("#{some.property}")라는 Spring 3.0 애노테이션을 보여줬다.
    2.  @Resource 처리를 보다 간편하게 할 대안이 필요하다. 새로운 JEE 애노테이션을 기존 JEE 서버에서 사용하기. @Autowired는 List, String 및 및 primitives에는 쓸 수 없다.
    Spring Integration - 좀 더 배울 필요가 있다.

지금까지 흥미로웠던 것:

  • Spring DM과 Jini? 곧 가능하다고 한다.
  • Rod 왈, SpringSource의 올해 OSS에 대한 기여는 작년의 두 배였다고 
  • Spring JavaConfig 코어로
  • 11월에만 Grails has 74,000 다운로드, Groovy는 70,000 ! Guillaume가 알려준 좀 더 상세한 내용
  • WebFlow가 단순해졌고, "어떠한 마법사 형태 애플리케이션에서도 사용이 가능하다." Spring Source는 Spring Web MVC, WebFlow, Spring JS를 통합했다.
  • Rod: "예산에 대한 제약은 복잡도 감소로 발생하는 생산성 강화를 요구할 것이다... Spring 과 Tomcat이 쓰이지 않는 이유는 벤더와 CIO가 골프를 즐기기 때문이다."
    • Rod Johnson 생산성 증명을 위해 Spring Pet Clinic 예제의 코드량 감소(Spring 2.0 에서 애노테이션을 사용한 2.5 로 변경)를 보여줬다. 
    • 기본적으로 Open Source Software는 어려운 시기에도 역할을 잘 해낼 것이다. OSS가 비단 무료라서가 아니라 더 높은 생산성을 제공하기 때문이다.

      내가 궁긍한 것은 새롭고 단순해진 EJB 표준과 Spring's approach 비교다. 공정한 코드량 비교가 하나의 방법이 될 것이다.

  • 벤더로 자리매김한 SpringSource에 대해
    •   내 생각에 Spring TC 는 SpringSource와 Tomcat 을 엄청나게 개선할 것 같다. 나는 이 사실이 무척이나 즐겁다. 바라건데 고객들이 기존 WAS 대신 Spring TC + AMS 선택하는 것을 심각하게 고려해주면 좋겠다.
    • SpringSource은 자사 툴이 경쟁제품보다 났다는 점을 입증해야 한다. 내가 보기엔 스프링 프레임웍을 다른 상업용 툴과 연계하려고 하려고 시도 하는 것처럼 보이는데 - 충분히 말이 된다고 생각한다 - 이는 "스프링 프레임웍이 시장에서 잘 해나가고 있고 그에 따라 스프링 프레임웍 기반의 벤더들 상품도 잘 해나가고 있다" 라는 말의 의미를 희석시킬지도 모른다. 나는 계속해서 지켜볼 생각이다. 하지만 큰 문제가 될 것 같지는 않다.
  • Spring Source TC 서버 - 더 나은 운영 지원과 mission critical support를 추가한  Tomcat. Tomcat의 가장 큰 이슈는 클러스터링과 관리인데 SpringSource가 이를 바꿔가고 있다.
    • 놀라운 일이다. 진심으로 기존 WAS 대치가 일어났으면 한다. WAS가 좀 더 싸고 사용하기 편해져야 한다. J2EE WorkManagers 등이 제공하는 기능 들도 유용하지만, 기존 WAS 최대 장점은 운영(기술)지원팀이다.

* Solomon Duskis의 글을 일부는 Jake님의 도움을 받아 정리함:
Spring One: Random Thoughts and Keynote notes
Posted by 영회
고맙게도 Spring in Practice를 쓰고 있는 Willie Wheeler가 Rod Johnson’s keynote address at SpringOne Americas 2008 라는 글을 올려 리뷰를 정리할 수 있다. :)

사용자 삽입 이미지

SpringSource의 CEO인 Rod Johnson의 첫 번째 keynote는 자사의 태그라인인 ‘Weapons for the War on Java Complexity TM’전략에 기반한 SpringSource의 2008년 성과와 2009년에 대한 전망을 발표하였고, 이를 실현할 주요 기술 현황과 발전 방향에 대해 설명했고, 핵심 기술에 대해서는 데모 시연을 했다. 개략의 내용은 다음과 같이 요약할 수 있다.

-    SpringSource의 2008년 성과
  • Spring Web Flow 2.0 출시(flow가 있는 업무 화면 개발 지원 프레임워크)
  • Spring Batch 출시(Accenture 주도의 대용량 배치 runtime 솔루션)
  • Spring Integration 프로젝트 개시(Message 기반 채널 연계 솔루션)
  • Spring 3.0 개발 (2009년 1/4 분기 출시 예정)
  • SpringSource dm Server 출시(OSGi 기반 차세대 서버 제품)
  • Covalent Technologies 인수(Apache 웹 서버 및 Tomcat 개발 및 기술 지원 업체)
  • G2One 인수(오픈소스 프로젝트Groovy/Grails 개발 및 기술 지원 업체)
  • 상용 제품 출시: SpringSource Tool Suite, SpringSource Application Management Suite, SpringSource Advanced Pack for Oracle.
-    Rod Johnson은 2008년 불어 닥친 세계 경기 악화가 IT 예산에 대한 압박으로 라이선스 비용에 대해서는 보다 엄격해질 것이고, 복잡도에서 유발하는 비용을 줄이기 위한 투자는 늘어날 것으로 전망했다. ‘Weapons for the War on Java Complexity TM’를 태그라인으로 건 SpringSource의 대응책에 대해서는 Spring 관련 오픈소스 및 상용 제품에 대한 소개로 대신했다.

-    복잡도를 줄이겠다는 SprngSource의 전략을 실현한 제품으로 G2One 인수를 통해 Grails 개발속도가 빨라진다는 점과 함께 Spring 3.0의 성과에 대해 소개했다. Spring 3.0의 주요 내용은 다음과 같다.
  • XML 설정에 EL(Expression Language) 지원(XML 설정 가변성 반영)
  • Spring Web MVC 에서 RESTful Web services 지원(SOAP 기반 web services 복잡도 제거)
  • Annotations를 수용하여 Spring Web MVC가 제공하는 Controller 계층을 POJO로 대치하고, XML 설정 필요성 제거(Presentation Layer 코드 량 감소)
  • Flow 제어가 필요한 웹 화면 용도로만 쓰이던 Spring Web Flow 기능 보강으로 ‘back 버튼’, ‘새로 고침’, ‘마법사’, ‘포탈 스타일 UI’ 구현 등의 복잡도 줄임
  • Spring Web MVC를 기반으로 하여 Spring JavaScript, Spring Web Flow와 함께 Spring Faces 등을 통해 웹 개발의 복잡도를 혁신적으로 개선할 것임을 시사

-    10년간 Apache 서버 제품을 개발하고 지원해온 Covalent 인수 이후 SpringSource는 SpringSource dm Server를 출시했고, Rod Johnson의 keynote를 통해 최초로 두 개 제품을 소개했다.
  • tc Sever: Tomcat 서버를 엔터프라이즈 환경의 데이터센터에서 쓸 수 있도록 모니터링, 진달, 관리 기능을 강화한 제품을 내년 1월 중순 출시한다. 리서치 업체 Evans Data의 조사에 따르면 전세계 자바 개발의 70%는 Tomcat 기반으로 이뤄지며, SpringSource 직원들이 지난 2년간 Tomcat 버그 수정의 95%, 기능 추가의 83%를 담당했다고 한다.
  • SpringSource Application Platform Configurator: war 파일, Spring batch 기반 애플리케이션, Grails 애플리케이션에 대해 주요 OS 및 WAS 등에 웹 기반으로 쉽게 배포할 수 있는 도구이며, 프로토타입 시연이 있었지만 출시 계획은 발표하지 않았다.

Posted by 영회
InfoQ에 요약성격의 글이 있어서 나도 따라 정리 좀 해본다. Scott Delap의 글을 앵커로 출발해보자면 모든 것을 포괄하기에는 다소 부족하다.무엇보다 Grails에 대한 감동이 없다는 것이 아쉽다. :) tc 서버에 대해서는 이미 KSUG에 글을 쓴 바 있어 넘어가려다가 eWeek의 보도SpringSource의 기사에서 다음 내용은 눈에 띄어 정리해본다.

우선 tc 서버의 기능 목록이다.
  • Application management
    • List applications running in a distributed collection of server instances
    • Target, deploy and undeploy applications to distributed server instance
    • Start, stop and reload applications running for distributed server instances
    • Control web application parameters like caching, JSP behavior, and serving of static content
  • Server management
    • Remote configuration control for server instances:
    • Configure JDBC Data Sources and connection pools
    • Define virtual hosts, access logs and integration with web servers
    • Configure JVM server start parameters like Java heap size and garbage collection characteristics
    • Define server groups (tc Server or Tomcat instances)
  • Advanced server diagnostics
    • Application thread lock detection provides warnings when threads compete for restricted resources in a way that would compromise application integrity
    • Configurable automatic and on-demand thread and heap dumping for failure and exception analysis
    • Thread to URL association for faster diagnosis when analyzing problems with request processing
  • Enterprise support
    • To minimize downtime, SpringSource provides mission critical enterprise support.
    • More than 400 of the world’s largest organizations count on SpringSource to support their mission-critical tc Server and Tomcat infrastructure.
    • Over 80% of Tomcat commits in the last two years were made by SpringSource employees and with our leading Tomcat committers, SpringSource can rapidly address support incidents and commit bug fixes to Tomcat
1월에 tc Server가 출시되면 각각의 기능(Feature)이 실제로 어떻게 구현되었고, 어떠한 UI나 품질을 갖는지 확인하는데 체크리스트로 쓸만하다.

그리고
Covalent Technologies, founded in 1998, provides services and support for Apache Software Foundation (ASF) projects, namely the Apache Tomcat Application Server, Apache Geronimo Application Server, Apache Axis Web Services Framework, Apache Roller Blog Server, Apache ActiveMQ Message Broker, and Apache HTTP. Covalent CEO Mark Brewer joins the SpringSource management team as vice president and general manager of SpringSource's new Covalent business unit. The financial details of the transaction are not being disclosed by either company.

Posted by 영회

* Poor English version (In spite of my lack of English-skills, I write this post to share my inspiration triggered by Adrian's keynote. This is my first English post ever.)


사용자 삽입 이미지

As Toby expected, Adrian's keynote is very impressive and beyond my expectations. It is beginning with a comedy for Spring guys. Very interesting, but it's not the reason why I'm fascinated by Adrian's keynote. After the funny time, Adrian is explaining the Spring Integration sample application which was not much referred at Rod Johnson's keynote. He is illustrating a sample in the Spring Integration project esay. And then he demonstrates Grails application development. At first I can't see the reason why he show the demo-I showed the better demo at the Grails sesseion before. However, as he is finishing the web application to order coffee, I am realizing what I see and supprised at that. In the end of the demo I understand why my friend Toby expected the show, since I see the deploy process to the dm server. And, I know the phrase, "Grails is Spring" means beyond that Grails give the spring user another choice in terms of programming model. In the demo, not only the boundary between Spring and Grails is faint but also the discrimination is trivial. Grails is really Spring! Rod johnson make Adrian explain the differentating benefits of Grails,reusing the assets made by Java and Spring without efforts, against  JRuby on Rails by asking a question.

Later on, he explains the vision, current status and future roadmap about dm server with Rob Harrop. Because it's their company's key area, they describe from the meaning of OSGi to issues on dm server in details. A final announcement is the partnership with VMWare. Wow~ I am full of admiration by the plot. If the company will succeed, dm Server and VMWare resolve the problems of deploying and administraing the enterprise systems.

After the keynote, I think that the picture behind the keynote remind me of Sun's BluePrint in the early EJB era. Now, SpringSource make a blue print for the enterprise computing instead of the former forces, such as Sun. I think "the Spring Way" will be likely to succeed better. In the Spring way, they collect the best-of-breed solution and make them valuable rather make somthing new whether is an oepn source or not. This is my earning for big money to invest to attend at this conference.

Younghoe Ahn

Posted by 영회
A poor English version is here.

토비형 예상처럼 애드리안의 키노트는 매우 인상적이었고, 기대 이상이었다. 시작은 예상대로 스프링 사용자들을 위한 한편의 코메디를 보여줬다. 무척 흥미로운 도입부였지만 이것 때문에 애드리안의 키노트에 반한 것은 아니다. 한바탕 웃고난 후에 의외로 로드 존슨의 키노트에 크게 언급한 바 없는 Spring Integration으로 만든 예제를 열심히 설명했다. 이미 Spring Integration에 있는 예제를 쉽게 설명했다. 그리고는 Grails 데모가 이어졌다. 처음에는 이 데모가 무엇을 의미하는지 한 눈에 알아보지는 못했다. 그런데 커피를 주문하는 웹 애플리케이션이 완성될수록 슬슬 무엇을 보여주고자 하는지 눈치 채고 놀라지 않을 수 없었다. 마지막에 dm server에 간편하게 배포하는 모습을 보면 왜 토비형이 애드리안의 키노트를 기대했는지 공감하게 되었다. 또한, 단순히 사용자에게 프로그래밍 모델에 대한 또 하나의 선택을 준다는 의미에서 "Grails is Spring"이라는 줄만 알았는데 데모를 보니 Grails이 Spring 경계가 모호했고, 사실상 구분이 큰 의미가 없어 보였다. 정말 Grails는 Spring이었다! 로드 존슨이 순발력있게 JRuby on Rails에서도 그것들이 가능한지를 물었다. 자바와 스프링의 자산을 그대로 쓸 수 있는 Grails의 차별성을 단박에 집고 넘어가게 하는 질문이었다.

뒤이어 스프링소스의 핵심적인 사업 영역인 dm Server에 대한 비전, 현재 상황과 로드맵에 대해서 리드 개발자인 롭 해롭과 함께 설명했다. OSGi의 의미부터 시작해서 dm Server에 대한 기술적인 이슈를 차분히 모두 설명해주었지만 세션이 길어져 나가는 이들이 생겼다. 마지막 내용은 스프링소스와 VMWare의 제휴에 대한 공지였다. 와우~ 치밀한 발표 구성에 감탄사가 절로 나온다. 스프링소스의 전략이 성공한다면 VMWare는 dm Server와 역할을 분담하여 엔터프라이즈 환경의 배포와 운영에 대한 문제를 해결해줄 것이다.

세션을 마치고 키노트를 반추해보는데 오늘 애드리안이 보여준 그림은 EJB 초기에 Sun이 보여준 BluePrint와 비슷했다. 복잡함과의 전쟁을 선포한 스프링소스는 이제 Sun으로 대표되는 지난 세력을 대신해 새로운 청사진을 그려가고 있다. 인류가 시행착오를 통해 발전하듯 스프링소스의 방식은 훨씬 더 성공 가능성이 높아보인다. 그들은 새로 시작하려고 하는 것이 아니라, 이미 존재하는 검증된 자산에 기반해서 가치를 키워가고 있다. 그것이 스펙이든, 오픈소스든, 상용제품이든 유용한 것이라면 모두 활용해서. 이것이야 말로 내가 비싼 돈을 들여 이곳에 와서 배워가는 최고의 지혜가 아닌가 싶다.

 

Posted by 영회
스프링 진영이 내놓았으니만큼 단순히 새로운 JSF 프레임워크는 아니었다. Spring Faces는 복잡함으로 명성(?)을 쌓아가고 있는 JSF를 보다 가볍게 하기 위해 등장했다. 이를 위해 Spring faces가 해결하려한 내용은

  • JSF의 복잡한 XML 설정
  • 성능 문제
  • URL 매핑 제약
  • Back 버튼 문제

등이다. 한편, 스프링소스의 세션답게 본격적으로 Spring Faces를 다루기 전에 JSF 중심의 접근과 Spring 중심의 접근 차이에 대해 설명했다. JSF 중심 접근은 FacesServlet을 사용하는 방법으로 Spring을 JSF managed bean provider로 사용하는 방법이다. 반면에 스프링 중심의 접근은 FacesServlet을 쓰는 것이 아니라 Spring MVC와 Web Flow를 쓰면서 View 구현체로써 Spring Faces를 사용한다.

여기서 Spring Faces의 장단점이 확연히 보였다. 먼저 스프링 사용자라면 MVC/SWF는 물론 Spring 자바스크립트(주로 dojo 래핑)까지 그대로 사용할 수가 있다. 3.0 까지 고려하면 Spring MVC가 제공하는 RESTful URL을 사용할 수 있고, SWF의 flow 관리 기능을 그대로 사용할 수 있다. Spring JS를 쓰기 때문에 web.xml에 ResourceServlet 설정만으로 정적인 리소스는 보다 효율적으로 쓸 수 있다. 물론 이 기능은 Spring Faces를 쓰지 않아도 사용할 수 있다. Spring faces 고유의 설정은 FaceletViewHandler와 ViewRefreshmentListener 정도다. Keith Donarld가 SWF 발표를 할 때, 실수 연발했던 예제를 데모에 이용했지만 다행히 Jeremy Grelle의 데모는 원활했다. :)

장점만 이야기했는데 단점은 웹쪽에 대해서 즉, 스프링 MVC나 SWF 등을 쓰지 않는 경우에는 학습 비용을 들 수 있다. 발표자가 제공한 자료에서 Spring Faces를 사용했을 때 얻을 수 있는 이점을 잘 정리해서 보여줬다.

 
Posted by 영회

내가 없어도 예약해 둔 포스트가 잘 올라가고 있다. 내가 없어도 블로그가 잘 운영된다. 드디어 마이애미에 와서 스프링 가이들을 만나고 있다. 오늘은, 벌써 어제가 되었군. 어제는 키노트와 파티를 했고, 내일 아침 8시부터 밤 10시까지 강행군이 시작된다. 잠자리에 들기 전에 염장샷 몇 장 남긴다.



사진 설명: 첫 번째 사진은 대부분 알아보겠지만, 스프링의 아버지 로드 존슨이다. 두번째 잘생긴 친구는 유겐 할러. 대부분의 스프링 코드를 만들고 있는 스프링의 어머니 같은 존재고, 마지막 개구쟁이 같은 개발자가 dm Server 개발을 주도하는 롭 해롭이다.
Spring Night Seoul에서 공언한대로 로드 존슨 나이를 물어봤다.

Posted by 영회