[Spring] Spring Framework란?

스프링 프레임워크란?

  • 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크이다.
    • 엔터프라이즈란?
      대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 말한다.
    • EJB보다 가벼운 경량 프레임워크이다.
    • 자바 웹 애플리케이션 개발을 위한 오픈소스 프레임워크이다.
    • 동적인 웹 사이트를 개발하기 위해 여러가지 서비스를 제공하고 있다.

스프링 프레임워크 특징

  • 경량 컨테이너
    • 애플리케이션에 사용되는 자바 객체(빈)를 스프링이 권한을 가지고 직접 관리한다.
      • 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리한다.
      • 스프링 컨테이너로부터 필요한 객체를 얻는다.
  • POJO(Plain Old Java Object)방식의 프레임워크
    • 특정한 인터페이스를 구현하거나 상속받을 필요가 없다.
    • 특정한 환경에 종속되지 않는다.
  • 제어 역행(Inversion of Control, IoC) 지원
    • 컨트롤의 제어권을 프레임워크가 가진다.
    • 애플리케이션 간의 느슨한 결합을 제어한다.
  • 의존성 주입(Dependency Injection, DI) 지원
    • 각각의 계층이나 서비스들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
  • 관점 지향 프로그래밍(Aspect-Oriented Programming, AOP)
    • 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리해서 관리할 수 있다.
  • 영속성과 관련된 다양한 서비스를 지원한다.
    • 영속성이란?
      데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다.
  • 수많은 라이브러리가 지원되기 때문에 확장성이 높다.

스프링 프레임워크 구성

스프링 프레임워크는 약 20개의 모듈로 구성된다. 다음과 같이 그룹화할 수 있다.

Core Container

  • Core와 Beans
  • Context
  • Expression Language

Data Access/Integration

  • JDBC
  • ORM
  • OXM
  • JMS
  • Transactions

Web

  • Web
  • Web-Servlet
  • Web-WebSocket
  • Web-Portlet

AOP와 Instrumentation

  • AOP
  • Instrumentation

참고