본문 바로가기

좋아하는 것_매직IT/1.spring

2.Spring, 스프링 프레임워크의 모듈은 어떤것이 있을까?

반응형

스프링 프레임워크 모듈에 대해서 알아보자.

  • 스프링 모듈은 스프링 프레임워크가 현재 가장 많이 사용되는 가장 중요한 요소
  • 그럼, 스프링 프레임워크 모듈 개수는?
    • 20개 이상의 모듈을 갖고 있다고 함. ^^
  • 아래는 Application Layer 별로 그룹화된 모듈 구성도이다.

스프링 프레임워크는 크게 아래와 같이 5개의 모듈로 구분할 수 있음.

  • Spring core container
    • 스프링 프레임워크 의존성 주입
    • IoC(Inversion of Control) 컨테이너 및 애플리케이션 콘텍스트의 핵심 기능을 제공함.
    • 모듈/아티팩트 설명 비고
      spring-core - 스프링모듈이 사용하는 유틸리티를 말함.  
      spring-beans

      - spring bean 지원
      - spring core 와 함께 스프링 프레임워크의 핵심 기능인 의존성 주입을 제공함.
      - BeanFactory의 구현을 포함함.

       
      spring-context - BeanFactory를 상속하는 Application context 를 구현
      - 리소스 로드 및 국제화 지원을 제공함.
       
      spring-expression - EL을 확장하고 Bean 속성(배열 및 컬렉션포함) 및 접근처리를 위한 언어를 제공함.

      * EL이란?
       - Expression language의 약자
       - JSP 2.0 스펙에 추가된 개념 
       
  • Crosscutting concerns
    • 로깅및 보안과 같은 모든 Application Layer에 적용할 수 있음.
    • AOP는 일반적으로 횡단 관심을 구현하는 데 사용함.
    • 단위테스트와 통합 테스트는 모든 Layer 에 적용할 수 있으므로 해당 카테고리에 적합함.
    • 모듈/아티팩트 설명 비고
      spring-aop - 메소드 Interceptor와 point cut을 사용해 관점지향 프로그래밍에 대한 기본적인 지원을 제공함.  
      spring-aspects - 가장 인기있는 AOP 프레임워크인 AspectJ와의 통합을 제공함.  
      spring-instrument - 기본적인 Instrumentation 을 제공함.  
      spring-test - 단위 및 통합 테스팅에 대한 기본 지원 제공  

       

  • Web
    • 스프링은 스트럿츠와 같은 대중적인 웹 프레임워크와 훌륭한 통합을 제공하는 것 외에도 자체 MVC 프레임워크인 스프링 MVC 를 제공함.

    • 모듈/아티팩트 설명 비고
      spring-web - 멀티파트 file upload와 같은 기본 웹 기능을 제공함.
      - 스트럿츠와 같은 다른 웹 프레임워크와의 통합을 지원함.
       
      spring-webmvc - 모든 기능을 갖춘 웹 MVC 프레임워크를 제공함.
      - 참고로, 스프링 MVC 에는 REST 서비스를 구현하는 기능도 포함되어 있음.
       

       

  • Bussiness
    • 애플리케이션의 비즈니스 로직을 싱행하는 데 초점을 맞춤.

    • 스프링에서는 일반적으로 비즈니스 로직이 POJO(Plain Old Java Object) 로 구현됨.

    • 모듈/아티팩트 설명 비고
      spring-tx - POJO 및 다른 클래스에 대한 선언적 트랜잭션 관리를 제공함.  
  • Data 
    • 일반적으로 데이터베이스 및 외부 인터페이스와 통신함.

    • 모듈/아티팩트 설명 비고
      spring-jdbc - 상용구 코드를 방지하기 위해 JDBC 를 추상화함.  
      spring-orm - ORM 프레임워크 및 스펙(JPA, 하이버네이트등등)과의 통합을 제공함.  
      spring-oxm - XML 매핑 통합 객체를 제공함.
      - JAXB, Castor등과 같은 프레임워크를 지원함.
       
      spring-jms - 상용구 코드를 방지하기 위해 JMS를 추상화함.  

결론

  • 스프링 프레임워크가 현재 가장 많이 사용되는 가장 중요한 요소는 훌륭한 모듈화 때문인 것 같음.
  • 스프링 프레임워크는 아래와 같이 크게 5가지의 모듈로 표현할 수 있음.
    • 스프링 코어 컨테이너
    • 횡단관심
    • 비즈니스
    • 데이터
  • 오늘도 스프링 프레임워크의 모듈에 대한 마술(?) 한가지 획득완료. 감사합니다. ^^
300x250