스프링 프레임워크란?
- Enterprise Application에서 필요한 기능을 제공하는 프레임워크!
- 스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크!
- 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공
- 전자정부 표준프레임워크의 기반 기술로 쓰이고 있음
스프링 프레임워크 특징
1. 경량 컨테이너로서 자바 객체를 직접 관리
- 각각 객체 생성, 소멸과 같은 라이프 사이클을 관리하여 스프링으로부터 필요한 객체를 얻어올 수 있다.
2. 제어 반전(IoC : Inversion of Control)
- 애플리케이션의 느슨한 결합을 도모
- 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.
3. 의존성 주입(DI : Dependency Injection)
- 각각의 계층이나 서비스들 간 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.
4. 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming)
- 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있다.
5. POJO (Plain Old Java Object)방식 지원
- 일반적인 J2EE 프레임워크에 반해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어
기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다.
6. 영속성과 관련된 다양한 서비스를 지원
- iBatis 나 Hibernate 등 이미 완성도가 높은 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스를 제공
7. 확정성이 높다.
- 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에
수많은 라이브러리가 스프링에서 지원되고 있고 사용되는 라이브러리를 별도로 분리하기 용이하다.
8. 트랜잭션 관리 프레임워크
- 추상화된 트랜잭션 관리를 지원하며 설정파일(xml,property,java) 이용한 프로그래밍 방식을 지원
9. MVC(Model - View - Controller) 지원
- Spring MVC 불리는 모델 뷰 컨트롤러 패턴 지원
- DispatcherServlet이 controller 역할을 담당하여 각종 요청을 적절한 서비스에 분산시켜주며 이를
각 서비스들이 처리를 하여 결과를 생성하고 다양한 형식의 View 서비스들로 화면에 표시
스프링 모듈
1. Spring Core
- Spring 프레임워크의 근간이 되는 요소.IoC 또는 DI 기능을 지원하는 영역 담당.
- BeanFactory 기반으로 Bean 클래스들을 제어할 수 있는 기능 지원
2. Spring Context
- Spring Core 바로 위에 있으면서 Spring Core 에서 지원하는 기능 외 추가적인 기능들을
사용하여 좀 더 쉬운 개발이 가능하도록 지원
- JNDI, EJB 등을 위한 Adaptor 포함
3. Spring DAO
- JDBC 기반의 DAO 개발을 좀 더 쉽고, 일관된 방법으로 개발하는 것이 가능하도록 지원
4. Spring ORM
- Object Relation Mapping 프레임워크인 Hibernate, IBatis, JDO 와의 결합을 지원
5. Spring AOP
- Spring 프레임워크에 Aspect Oriented Programming 지원
6. Spring Web
- Web Application 개발에 필요한 Web Application Context 와 Multipart Request 등 기능 지원
7. Spring Web MVC
- Spring 프레임워크에 Web UI Layer 에 Model-View-Controller 을 지원하기 위한 기능
- Struts, Webwork가 담당했던 기능을 Spring Web MVC를 이용하여 대체 가능
'SpringFramework' 카테고리의 다른 글
Maven plugin 에러발생 시 (0) | 2019.07.05 |
---|---|
[Spring] MVC의 라이프 사이클 (0) | 2019.02.20 |