[Spring] Spring Framework

Gavin Ariel Lee·2021년 8월 30일
0

Spring Framework

(프레임워크 : 내부에서 모든 것을 해결할 수 있도록 제공하는 틀)

  • 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크(가벼우면서도, 대규모 개발 지원)
  • 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크
  • 동적인 웹 사이트 개발을 위한 여러가지 서비스 제공
  • 대한민국 공공기관의 웹 서비스 개발시 사용을 권장하고 있는 전자정부 표준 프레임워크의 기반 기술

Spring Framework 구조

  • Core Container 중 Bean Container는 POJO 객체를 관리
  • 필요한 것을 선택적으로 사용

Spring Framework 특징

  • 경량 컨테이너로서 자바 객체를 직접 관리
    각 객체의 라이프 사이클 관리, 스프링으로부터 필요한 객체를 얻어온다.

  • POJO 기반의 구성
    구현을 위해 특정 인터페이스 구현, 상속을 받을 필요 없음 -> 기존에 존재하는 라이브러리 지원에 용이, 객체가 가벼움

  • IoC(Inversion of Control) 지원
    컨트롤의 제어권이 사용자가 아닌 프레임워크에게 있음 -> 필요에 따라 스프링에서 사용자의 코드 호출

  • DI(Dependency Inversion) 을 통한 객체 간의 관계 구성
    각 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 연결시켜줌

  • AOP(Aspect-Oriented Programming) 지원
    트랜잰션, 로깅, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리 가능

  • 영속성과 관련된 다양한 서비스 지원
    iBatis나 하이버네이트 등 완성도가 높은 데이터베이스 라이브러리와 연결할 수 있는 인터페이스 제공

  • 확장성이 높음
    많은 라이브러리가 스프링에서 지원, 스프링에서 사용되는 라이브러리 별도로 분리 용이

Spring Framework 모듈

  • Spring Core(Core Container)
    핵심 기능 제공
    코어 컨테이너의 주요 컴포넌트는 BeanFactory(Factory Pattern 구현)

  • Spring Context
    국제화된 메시지, 애플리케이션 생명주기 이벤트 등과 같은 다수의 엔터프라이스 서비스를 제공
    템플릿 프레임워크와의 통합 지원

  • Spring AOP
    설정 관리 기능을 통해 aspect 지향 프로그래밍 기능을 Spring Framework와 직접 통합 -> 모든 객체에서 AOP 가능
    객체에 트랜잭션 관리 서비스 세공
    (EJB 컴포넌트에 의존하지 않고도 선언적 트랜잭션 관리를 애플리케이션과 결합 가능)

  • Spring DAO
    Spring JDBC DAO 추상 레이어는 다른 DB 벤더들의 예외 핸들링, 오류메시지를 관리하는 예외 계층 제공
    JDBC에 의한 DB 엑세스 지원, 트랜잭션 관리의 기반

  • Spring ORM
    프레임워크는 여러 ORM(Object/Relation Mapping) 프레임워크에 플러그인 되어 Object Relational 툴을 제공

  • Spring Web Module
    애플리케이션 컨텍스으 모듈 상단에 구현되어, 웹 기반 애플리케이션 컨텍스트 제공
    다중 요청을 핸들링, 요청 매개변수를 도메인 객체로 바인딩하는 작업을 수월하게 함

  • Spring MVC Framework
    완전한 기능을 갖춘 MVC 구현

profile
As you wish

0개의 댓글