Spring Framework 소개
오늘은 우선 간단히 Spring이라는 프레임워크가 어떤 것이며 어떠한 장점이 있는지 알아보도록 하겠습니다^^
Spring Framework는 Rod Johnson의 “Expert One-on-One J2EE Design and Devlopment” 에서 소개된 코드를 기초로 한 J2EE Application Framework이며 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에서 자료를 참고 해 보시기 바라며 다음 강좌부터 하나씩 베일을 벗겨 보도록 하죠^^
댓글 없음:
댓글 쓰기