노무현 대통령 배너

Spring Framework - SubProjects

Development/기술 2007/05/22 01:05 posted by k16wire
스프링 프레임워크를 단순한 프레임워크으로 보기 보다는 제품을 개발하기 위한 에코시스템으로 보는게 더 맞을거 같다. 현재 스프링을 기반으로 하여 공식적으로 진행되고 있는 서브프로젝트는 12개다.
  • Spring Web Flow
    • 웹화면간의 플로우를 동적으로 정의하여 어떤 웹 어플리케이션에서도 재활용 할수 있게 해주는 웹 어플리케이션을 위한 프레임워크
  • Spring Web Services
    • 문서기반의 웹서비스를 만들수 있게 지원해주는 프레임워크로 궁금적인 목적은 계약을 기반으로 한 SOAp서비스를 만드는것이다.
  • Spring Rich Client
    • 리치 클라이언트 프레임워크, 스윙 어플리케이션을 빨리 만들수 있게 해준다.
  • Spring OSGi
    • OSGI 프레임워크에서 스프링 어플리케이션을 빨리 만들수 있게 지원하는 프로젝트
  • Spring JavaConfig
    • 컨피그 프레임워크
  • Spring .NET
    • .NET 기반의 스프링 프레임워크
  • Spring Batch
    • 배치성 어플리케이션 개발을 위한 프레임워크
스프링은 다양한 부분에서 스프링을 활용할수 있도록 서브프로젝트가 활발하게 진행되고 있으며, 이 서브프로젝트들도 완성도 역시 높기때문에 J2EE 어플리케이션에서 스프링의 중요성은 더 높아질것으로 예상된다.


크리에이티브 커먼즈 라이선스
Creative Commons License

Spring Framework - Modules

Development/기술 2007/05/22 00:59 posted by k16wire
사용자 삽입 이미지
스프링은 그 기능에 따라 모듈을 단위로 구분할 수가 있는데 총 7개의 모듈로 이루어져 있다 -  Core, Context, DAO, ORM, AOP, Web, MVC
모든 모듈은 Core를 기반으로 하며, 이 외의 모듈은 반드시 사용해야 하는것은 아니다. 필요에 따라 사용하면 된다.


  • Core
프레임웍의 근간이 되는 부분으로 Ioc와 Dependency Injection과 같은 스프링의 핵심이 되는 특징을 제공한다. BeanFactory를 통해 실제 로직의 구현과 설정을 분리할수 있게 해준다.
  • Context
JNDI, i18N, 서블릿 컨테이너, 리소스 로딩등과 같은 프레임워크로 제공해야 하는 여러 특징들을 제공한다.
  • DAO
벤더별로 JDBC코딩을 하지 않아도 되도록 JDBC 추상화 기능과 POJO에서 트랜젝션 관리를 할수있는 기능을 제공한다.
  • ORM
J2EE에서 즐겨 사용되는 Hibernate, iBatis, JDO, JPA와 같은 OR 멥핑 API와 연계할수 있는 통합 레이어를 제공한다. 이러한 API들과 연계할수 있는 트랜젝션 서비스도 제공한다.
  • AOP
스프링은 AOP Alliance를 따른 AOP를 제공하며 소스 수준의 메타데이터 프로그래밍을 지원한다.
  • Web
Multipart 파일업로드, 서블릿 리스너를 이용한 IoC 컨테이너등 웹 어플리케이션을 위한 기능을 제공한다. WebWork이나 Struts같은 웹 프레임워크와 통합도 지원한다.
  • MVC
웹 어플리케이션의 MVC 모델을 지원한다.

크리에이티브 커먼즈 라이선스
Creative Commons License

'Development > 기술' 카테고리의 다른 글

Windows Vista에서 WCF 개발하기 - Vista와 WCF  (0) 2008/01/07
Spring Framework - SubProjects  (0) 2007/05/22
Spring Framework - Modules  (0) 2007/05/22
Spring Framework - Samples  (0) 2007/05/16
Spring Framework - Installation  (0) 2007/05/08
Spring Framework - Reference  (0) 2007/05/08

Spring Framework - Samples

Development/기술 2007/05/16 00:55 posted by k16wire
  • 스프링 프레임워크 샘플
스프링 프레임워크로 무엇을 할수있는지 알아보는 가장 좋은 방법은 실제로 스프링으로 작성된 어플리케이션을 실행해 보는것이다. 스프링은 6개의 샘플 어플리케이션을 제공한다. 각 샘플이 보여주는 스프링의 특징을 간략히 알아보자.

countries
    페이지 리스트 네비게이션
    로케일
    뷰를 이용한 페이지 구성
    PDF와 엑셀파일 생성
imagedb
    BLOB/CLOB 처리
    네이티브 연결
    파일업로드
    벨로시티(Velocity)와 통합
jpetstore
    iBATIS 연동
    스프링 웹 MVC
    스프링기반의 원격처리
petclinic
    Hibernate 연동
    JMX
    JTA
petportal
    포틀릿
showcases
    dynamic : 그루비(groovy) 연동
    formtags : MVC 폼 태그
    java5-dao :
    mvc-connvention

각 샘플을 돌려보기 위해서는 JBoss나 Tomcat과 같은 컨테이너, MySQL이나 HSQL과 같은 데이터베이스가 필요하다.
  • JPetStore 설치 및 실행
JPetstore는 J2EE의 대표적인 샘플 애플리케이션 PetStore를 스프링과 iBATIS 기반으로 커스터마이징한 버전이다. 간단하게 HSQL 데이터베이스와 톰캣을 이용하여 JPetstore를 실행해 보자. 실행단계를 스텝바이 스텝으로 적어보면 다음과 같다.

    - JDK 1.4.x 이상 설치
    - JAVA_HOME 변수를 환경변수에 추가
    - ANT 1.5 이상 설치
    - ANT의 실행파일을 Path에 추가
    - %SPRING_HOME%/samples/jpetstore/ant warfile 로 war 파일 생성
    - %SPRING_HOME%/samples/jpetstore/dist/jpetstore.war 파일을 Tomcat의
        webapp로 복사하고 톰캣을 실행한다.
    - %SPRING_HOME%/samples/jpetstore/db/hsqldb/server.bat 로 HSQL DB실행
    - 웹브라우저에서 http://localhost:8080/jpetstore URL 입력

모든 단계가 제대로 수행되고 나면 아래와 같은 결과 화면을 볼수있다. 다른 샘플도 비슷한 단계를 통해서 실행이 가능하니 직접 실행해 보기 바란다.
사용자 삽입 이미지



크리에이티브 커먼즈 라이선스
Creative Commons License

'Development > 기술' 카테고리의 다른 글

Spring Framework - SubProjects  (0) 2007/05/22
Spring Framework - Modules  (0) 2007/05/22
Spring Framework - Samples  (0) 2007/05/16
Spring Framework - Installation  (0) 2007/05/08
Spring Framework - Reference  (0) 2007/05/08
Spring Framework - Pilot  (0) 2007/05/07

Spring Framework - Installation

Development/기술 2007/05/08 01:37 posted by k16wire
  • 스프링 프레임워크 다운로드
스프링을 설치하기 위해서는 먼저 프레임워크 파일을 다운로드 해야 한다. 스프링 사이트에서Downloads 메뉴로 들어가면 SourceForge.net의 Spring Framework으로 연결된다. 다운로드가 가능한 파일은 2가지다.

spring-framework-2.0.8.zip
약 10메가 정도되는 스프링 프레임워크의 기본릴리즈 파일이다.

+ dist  Spring 배포 jar 파일과 소스파일
+ docs 레퍼런스 문서

spring-framework-2.0.8-with-dependencies.zip
스프링 프레임워크의 기본적인 릴리즈 파일이외에 스프링을 직접 컴파일 하고, 샘플 어플리케이션을 실행할수 있도록 관련 라이브러리와 샘플소스, 프레임웍 소스가 모두 포함되어 있는 약 60메가정도의 풀버전 파일이다.

+ dist Spring 배포 jar파일과 소스파일
+ docs 레퍼런스 문서
+ lib 스프링 프레임워크를 빌드하고 샘플을 실행하는데 필요한 jar파일
+ src 스프링 프레임워크 소스파일
+ mock 목(mock)과 테스트파일
+ test 스프링 프레임워크 테스트파일
+ tiger/src JDK1.5관련 프레임워크 소스파일
+ tiger/test JDK1.5관련 프레임워크 테스트 파일
+ aspectj/src AspectJ관련 프레임워크 소스파일
+ aspectj/test AspectJ관련 프레임워크 테스트 파일
+ samples 데모 샘플어플리케이션과 showcaes

당근 두번째 풀버전 파일을 다운받는다.
  • 스프링 프레임워크 설치
J2EE 프레임워크에는 이미 알고있듯이 설치라고 부를만한 작업이 많지았다. jar파일을 복사하고 환경변수정도를 설정하면 된다.
하지만 앞으로 개발을 쉽게 하기 위해 두가지 환경이 필요하다.
  1. Eclipse기반의 개발환경
  2. Ant 빌드환경
이외에도 샘플어플리케이션을 실행하기 위해서 다음 어플리케이션이 필요하다.
  1. MySQL
  2. Tomcat
  3. Ant
  4. J2SE
  5. JUnit
어플리케이션 설치에 대한 자세한 설명은 생략한다. 하지만 실제로 샘플 어플리케이션을 실행하고 랩을 진행하기 위한 설정은 추후 추가하도록 하겠다.

크리에이티브 커먼즈 라이선스
Creative Commons License

'Development > 기술' 카테고리의 다른 글

Spring Framework - Modules  (0) 2007/05/22
Spring Framework - Samples  (0) 2007/05/16
Spring Framework - Installation  (0) 2007/05/08
Spring Framework - Reference  (0) 2007/05/08
Spring Framework - Pilot  (0) 2007/05/07
Spring Framework - Session 0  (0) 2007/05/06

Spring Framework - Reference

Development/기술 2007/05/08 00:45 posted by k16wire
  • 스프링 프레임워크 관련서적
스프링 프레임워크를 제대로 이해하기 위해서는 많은 공부가 필요하다. 관련 서적들이 시중에 많이 나와있어서 이를 소개한다.

사용자 삽입 이미지
첫번째 소개할 책은 Manning사의 유명한 in Action 시리즈의 스프링 버전인 스프링 인 액션이다.
원서를 번역한 책으로 에이콘에서 출판되었다. in Action 시리즈 답게 실용적으로 잘 쓰여진 책이다. 다만 스프링의 버전이 1.2.7을 기준으로 하는게 아쉽다. 반드시 2.0을 써야 하는 분이 아니라면 무리 없을거 같다.




사용자 삽입 이미지
두번째 소개할 책은 자바지기로 유명한 박재성님이 직접 쓰신 Spring 프레임워크 워크북이다.
워크북이라는 말에 번역서인줄 알았는데 저서라서 조금은 놀라기도 했다.
내가 알기로는 스프링관련한 저서는 유일하다. 국내서가 드문 현실을 미루어 봤을때 내용을 떠나서 참 반가운 책이다.




사용자 삽입 이미지
세번째는 지난번에도 언급했던 로드존슨(Road Johnson)의 J2EE Design and Development 이다.
말이 필요없는 책이다. 이미 번역되서 expert one-on-one J2EE 설계와 개발이라고 나와있지만 원서를 보라고 권하고 싶다.
(번역의 어려움을 알기에 더 언급은 안하겠음)




스프링 프레임워크 관련한 더 많은 정보는 스프링 사이트의 Book review를 참고하길 바라며 책소개는 여기서 그만 하도록 하겠다. 국내에 더 많은 책이 있을줄 알았는데 생각보다 스프링 관련서가 적어서 실망했다.

  • 스프링 프레임워크 온라인 자료
스프링 프레임워크 만큼 문서화가 잘되어 있는 프레임워크는 드물다. 아니 없는거 같다. 스프링 프레임워크 사이트의 Documentation에 들어가 보면 관련 자료에 대한 링크가 잘 정리되 있다. 책사기 싫으신분, 책살돈 없으신분을 위해 소개한다. ^^

Introducing the Spring Framework
2005년도에 스프링프레임워크를 소개하기위해 TSS에 로드존슨이 작성한 기사. 스프링 관련 TSS기사들도 정리되어 있으니 반드시 읽어보길 권한다.

Spring 2.0: What's New and Why it Matters
스프링 2.0에 대한 특징만 로드존슨이 정리한 글이다. 이미 1.x대 버전을 사용하신 분이라면 2.0에서 변경된 부분을 이해하기에 좋을것 같다.

Reference Manual
HTML과 pdf버전으로 제공한다. 500페이지짜리 책 한권이 통째로 제공된다. 말이 필요없는 레퍼런스다. 한꺼번에 다 보기보다는 옆에놓고 있으면 뿌듯하다.

Turorial - Step by Step
스프링의 튜토리얼은 총 6개 파트로 나누어서 제공하고 있다.

1. Basic Application and Environment Setup
2. Developing and Configuring the Views and the Controller
3. Developing the Business Logic
4. Developing the Web Interface
5. Implementing Database Persistence
6. Integrating the Web Application with the Persistence Layer

장황하게 적었지만 사실 스프링 사이트에 다 들어있는 내용들이다. 이 외에도 수많은 글과 포럼이 스프링 사이트에 링크되어 있다. 이 정도면 책 안사도 될거 같은데요 ^^

크리에이티브 커먼즈 라이선스
Creative Commons License

'Development > 기술' 카테고리의 다른 글

Spring Framework - Samples  (0) 2007/05/16
Spring Framework - Installation  (0) 2007/05/08
Spring Framework - Reference  (0) 2007/05/08
Spring Framework - Pilot  (0) 2007/05/07
Spring Framework - Session 0  (0) 2007/05/06
.NET Framework 3.0 개발환경 구성하기  (0) 2007/02/08

Spring Framework - Pilot

Development/기술 2007/05/07 23:59 posted by k16wire
  • 스프링 프레임워크이란 ?
사용자 삽입 이미지
스프링 프레임워크는 Java/J2EE 애플리케이션을 개발하기 위한 프레임워크이다. 이 프레임워크은  로드존슨(Road Jonhnson)이 Expert One-on-One J2EE Design and Development라는 책을 2002년도에 처음 출간하면서 부터 시작되었다. 이 책에는 스프링이 가져가고자 하는 철학이 모두 담겨있으니 꼭 한번씩 읽어보기를 권한다.

스프링 프레임워크의 공식 사이트에 가보면 "우리의 미션(Mission Statement)"이 자랑스럽게 쓰여있다. ^^
이를 읽어보면 스프링의 특징을 파악하는데 많은 도움이 된다.

  1. J2EE는 사용하기 쉬어야 한다.
  2. 클래스보다는 인터페이스를 사용해야 한다.
  3. JavaBean이 어플리케이션을 설정하는데 가장 좋다.
  4. OO 디자인이 중요하다.
  5. Java는 Exception을 처리가 너무 많다.
  6. Testability가 중요하다.
  • 스프링 프레임워크의 특징
스프링에 대해 본격적으로 들어가기에 앞서 간단하게 스프링이 갖고 있는 특징을 한번 정리해 보자.
  1. The most complete lightweight container
  2. A common abstraction layer for transaction management
  3. A JDBC abstraction layer
  4. Integration with Toplink, Hibernate,JDO,and iBATIS SQL Maps
  5. AOP functionality
  6. A flexible MVC web application framework
각 특징이 뭐라고 구구절절 설명하지 않고 키워드만 뽑아봐도 스프링이 J2EE의 주요 프레임워크나 개념들과 깊은 관련이 있다는걸 알수있다.
  • 스프링 프레임워크를 사용하면 뭐가 좋은가 ?
스프링을 사용하는데는 여러가지 이유가 있겠지만 아무래도 가장 큰 부분은 개발이 쉬어진다는 사실일 것이다. 코딩-테스트로 이루어지는 작업에 EJB를 사용하면서 코딩-배포-테스트로 복잡해지고 이 과정에서 작업시간이 많이 걸린다. 이과정을 단순화함으로서 다양한 장점들을 얻을수가 있게된다.
  • 스프링 프레임워크 구성
스프링이 갖고있는 많은 특징들을 아래 그림과 같이 크게 구분해서 볼수있다.
사용자 삽입 이미지

  • 스프링 프레임워크 버전
사용자 삽입 이미지
2007년5월7일 현재 스프링 프레임워크의 최신 버전은 2.04이다.
2007년 5월 14일 Spring Framework 2.1 M4가 공식버전으로 릴리즈 됐다.
2008년 12월 현재 최신버전은 2.0.8이다.


  • 스프링 프레임워크 라이센스
스프링 프레임워크는 아파치 라이센스 버전 2.0을 따른다.



크리에이티브 커먼즈 라이선스
Creative Commons License

Spring Framework - Session 0

Development/기술 2007/05/06 02:00 posted by k16wire

내가 좋아하는 사람들 중에는 썬에서 자바 에반겔리스트로 활동하는 신상철님이 있다. 이분 인터뷰 기사를 마소에서 보고난후 결심한게 한가지 있다.

"언젠가는 멋진 강좌를 한번 써보리라."

블로그를 쓰기 시작한지 1년만에 꼭 한번 해보고 싶었던 강좌를 시작해 보려고 한다. 그 첫번째 주제로 잡은것이 "스프링 프레임워크(Spring Framework)" 이다.
사용자 삽입 이미지

2007년5월7일 현재 목차는 다음과 같다.(계속 업데이트 예정)
  1. Pilot
  2. Reference
  3. Installation
  4. Samples
  5. Modules
  6. SubProjects
  7. Start-up
나처럼 스프링에 대해 많이 들어봤지만 제대로 공부를 시작하려는 사람에게 도움이 되길 빌면서 한가지 당부하고 싶은것이 있다면 이 강좌를 읽은 분들은 어떤 형태로든 좋으니 피드백을 남겨주길 부탁드린다.
크리에이티브 커먼즈 라이선스
Creative Commons License

Spring Framework의 publisher인 Rod Johnson이 TSS 기조연설중에서 개발자가 눈여겨 봐야하는 기술에 대해 언급한 부분입니다.

In addition, Johnson listed several technologies for developers to watch, including the Inversion of Control and dependency injection design patterns; unit testing and TDD (test-driven development); O/R (object/relational) mapping; post struts 1.x Web technologies such as JavaServer Faces, Spring Model-View-Controller and Tapestry, and value-add Web technologies such as Apache Beehive; and the rich client space.

Johnson also told developers to hone their skills that bring leverage, such as frameworks and methodologies, and to “look beyond Java” and work on communications skills and business skills.

크리에이티브 커먼즈 라이선스
Creative Commons License
OTN의 기사중에 Spring 프레임워크와 Oracle TopLink를 사용하여 어플리케이션을 개발하는 것을 다룬 기사를 봤다. JDeveloper를 기반으로 하지만 유용할듯 하다.

크리에이티브 커먼즈 라이선스
Creative Commons License