본문 바로가기
Dev/Spring

Spring 스프링 프레임워크의 특징

by vellahw 2022. 10. 13.

 

 

Spring은 간단히 말하면 Enterprise Application에서 필요로하는 기능을 제공하는 프레임워크(Framework)이다.  스프링은 JEE가 제공하는 다수의 기능을 지원하고 있기 때문에 JEE를 대체하는 프레임워크로 자리잡고 있다.

실제로 JEE가 제공하는 다양한 기능을 제공하는 것 뿐만 아니라 DI(Dependency Injection), AOP(Aspect Oriented Programing), OOP(Object Oriented Programing)와 같은 기능도 지원하고 있다.

 

🎇 스프링이 제공하는 주요 기능과 특징

1. 스프링은 경량 컨테이너(Container)이다.

: 스프링은 자바 객체를 담고 있는 컨테이너이다. 스프링 컨테이너는 자바 객체의 생성, 소멸과 같은 사이클을 관리하며 스프링 컨테이너로부터 필요한 객체를 가져와 사용할 수 있다.

 

2. DI를 지원

Dependency Injection 즉, 의존성 주입은 객체가 필요로하는 어떤 객체를 생성자(Constructor) 혹은 새터(Setter)를 통해서 주입하는 것을 말한다. 

스프링은 설정 파일이나 어노테이션(Annotation)을 통해서 객체간의 의존관계를 설정할 수 있기 때문에 객체는 의존하고 있는 객체를 직접 생성하거나 검색할 필요가 없다.

 

3. AOP:관점 지향 프로그래밍을 지원

관점 지향 프로그래밍이란 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다.

따라서 트랜잭션이나 로깅, 서큐리티와 같이 여러 모듈에서 공통으로 필요로 하지만 실제 모듈의 핵심은 아닌 기능들을 분리해서 각 모듈에 적용할 수 있다.

 

4. POJO(Plain Old Java Object)를 지원

POJO란 쉽게 말해 특정 기술에 종속되어 동작하는 것이 아닌 순수한 자바 객체를 말한다.

스프링 컨테이너에 저장되는 자바 객체는 특정한 인터페이스를 구현하거나 클래스를 상속 받지 않아도 된다. 따라서 기존에 작성한 코드를 수정할 필요 없이 스프링에서 사용할 수 있다.

 

5. 트랜잭션(Transaction) 처리를 위한 일관된 방법을 제공

JDBC를 사용하든 컨테이너가 제공하는 트랜잭션을 사용하든 스프링은 설정 파일을 통해 트랜잭션 관련 정보를 입력하기 때문에 트랜잭션 구현에 상관 없이 동일한 코드를 여러 환경에서 사용할 수 있다.

 

6. 영속성과 관련된 다양한 API를 지원

스프링은 JDBC를 비롯하여 iBatis, JPA 등 데이터베이스 처리를 위해 널리 사용되는 라이브러리와의 연동을 지원하고 있다.

 

7. 다양한 API에 대한 연동을 지원

스프링은 JMS(Java Message Service), Mail 등 엔터프라이즈 어플리케이션을 개발하는데 필요한 다양한 API를 설정 파일과 어노테이션을 통해서 손쉽게 사용할 수 있도록 지원한다.

 

🎈. 위 특징들과 더불어 스프링은 자체적으로 MVC 프레임워크를 제공하고 있다. 따라서 스프링만 사용해도 MVC 기반의 웹 어플리케이션을 어렵지 않게 개발 할 수 있다. 

 

'Dev > Spring' 카테고리의 다른 글

@InitBinder 어노테이션  (1) 2022.10.18
스프링 Multipart : 파일 업로드 처리  (1) 2022.10.18
스프링 MultipartFile 인터페이스 사용  (0) 2022.10.18
스프링 캐릭터 인코딩 처리 필터 설정  (0) 2022.10.17
스프링 MVC  (0) 2022.10.17

댓글