Spring Framework
소개
:namespace
prefix = o ns = "urn:schemas-microsoft-com:office:office" />
오늘은 우선 간단히
Spring이라는 프레임워크가 어떤 것이며 어떠한 장점이 있는지 알아보도록 하겠습니다^^
Spring
Framework는 Rod Johnson의 “Expert
One-on-One J2EE Design and
Devlopment” 에서 소개된 코드를 기초로 한 J2EE Application Framework이며 :namespace prefix = st1 ns =
"urn:schemas-microsoft-com:office:smarttags" />2005년 2월
28일 에 Spring Framework 1.1.5가 릴리스
되었습니다.
Spring이라는 Framework는 단어 그대로 유연한 특성을
가지는 프레임워크라 할 수 있는데 … J2EE용 프로젝트를 위해
설계된 Open Source project이며 내부적으로 구성된
layed Archtecture를 지원하여 J2EE 개발을 쉽게 해 주는 프레임워크
입니다. (Transaction, Persistence, Web User Interface 등의
기능과 컴포넌트를 결합하고 설정할 수 있게 함)
Spring을 이용하면
Middle Tire Object(Bean)에 대해 체계적인 관리가 가능하며 Singleton의 확산을 방지할 수 있으며 Application이
가능하다면 자체 API에 덜 의존하게 되며, Unit
Test가 쉽고 일관성 있는 Data Access Framework을 제공하는 장점이
있습니다. 또한 MVC Model을 적용한 Web 어플리케이션 구축을 위한 독자적인 Class들이 준비되어
있어 Web 어플리케이션의 구축이 가능합니다.
JSP/JSTL, Tiles,
Velocity, FreeMarker, Excel, XSL, PDF 등의 View 기술과
통합이 용이하며 Core에서 제공하는 IoC(Inversion of
Control)가 테스트를 쉽게 해주는데 IoC란 실행 시점에서 의존성을 부가하는
방식으로 개발 시에는 의존성이 거의 없어 JUnit으로 대부분의 클래스를 테스트할 수
있습니다.
위에서 Spring
Framework를 J2EE 어플리케이션을 쉽게 구현하게 해주는 Framework라고 했지만 엄밀하게 본다면 각종 Bean의 생성
및 관리를 하는 Lightweight Container로 볼 수있으며(이 부분에 대해서는 아래에 다시 살펴보도록 하겠습니다.) 그러므로
독립적으로 각종 어플리케이션을 만드는 것이 아니라 Struts나
Webwork, Tapestry등의 다른 Framework와 연계해 이용하는 것이 일반적
입니다. 당연히 Spring Framework는 J2EE의 기능에 의존하고 있는 것은 아니기 때문에 Stand Alone
Application이나 Applet 같은 것에서도 이용이 가능 하구요~
EJB의 경우 기술하는 코드가 EJB에 의존해 버리며 EJB를 지원하지 않는 Container에서는 작성한 코드가 동작하지 않으며 기동하는데 걸리는 시간이 길다는 단점이 있어 이에 대해
Spring Framework에서는 IoC(Inversion of
Control)를 채용하는 것으로 어플리케이션 코드의 Spring Framework
API에의 의존도를 줄이며 Spring Framework가 관리하는 Bean에 대해서는 POJO(Plain Old Java
Object)로서 직접 액세스 할 수가 있기 때문에 Bean을 사용하는데 생기는
overload 또한 없습니다. 나아가 Bean에 대해서 Transaction 처리 등을 추가하는
경우에도 AOP Interceptor를 통한 기능 추가가 가능합니다.
이와 같이 Spring Framework는
Bean의 관리에 수반하는 여러 처리를 가능한 가볍게 처리하므로 Lightweight
Container로서 Spring을 접근해 볼 수도 있습니다.
Spring을 이용한다면
저 수준의 Java Beans 코드는 컨테이너 내부에 포함되며
beans 설정의 대부분은 Spring의 XML
Configuration Service를 사용하면 됩니다. 이를 통해 각 Bean들의 클래스 이름, 필드,
초기값 등을 설정하여 이름을 통해 다른 Bean들을 참조할 수 있습니다. 또한 XML 파일을 이용하여 필드에 대한 초기값을 설정하는데
Java의 reflection 기능을 이용하여 객체를
생성하고 활성화 합니다.
기타사항에 대해서는 www.springframework.org에서 자료를 참고 해 보시기 바랍니다.
오라클자바커뮤니티 추천 실전 개발자 과정 - 개인80%환급
댓글 없음:
댓글 쓰기