개발 일기
스프링 프레임워크(Spring Framework)의 주요 기능 및 특징 본문
안녕하세요.
오랜만에 포스팅이지만,, 차근차근 적어 보도록 하겠습니다.
Spring Framework의 주요 기능 및 특징
1. 스프링은 경량의 빈 컨테이너(Factory)다.
- 스프링 컨테이너는 자바 객체의 생성, 소멸과 같은 라이프 사이클을 관리하며,
스프링 컨테이너로부터 필요한 객체를 검색하여 사용할 수 있다.
2. 스프링은 DI(Dependency Injection) 기능을 지원한다.
- XML 설정 파일을 통해 객체간의 의존관계를 설정할 수 있다.
- 객체는 의존하고 있는 객체를 직접 생성하거나 검색할 필요가 없다.
3. 스프링은 AOP(Aspect Oriented Programming)을 지원한다.
- 로깅, 보안, 트랙잭션과 같은 공통 기능을 핵심 비즈니스 모듈로부터 분리해서
각 핵심 비즈니스 모듈에 적용할 수 있다.
4. 스프링은 POJO(Plain Old Java Object)를 지원한다.
- 스프링 컨테이너에 저장되는 자바 객체는 특정한 인터페이스를 구현하거나 클래스를 상속받지 않아도 된다.
- 따라서 기존에 작성한 클래스를 수정할 필요 없이 스프링에서 사용할 수 있다.
5. 스프링은 트랜잭션 처리를 위한 일관된 방법을 제공한다.
- JDBC를 사용하든, 컨테이너가 제공하는 트랜잭션을 사용하든 XML 설정 파일을 통해
트랜잭션 코드에 상관없이 일관되게 트랜잭션을 제어할 수 있다.
6. 스프링은 영속성과 관련된 다양한 API를 지원한다.
- JDBC를 비롯하여 iBatis, Hibernate, JPA 등 데이터베이스 처리를 위해 사용되는 라이브러리와의 연동을 지원한다.
*영속성(persistence)이란?
데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다.
영속성은 파일 시스템, 관계형 테이터베이스 혹은 객체 데이터베이스 등을 활용하여 구현한다.
영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다.
출처: https://choong0121.tistory.com/entry/영속성-이란 [내일의 나를 만드는 방법]
7. 스프링은 다양한 API를 지원한다.
- JMS, Mail, Scheduling 등 엔터프라이즈 어플리케이션을 구축하는데 필요한
다양한 API를 XML 설정 파일을 통해 손쉽게 사용 할 수 있도록 지원한다.
8. 스프링은 웹 어플리케이션 구축을 위한 MVC 프레임워크를 제공한다.
* Spring Framework 주요 구성 모듈
Spring Framework의 주요 구성 모듈
1. Spring Core
- Spring 프레임워크의 근간이 되는 DI(Dependency Injection) 기능을 지원하기 위한 핵심 모듈이다.
(핵심 컴포넌트는 Bean-Factory이다.)
- BeanFactory는 Inversion of Control (IoC) 패턴을 사용하여 빈 생성 및 빈의 의존 관계를
어플리케이션 코드에서 XML 설정 파일로 분리시킨다.
2. Spring Context
- Spring Core 바로 위에 있으면서 Enterprise Application 개발이 용이하도록 국제화 메시지 처리, 애플리케이션
생명주기, 이벤트, 유효성 검증 등을 지원하는 모듈이다.
- Java EE 기술(JNDI, Mail, JMS, EJB 등)과의 연동을 위한 Adapter들을 제공한다.
3. Spring DAO
- JDBC 기반의 DAO 개발을 좀 더 쉽고, 일관된 방법으로 개발 가능하도록 지원하는 모듈이다.
- DAO 추상 계층에서는 여러 데이터베이스 벤더들의 다양한 예외를 관리 할 수 있도록 중요한 예외 계층을 제공한다.
4. Spring ORM
- Object Relation Mapping Framework(iBatis, Hibernate, JDO 등)와의 연동을 지원하기 위한 모듈이다.
5. Spring AOP
- Aspect Oriented Programming을 지원하기 위한 모듈이다.
- Spring 프레임워크에서 관리되는 모든 객체에서 AOP가 가능하다.
6. Spring Web
- 웹 어플리케이션 개발에 필요한 실행환경을 제공하며, Multipart Request 등의 다양한 기능을 지원한다.
- Struts2, JSF, Webwork 등 다양한 웹 어플리케이션 프레임워크와의 통합을 지원한다.
7. Spring MVC
- MVC 웹 어플리케이션 개발을 지원하기 위한 모듈이다.
- JSP, Velocity, Tiles 등 다양한 View 기술들을 사용하기 위한 API를 제공한다.
Spring Framework의 주요 기능과 특징 및 주요 구성 모듈을 정리해보았습니다.
감사합니다.
'Spring' 카테고리의 다른 글
springMVC설정 순서 정리! (feat. application-config.xml와 mvc-config.xml 비교) (0) | 2021.10.06 |
---|---|
web.xml 이란?? (feat. 기본 설정 해보기) (0) | 2021.10.04 |
DI(Dependency Injection) 의존성 주입에 대해 알아보자! (1) | 2021.09.29 |
모델 2방식과 Spring MVC란? (0) | 2021.09.02 |
Spring 설치하는 방법 (feat. Spring의 시작!) (0) | 2021.09.01 |