본문으로 바로가기

[Spring]SpringFramework 개념 및 특징

category SpringFramework 2019. 2. 18. 21:55
반응형

스프링 프레임워크란?

- 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