스프링 프레임워크란?
- 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크이다.
- 엔터프라이즈란?
대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 말한다. - 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
참고
- https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%94%84%EB%A7%81_%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC
- https://khj93.tistory.com/entry/Spring-Spring-Framework%EB%9E%80-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-%ED%95%B5%EC%8B%AC-%EC%A0%95%EB%A6%AC
- https://docs.spring.io/spring-framework/docs/4.0.x/spring-framework-reference/html/overview.html