달력

4

« 2024/4 »

  • 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

이미 아는 사람들은 알겠지만, Spring Framework를 만들 "로드 존슨"의 회사명은 "Interface21"에서 "SpringSource"로 사명을 바꿨다. 그리고 더욱 왕성한 활동을 보여주고 있다.

오늘 소개하는 SpringSource Application Platform은 SpringSource의 팀 블러그에 올라온 것으로 beta release를 공개한다는 내용이다.
요즘 사내에서 개발하고 있는 Framwork는 OSGi를 기반으로 설계를 진행중이고 이를 위해서 스프링-DM을 사용하려고 한다. 그래서 관심을 갖을 수 밖에 없다.


Tomcat과 Spring을 통해서 lightweight platform을 구성이 가능하지만, modularaty(모듈화)와 non-web application에 대한 지원에 대한 단점을 안고 있다.
이를 개선하기 위한 노력으로 시작된 것이다.

아래는 Application Platform의 구성을 설명해 주는 그림인데, 여기서 중요한 역할을 하는 것은 SpringSource DMK(Dynamic Module Kernel)이다.
SpringSource Application Platform Architecture
DMK가 동작하기 위해서는 최소한의 번들들이 있어야 된다고 한다. MDK는 구동을 위해서 꼭 Tomcat을 필요로 하지도 않지만, Tomcat는 기본적으로 포함되어 있고, 언제든지 설정을 통해 넣거나 뺄수 있다. 그러나 Tomcat을 제거한다는 것은 Web Module의 Deplroy를 하지 않는 다는 것을 의미하므로 이점은 반드시 유의해야 한다.

다음은 Platform에서 지원하는 3가지 패키징 및 Deploy 방법이다.

Building Applications

  • The Platform supports applications packaged in three forms:

    1. Java EE WAR
    2. Raw OSGi bundles
    3. Platform Archive (PAR)

먼저,  WAR파일을 통해서 배포가 가능한데, 이는 배포 시점에 OSG번들과 Tomcat에 설치가 된다.
둘째로, OSGi 번들은 직접 Platform에 배포가 가능하며, Import-Package and Require-Bundle를 이용해서 번들간의 deendency의 선확인이 가능하다.
마지막으로 PAR 포맷은 Platform으로 deploy할 때 수동으로 설치가 쉽고, 로드 될때 다른 서비스와 충돌 또는 이중으로 서비스가 동작하는 것을 막아주고, Application에서 사용되는 모듈들에 대해 로직컬하게 Grouping이 가능하게 만들어 주는 잇점을 가지고 있다.
아래는 모듈간의 RAR Application의 전형적인 예이다.
PAR File Structure
Dependency는 일반적으로 Import-Package & Export-Package를 이용하여 표시한다. 그러나, Third-party 라이브러리를 이용하기 위해서는 이 것말고도 더 많은 라이브러리를 요청하는 경우가 있다. 이를 개선하기 위해서, Platform에서는 Import-Bundle 과 Import-Libary을 이용하여. Import-Bundle 은 추가적으로 다른 third-party 라이브러지를 참조할 수 있게 된다.
 


 

:
Posted by 행복상자

Spring MVC는 Spring Framework중에서 웹 개발을 쉽게 할 수 있도록 도와준다.
국내에서 출판된 책들은 Source를 제공하기는 하지만, 책을 보고 Source를 실행하려고 하면 잘 동작하지 않는다. 물론 손으로 직접 쳐서 입력할때 오타가 있기는 하지만, 서버의 설정과 환경 구성에 대해서 충분하게 설명해 주지 못하기 때문이다.

이를 위해, www.springframework.org에서는 제공하고 있는 Spring MVC를 위해서, Developing a Spring Framework MVC application step-by-step
라는 제목으로 Spring MVC개발에 대해 설명하고 있다. 2003년에 작성된 것과 올 2008년에 작성된 것이 있다.

예제는 초보자를 위해서, 개발 환경 설정과, Ant의 Build.xml 만들기와 사용법등을 부과적으로 설명하고 있다. Ant를 사용하는 법도 부과적으로 얻을 수 있다. 이에 대한 목차는 다음과 같다.(2003년도 작성)

[목차] 
Part 1 – Basic Application and Environment Setup
Part 2 – Developing and Configuring the Application
Part 3 – Adding Unit Tests and a Form to the Application
Part 4 – Implementing Database Persistence

위는 2003년도에 작성된 예제와 Sample이고 tex t위주의 설명으로 되어 있지만,  MVC개발을 위한  설정 XML 파일을 어떻게 작성해야 하는지, 그리고 Dispatcher와 Controller 그리고, View에 대한 코드들에 대해 쉽게 이해할 수 있도록 예제와 더불어 쉽게 설명하고 있다.

그리고, 2008년도에 작성된 Spring MVC step-by-step의 목차는 다음과 같은데, 설명과 함께 캡처한 이미지를 제공하여 설명을 돕고 있다.

[목차]
 

Overview
1. What's covered
2. Prerequisite software
3. The application we are building
1. Basic Application and Environment Setup
1.1. Create the project directory structure
1.2. Create 'index.jsp'
1.3. Deploy the application to Tomcat
1.4. Check the application works
1.5. Download the Spring Framework
1.6. Modify 'web.xml' in the 'WEB-INF' directory
1.7. Copy libraries to 'WEB-INF/lib'
1.8. Create the Controller
1.9. Write a test for the Controller
1.10. Create the View
1.11. Compile and deploy the application
1.12. Try out the application
1.13. Summary
2. Developing and Configuring the Views and the Controller
2.1. Configure JSTL and add JSP header file
2.2. Improve the controller
2.3. Decouple the view from the controller
2.4. Summary
3. Developing the Business Logic
3.1. Review the business case of the Inventory Management System
3.2. Add some classes for business logic
3.3. Summary
4. Developing the Web Interface
4.1. Add reference to business logic in the controller
4.2. Modify the view to display business data and add support for message bundle
4.3. Add some test data to automatically populate some business objects
4.4. Add the message bundle and a 'clean' target to 'build.xml'
4.5. Adding a form
4.6. Adding a form controller
4.7. Summary
5. Implementing Database Persistence
5.1. Create database startup script
5.2. Create table and test data scripts
5.3. Add Ant tasks to run scripts and load test data
5.4. Create a Data Access Object (DAO) implementation for JDBC
5.5. Implement tests for JDBC DAO implementation
5.6. Summary
6. Integrating the Web Application with the Persistence Layer
6.1. Modify service layer
6.2. Fix the failing tests
6.3. Create new application context for service layer configuration
6.4. Add transaction and connection pool configuration to application context
6.5. Final test of the complete application
6.6. Summary
A. Build Scripts


위의 순서대로 예제를 실행해 보았는데, 어렵지 않게 스프링 MVC에 대해 이해할 수 있었고, 개발시 환경 구성과 설정방법들에 배울 수 있었다.



:
Posted by 행복상자

최근에 Spring에 대한 책을 몇권 구매했다. 국내 서적과 국외서적 포함해서, 대 여섯권정도 구매했는데, 구매하면서 느낀 것은 국내에는 볼 만한 Spring에 대한 책이 그리 많지 않다는 점이다. Spring Framework 자체가 워낙 방대해서, 아니 방대해지고 있어서 그럴지도 모르겠다. 스프링이 관여하는 Framework와 모듈들이 참 많다. (공부할 것들도 참 많다.)

최근에 국내에 소개된 책들은 대부분이 Spring Framework 1.2 기반의 책들이다. Toby(일민)가 스프링 관련 책을 쓴다고 했던것이 약 1년 전인데, 아직도 책의 그림자도 못보고 있다. 그때 당시는 2.0이 나온다고, 2.0에 대한 이야기를 추가 한다고 하더니, 곧 Spring Framework 2.5가 나온다고 다시 업데이트해서 내보낸다고 하더니, 호주로 낼롬 떠나 버렸다.

최근에 호주로 물어볼 것이있어서 전화해서, 언제 다시 책이 나오냐고 물었더니, 바쁘다고 정신없다고만 하고 말끝을 흐리던데, 과연 올해는 책을 구경 할 수 있을지...

암튼 국외 서적에서도 Spring 2.5에 대한 책은 찾아 보기 힘들다. Spring in Action도 2007년에 2판째 나온것도 2.0에 대한 책이다. Spring in Action은 번역판으로 처음 봤는데, 예제를 따라하기 쉽고, 내용의 구성도 잘 된 책이라고 생각했다. 이번에 받은 원서도 그러리라 생각된다.

           


그리고 우연히, Spring 관련 자료들을 찾다가, 일민이가 오래전에 올려놓은 글들을 찾았다. 누군가가 개인적으로 자료들을 모은 것인데, 한번 읽어 볼만하다.

아래는 Toby(일민)이가 예전에 쓴 글이 있어서, 링크를 걸어 놓았다.

[목     차]

    1. 왜 EJB 없는 J2EE 개발에 대해 이야기하는가?
    2. EJB 없는 J2EE 개발이 추구하는 목적
    3. 대표적인 J2EE 아키텍처에 대한 비교
    4. 요구사항을 가장 잘 충족시키는 가장 심플한 것을 찾으라.
    5. 문제 많은 EJB, 그러나 EJB에서 배울 것은 많다.
    6. 경량급 컨테이너와 IoC.

출처 : http://openseed.net:8080/wiki/Wiki.jsp?page=Spring

몇년 전에 EJB로 개발하던 프로젝트가 있었는데, EJB를 꼭 써야 하는지, 정말 필요한지 묻곤했다. 개발하기에 너무 불편했다. 위 내용들을 읽다 보면, 그 때의 그 느낌들이 생각난다.

간단하고, 쉽게 개발할 수 있다면 그게 그 프로젝트에 맞는 옷 일 것이다.
상황과 계절에 맞은 옷을 입을 수 있다면, 그 어떤것이 그보다 편할 수 있을까?


The Simple is The Best!


 

:
Posted by 행복상자
요즘은 OSGi 자료를 찾기위해서 여기저기 헤매고 다니고 있다. 가끔 귀 동량도 하고, 어제는 호주에 있는 Toby(일민)에게 전화도 했다. 이전에는 Skype를 사용해서 통화를 하기는 했지만, 직접 전화를 하지는 않았었다.
회사 정책상 Skype를 사용하기 힘들다. (언제쯤 자유로와 질수 있을지)

작년에 열린 Spring Experence Conference에서 Adrian Colyer의 발표 동영상이다.
동영상은 아래의 링크를 참조하면 볼수 있다.

약 1시간 25분이나 되는 세미나 동영상인데, 화면이 작은 관계로, 이해하는데 어려운 부분도 보인다. 세미나 자료를 한번 찾아 봐야겠다.

OSGI의 장점에 설명하면서, 세미나가 시작이 된다. 가끔 예제도 보이기는 하는데, 작년 8월 경에 열렸던 행사라, 최근에 관련자료가 많을 것이라 예상된다.

동영상 링크: http://www.springframework.org/node/506
Adrian은 Interface21의 CTO라는 것을 처음 알게 되었다. 그는 AspectJ에 관련된 일을 했고, AOP로 잘 알려져 있다고 한다.

시간을 내서 볼만하다.


* 공부할 것도 많아지고 있다.
   - JSR 277 ; java Dynamic Module
   - JSR 291: Dynamin Component Support for Java SE

:
Posted by 행복상자