2009/01/02 09:00

올해의 스프링 기술 top5, 내년 유망 스프링 기술 top5 (박찬욱 편)

안녕하세요. KSUG 박찬욱입니다. 저도 올 해와 내년 유망주를 나누기가 어려워 하나의 목록으로 작성했습니다. 올 해 관심사들이 내년에는 실제 적용 가능환 수준으로 심화되는 과정이라고 볼 수 있을 것 같습니다.

1. Spring Web Flow(SWF)
개인적으로 SWF를 살펴 봤던 시점이 작년의 1.x였는데 어느덧 2.x가 공개가 됐습니다. 작년 1.x일 때 로드 존슨이 SWF는 앞으로 SpringSource의 주력이 될 것이라는 말을 했었는데요, 역시나 그 말처럼 지금 SWF의 위상은 상당히 높아졌습니다.

1.x가 위자드 형식의 흐름(flow)를 갖는 conversation 구현에 집중 됐다면, 2.x부터는 Spring MVC, JavaScript, Faces 등 다른 모듈과의 통합을 기반으로 한 Client와의 통합 프레임웍으로 발전하고 있습니다. 특히 spring mvc와 java script와의 통합 강화로 이제 Spring MVC와 유기적으로 협력해서 적용할 수 있게 됐습니다.

특히 Spring-js는 서버 단 프로그래밍 모델 제시가 주를 이웠던 과거에 비해 클라이언트 단의 프로그래밍 모델까지 제시하는 좋은 기회가 될 것으로 보입니다. 사실 Controller+form tag로는 부족했었죠^^. 다양한 Ajax 프레임웍들과의 통합이 지원되고, 사용사례 등이 공유되기 시작하면 Spring-mvc 도입 시 자연스레 Spring-js로 클라이언트 단 로직을 처리(역할이 어느 정도까지 갈지는 모르겠습니다. 현재는 Dojo toolkit 기반 Ajax 요청 처리와 유효성 검증 등이 제공 됩니다.)하고, 여기에 더해서 SWF로 conversation 구현과 flow 제어를 구현하게 될 수 있겠죠. 3.0에서는 Spring-js가 core로 넘어 온다니 역시 다음 한 해에도 기대를 갖고 지켜볼만한 것 같습니다.


2. Spring core 발전
올해 공개된 Spring 2.5에서는 애노테이션 기반 설정이 보다 심하되고, 강화됐습니다. 설정의 단순화만을 강조하는 것이 아니라, @MVC 처럼 프로그래밍 모델 자체를 개선해주는 효과를 얻고 있습니다. '설정'이라는 말이 주는 부담과는 달리, 애노테이션을 사용해서 최소한의 설정으로 최대의 효과를 얻을 수 있는 모델을 제시하고 있습니다. 단지 설정 기법이 XML에서 애노테이션 기반으로 변경된 것이 아니라, 메타 정보를 활용한 새로운 프로그래맹 모델을 제시하는 기회로 활용하고 있는 것이죠.

이번 Spring One America에서도 밝혀 졌듯이 3.0에서는 많은 내용이 개선될 것 같습니다. REST지원, EL 지원 등 3.0에서 도입되거나 개선된 다양한 특징에 대해서는 이미 다녀오신 분들의 글을 참조하시면 될 것 같습니다.

여기서 제가 주목하는 점은 Spring 3.0 도입에 대한 Spring 포트폴리오들의 의지입니다. 아직 3.0 정식버전이 나오지도 않았지만, 포트폴리오의 주요 프로젝트에 해당 하는 프로젝트들(SWF, Spring Security, Spring batch 등)이 이미 3.0에 맞는 기능을 소개하거나 조만간 공개되는 버전에 바로 적용하는 모습을 보여주고 있습니다. 발빠른 행보를 보이고 있으니 3.0은 보다 빠르게 현장 도입 수준에 오르지 않을까 생각됩니다^^.


3. Spring batch
Spring의 다른 프로젝트들도 마찬가지지만, Spring  batch는 특히 현장의 경험을 추상화해 이를 기반으로 프레임웍을 구성했다는 점이 가장 인상적입니다.  특히, Job, Step과 배치 실행과 관리에 대한 추상화된 개념을 통해서 처음 배치 업무 구성에 접하는 사람도 개념적인 판단기준을 가지고 학습할수 있는 상황을 제공한다는 점에서 매력적입니다. 아직 첫 번째 돌도 안된 프로젝트지만, 조만간(2009년 3월)이면 벌써 2.0 정식 버전이 나오고, 이미 현장에서도 여러모로 적용했다는 소식을 접할 수 있습니다.

2.0이 나오면 커스텀 네임스페이스나 애노테이션 기반 설정이 가능해져 근본적으로 복잡한 배치 잡 구성을 조금은 쉽게 구성할 수 있을 듯 합니다. 또한 Scalability 측면에서도 Spring Batch 기반의 다양한 구현 패턴(Partitioning, Chunking processing, parallel processing 등)의 공유로 Spring Batch의 활용성이 더 높아질 것으로 기대됩니다. 또한 API도 훨씬 직관적이고, 개발이 편리하도록 개선되었고, 관리 인터페이스 또한 추가 됐습니다.(또는 정식버전 전까지 추가될 예정입니다.) 현재는 2.0M3가 나온 상태고, 정식 버전은 3월에 나올 예정이라니 조금만 기다려 주시죠^^.


4. Spring dm server
올 한해 가장 큰 화두 중 하나로 OSGi를 꼽을 수 있습니다. 임베디드 시장에서 이미 확고한 위치를 점령한 OSGi가 본격적으로 엔터프라이즈 시장에 진출하게 된 시점이 됐습니다. 물론 아직까지는 실험적인 단계라고 생각합니다. 현장 적용을 통해서 쌓여진 노하우(베스트 프랙티스)가 거의 없고, OSGi 환경에서 OSGi의 장점을 누리면서 개발할 수 있는 환경이 아직은 부족하다고 생각합니다. Maven이나 PMD 등이 있지만, 둘 다 엔터프라이즈 환경에서 개발을 지원하기에는 불편하거나, 부족한 상황입니다.

이런 상황에서 Spring dm server의 존재는 엔터프라이즈 환경에서의 OSGi 지원 가능성을 옅볼 수 있게 해줬습니다. 내부적으로 OSGi 환경을 제공하거나 단순히 배포 가능한 컨테이너 제공만 하는 것이 아니라, OSGi 프로그래밍 모델과 Spring의 프로그래밍 모델을 통합할 수 있는 기반을 제공(Spring-DM과 함께) 합니다. dm server는 SSTS와 SpringSource Enterprise Repository 등을 활용해서 OSGi 기반 개발 환경을 지원하고 있습니다. 이에 더불어 별도의 manifest 헤더와 배포 단위를 제공하는 등, 저수준 OSGi 명세를 기준으로 개발할 때 느끼는 불편함을 해결할 방법을 제시하고 있습니다.

물론 이마저도 아직은 많이 불안한게 사실입니다. dm server를 사용해서 개발하고, 배포해보려면 단순히 따라하기도 쉽지 않습니다^^. 올 한 해는 OSGi의 엔터프라이즈 환경 적용을 시험한 무대였다면, 내년에는 본격적으로 적용하는 다양한 방안에 대해서 연구되고, 공유될 수 있는 한 해가 될 것 같습니다. 역시 기대되는 내년 한 해가 될 것 같습니다.

5. tc server
이제 SpringSource는 아파치 톰캣(Tomcat)의 가장 '큰 손'이 됐습니다. 최근 2 년간의 톰캣 개발/버그 수정 중 대부분을 SpringSource가 제공했다고 합니다. 내년에 Spring tc server가 공개되면 어쩌면 Spring 기반으로 개발하면서도 WAS를 사용해야 하는 요구사항이 줄어들 수 있는 기회가 될 지도 모르겠습니다. 아직 내용 공개된 내용이 거의 없지만, 내년 초 가장 큰 관심사임은 분명해 보입니다.

6.Grails와 함께하는 Spring
올 해 말을 가볍게 강타한 내용입니다. Spring One America를 다녀오신 분들의 소감을 들어보면 감동이었다는 표현까지도 들을 수 있습니다. 이 역시 향후 전망을 가능케 할 수 있는 자료가 전무하지만, Grails로 기존 프로그래밍 모델을 개선할 수 있는 방안을 어떻게 도출해낼지 너무나 기대됩니다. 스크립트 언어의 장점을 Spring에 어떻게 접목시킬 지 기대되는 바입니다.
Trackback 0 Comment 0