70 likes | 338 Views
Spring Framework. 플랫폼개발실 김광욱. 2007.03.29. ◆ 목차. 참고서적 , 참고사이트 용어 웹어플리케이션 아키텍쳐소개 Non-EJB 아키텍쳐 EJB 아키텍쳐 LightWeight Container 아키텍쳐 Spring 소개 특징 장단점 Spring Overview Spring 예제 시연. ◆ 참고서적 , 참고사이트. 참고서적. Spring 프레임워크워크북 ( 한빛미디어 , 박재성 ) ☞URL. 참고사이트.
E N D
Spring Framework 플랫폼개발실 김광욱 2007.03.29
◆ 목차 • 참고서적, 참고사이트 • 용어 • 웹어플리케이션 아키텍쳐소개 • Non-EJB 아키텍쳐 • EJB 아키텍쳐 • LightWeight Container 아키텍쳐 • Spring • 소개 • 특징 • 장단점 • Spring Overview • Spring 예제 시연
◆ 참고서적, 참고사이트 • 참고서적 Spring 프레임워크워크북 (한빛미디어, 박재성) ☞URL • 참고사이트 Javajigi (박재성) ☞URL Younghoe.Info (안영회) ☞URL Toby's Epril (이일민) ☞URL Equinox (Matt Raible) ☞URL
◆ 용어 • 용어 Architecture - HW, SW의 설계사상이나 논리구조 Framework - 애플리케이션개발의 바탕이 되는 템플릿과 같은 역활을 하는 클래스와 인터페이스의 집합 EJB(Enterprise Java Beans) - 분산환경에서 사용되는 객체 (세션빈, 엔티티빈, 메시지드리븐빈) POJO(Plain Old Java Object) - 우리가 흔히 JavaBean으로 알고 있는 클래스 - Servlet, EJB와 같은 특정인터페이스에 종속적이지 않는 모든 클래스 IOC(Inversion of Control) = DL(Dependency Lookup) + DI(Dependency Injection) - 역제어, 제어의 역전현상 - 객체의 생성과 생명주기(Life Cycle)에 대한 객체에 대한 제어권이 바뀜을 의미 JNDI(Java Naming and Directory Interface) - 분산된 환경에서 서버간의 객체를 공유할 방법이 필요할때 내부적으로 사용하는 기술
◆ 웹어플리케이션 아키텍쳐 소개 • Non-EJB - EJB를 사용하지 않는다. - 명확한 아키텍쳐없이 프로젝트의 성격에 따라 다양하게 아키텍쳐가 나온다. - 많은 개발자들이 사용하며, 지금도 많은 프로젝트에서 사용한다. - UI계층, 비지니스계층, 퍼시스턴스계층으로 나누어 개발하기도 한다.(MVC) - 서블릿 컨테이너를 사용한다. • EJB - EJB를 사용한다. - 분산환경을 지원한다. - UI계층과 비지니스계층을 물리적으로 분리하여 어플리케이션 개발의 계층화가 쉽다. - EJB는 비지니스로직만 담당하도록 설계되어 있다.(트랜잭션, 페일오버, 보안을 자동처리) - EJB 컨테이너를 사용한다. • LightWeight Container - POJO를 사용한다. - 경량컨테이너 아키텍쳐이다.(EJB 아키텍쳐와 비교시) - POJO를 관리하는 POJO컨테이너를 가진다.(POJO의 생명주기, 트랜잭션, 보안지원) - POJO컨테이너역활을 하는게 스프링프레임워크이다.(내부에 컨테이너 개념을 가지고 있다.) - 서블릿 컨테이너를 사용한다.
◆ Spring • 소개 - 2002년 Rod Johnson이 자신의 책(☞URL)에 스프링의 개념을 소개. - 2003년 오픈소스 스프링프레임워크 프로젝트가 시작됨. - 2004년 스프링정식버전출시 (1.0 -> 1.1 -> 1.2 - > 2.0) • 특징 - 프레임워크내부에 컨테이너개념을 가지고 있다. (스프링 프레임워크 = 스프링컨테이너 = POJO컨테이너 = IOC컨테이너) cf)Pico, HiveMind - 스프링이 관리하는 POJO객체는 기본적으로 Singleton으로 관리된다. - 각 계층간 통신은 인터페이스를 기반으로 한다. • 장단점 - EJB에 비해서 쉽다. - 서블릿컨테이너에서 실행하므로 이식성이 뛰어나다. - 특정인터페이스(Servlet Spec, EJB Spec)에 비종속적인 POJO기반으로 테스트가 용이하다. - AOP (☞URL) 의 지원으로 EJB컨테이너에서만 가능했던 기능을 지원하는 것이 가능하다. - 분산환경을 지원하지 못한다.( -> Web Services같은 분산환경기술을 이용하여 극복가능) - LightWeight 컨테이너에 대한 표준이 아직 없다. - Non-EJB와 EJB에 익숙한 개발자들에겐 새로운 아키텍쳐를 배워야하는 부담이 있다.
◆ Spring Overview • Spring Overview