반응형

Spring에 대해서 공부하려고 여기저기 기웃거리다 우연하게 찾은 Tutorialspoint.com 사이트의 Spring 관련 자료를  정리해 보려고 한다. 영문사이트라 가끔은 읽기 귀찮기도 하고, 눈과 이클립스로만 공부하다가 문득 나도 정리라는걸 해봐야 겠다라는 생각도 들고 해서 요약식으로 정리해 보려고 한다.


우선 그 시작으로 개요같은건 넘어가고 Spring Framework - Architecture 시작해보자.


혹시 감사하게도 이 강좌를 보고 공부하려는 분들이 계신다면, 

예제 모두 다 프로젝트 생성하고 타이핑해서 실행하시길 바랍니다.


Spring Framework - Architecture

(원문 위치 : http://www.tutorialspoint.com/spring/spring_architecture.htm)

Spring은 Application을 개발함에 있어 필요한 것만을 선택할 수 있도록 모듈화 되어있다. 
아래는 Spring Framework에서 가능한 모듈에 대한 상세이다. Spring Framework는 약 20개 모듈을 제공한다.

Spring Framework Architecture

Core Container:

Core Container는 Core, Beans, Context, Expression Language 모듈로 구성되어 있다.
    - Core 모듈은 IoC와 DI (Dependency Injection) 특성을 포함하여 Framework의 기본적인 부분을 제공한다.
    - Bean 모듈은 factory pattern의 세련된 구현인 BeanFactory를 제공한다.
    - Context 모듈은 Core와 Bean모듈에 의해 제공되는 신뢰할 수 있는 기반에 의지하고 정의되고 
      설정된 object에 정근하는 매개체이다. ApplicationContext interface튼 Context module의 중요한 점이다.
      (이부분은 해석이 좀 모호해 원문을 함께 써 놓는다.)
      (원문 : The Context module builds on the solid base provided by the Core and Beans modules 
               and it is a medium to access any objects defined and configured. The ApplicationContext interface
               is the focal point of the Context module.)
    - SpEL 모듈은 runtime에 Query와 object graph를 다루는 강력한 Expression language를 제공한다.

Data Access/Integration:

Data Access/Integration layer는 JDBC, ORM, OXM, JMS, Transaction 모듈로 구성된다.
    - JDBC 모듈은 지루한 JDBC 관련 코딩을 하는 필요성을 제거하기 위한 JDBC-추상 layer를 제공한다.
    - ORM 모듈은 JPA, JDO, Hibernate, iBatis를 포함하여 일반적인 object-relational mapping API에 대한 
      통합 layer를 제공한다.
    - OXM 모듈은 JAXB, Castor, XMLBeans, JiBX, XStream에 대한 Object/XML mapping 구현을 지원하는 
      추상 layer를 제공한다.
    - JMS(Java Messaging Service) 모듈은 message생산과 소비를 위한 특징을 포함한다.
    - Transaction 모듈은 특정 interface를 구현한 class 그리고 POJO에 대한 프로그램적 그리고 선언적 
       transaction 관리를 지원한다.

Web:

Web layer는 Web, Web-MVC, Web-Socket, Web-Portlet모듈로 구성된다.
    - Web 모듈은 multipart fileupload기능 같은 web지향 통합 특징과 servlet listener와 
      web지향 Application context를 사용하는 IoC Container의 초기화를 제공한다.
    - Web-MVC 모듈은 Web application에 대한 Spring MVC(model-view-controller)를 포함한다.
    - Web-Socket 모듈은 web application에서 Server와 Client간의 WebSocket기반 양방향통신을 위한 지원을
      제공한다.
    - Web-Portlet 모듈은 Portlet 환경에서 사용되는 MVC 구현을 제공하고, 
      Web-Servlet 모듈의 기능을 반영한다.

Miscellaneous:

기타 중요한 모듈로는 AOP, Aspects, Instrumentation, Web, Test 모듈 등이 있다.
    - AOP 모듈은 method-itercepter 선언과 분리되어야 하는 기능을 구현하는 코드를 깔끔하게 
      분리(decouple)하기 위한 pointcut을 허용하는 AOP(Aspect-Oriented Programming)을 제공한다.
    - Aspect 모듈은 강력한 AOP framework인 AspectJ로 통합을 제공한다.
    - Instrumentation 모듈은 class instrumentation 지원과 application server에서 사용되는 
      class loader 구현을 지원한다.
    - Messaging 모듈은 application에서 사용되는 WebSocket sub-protocol로써 STOMP 지원을 제공한다.
      또한 WebSocket client에서 STOMP 메지지 routing과 processing을 위한 
      annotation programming 모델을 지원한다.
    - Test 모듈은 JUnit 또는 TestNG framework로 Spring component의 테스팅을 지원한다.


반응형

+ Recent posts