200 likes | 455 Views
Architecture. Architecture – Non EJB Architecture. Architecture – Non EJB Architecture. 장점 !!. Servlet Engine 에서 서비스 가능 . - Cheaper License, Easier administration. Application Server, Servlet Engine 에 대해 더 좋은 Portability. Simpler Implemenation - POJO business Object, No JNDI lookup
E N D
Architecture – Non EJB Architecture 장점!! • Servlet Engine에서 서비스 가능. - Cheaper License, Easier administration. • Application Server, Servlet Engine에 대해 더 좋은 Portability. • Simpler Implemenation - POJO business Object, No JNDI lookup • 번거로웠던 Deployment descriptors가 필요없음 • Quicker code-deployment cycle. 단지 war파일 하나만 deploy하면 됨
Architecture – Non EJB Architecture 단점!! • Remote 분산환경에 대한 지원이 부족. • 표준화된 환경과 관리 부족. 유지 보수의 어려움. • Business Service Layer에 대한 불명확함. • EJB의 선언적인 Transaction 관리와 같이 미리 제공하는 기능이 없음. 필요한 기능이 있을 때마다 구현 필요. • Application이 점점 커짐에 따라 Application의 일관성 부재 • Testability가 EJB보다 좋을 수 있으나 경우에 따라 다름.
Architecture – Classic EJB Architecture 장점!! • 정형화된 Service Layer 제공 • 선언적인 Transaction 관리와 같은 EJB 서비스 제공 • Business Object를 여러 서버에 분산이 가능 • 많은 개발자들이 개발에 익숙한 상태
Architecture – Classic EJB Architecture 단점!! • 실행속도와 개발속도등 여러 부분에서 상당한 overhead가 발생함. • OO(Object Oriented)의 제한된 구현만이 가능함. • 테스트하기 어려움. 항상 EJB Container에서만 테스트가 가능함.
Architecture – Local EJB Architecture 장점!! • 분산환경을 제외한 Remote EJB 아키텍처의 모든 강점을 제공 • RemoteException을 처리하지 않아도 됨
Architecture – Local EJB Architecture 단점!! • Remote 분산환경을 제공하지 않음 • 테스트하기 어려움. 항상 EJB Container에서만 테스트가 가능함. • 아키텍처가 여전히 복잡함
Architecture – Lightweight Container Architecture 장점!! • A simple but powerful • Horizontal scalability는 높음. • EJB보다 배우기 쉬우며, Configuration 또한 쉽다. • AOP의 지원으로 인해 선언적인 Transaction 관리와 같이 EJB에서 지원하던 기능들의 지원이 가능함.
Architecture – Lightweight Container Architecture 장점!! • Servlet Engine에서 실행이 가능함. • Application Server와 Servlet Engine의 Portability 높음. • IoC(Inversion of control)을 통한 Business Object의 관리가 용이함. • POJO임으로 Testability가 높음. • OOP의 제한이 없음.
Architecture – Lightweight Container Architecture 단점!! • Remote 분산환경을 지원하지 않음. Web service를 통하여 해결 가능. • 현재 Lightwegiht Container에 대한 표준이 없음. • EJB 아키텍트와 개발자들에 친숙하지 않음.
Architecture – Lightweight Container Architecture 단점!! • Remote 분산환경을 지원하지 않음. Web service를 통하여 해결 가능. • 현재 Lightwegiht Container에 대한 표준이 없음. • EJB 아키텍트와 개발자들에 친숙하지 않음.
Spring Introduction Spring은 Lightweight Application Framework
Spring Introduction • Spring Core : Spring 프레임워크의 근간이 되는 IoC(또는 DI) 기능을 지원하는 영역을 담당하고 있다. BeanFactory를 기반으로 Bean 클래스들을 제어할 수 있는 기능을 지원한다. • Spring Context : Spring Core 바로 위에 있으면서 Spring Core에서 지원하는 기능외에 추가적인 기능들과 좀 더 쉬운 개발이 가능하도록 지원하고 있다. 또한 JNDI, EJB등을 위한 Adaptor들을 포함하고 있다.
Spring Introduction • Spring DAO : 지금까지 우리들이 일반적으로 많이 사용해왔던 JDBC 기반하의 DAO개발을 좀 더 쉽고, 일관된 방법으로 개발하는 것이 가능하도록 지원하고 있다. Spring DAO를 이용할 경우 지금까지 개발하던 DAO보다 적은 코드와 쉬운 방법으로 DAO를 개발하는 것이 가능하다. • Spring ORM : Object Relation Mapping 프레임워크인 Hibernate, IBatis, JDO와의 결합을 지원하기 위한 기능이다. Spring ORM을 이용할 경우 Hibernate, IBatis, JDO 프레임워크와 쉽게 통합하는 것이 가능하다.
Spring Introduction • Spring AOP : Spring 프레임워크에 Aspect Oriented Programming을 지원하는 기능이다. 이 기능은 AOP Alliance 기반하에서 개발되었다. • Spring Web : Web Application 개발에 필요한 Web Application Context와 Multipart Request등의 기능을 지원한다. 또한 Struts, Webwork와 같은 프레임워크의 통합을 지원하는 부분을 담당한다. • Spring Web MVC : Spring 프레임워크에서 독립적으로 Web UI Layer에 Model-View-Controller를 지원하기 위한 기능이다. 지금까지 Struts, Webwork가 담당했던 기능들을 Spring Web MVC를 이용하여 대체하는 것이 가능하다. 또한 Velocity, Excel, PDF와 같은 다양한 UI 기술들을 사용하기 위한 API를 제공하고 있다.