티스토리 뷰

Java/Spring

스프링이란 무엇인가

Jason of the Argos 2022. 2. 8. 18:50
이 글은 토비의 스프링 3.1 Vol.1 서적을 토대로 다른 자료들을 함께 참고하여 정리한 내용입니다.

스프링이란?

스프링은 자바 엔터프라이즈 애플리케이션 개발에 사용되는 애플리케이션 프레임워크다.

 

애플리케이션 프레임워크란?

개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 툴과 공통 프로그래밍 모델, 기술 API를 제공해준다.

(개발자를 편하게 해주는 표준 틀이라고 생각하면 될 것 같다.)

스프링 컨테이너란?

스프링은 스프링 컨테이너 또는 애플리케이션 컨텍스트라고 불리는 스프링 런타임 엔진을 제공한다. 설정정보를 참고하여 애플리케이션을 구성하는 오브젝트 생성하고 관리한다. 독립적으로 동작할 수 있지만 웹모듈에서 동작하는 서비스나 서블릿으로 등록하여 사용한다.

스프링을 사용하기 위해서는 이 스프링 컨테이너를 다루는 방법과 스프링 컨테이너가 애플리케이션 오브젝트를 이용할 수 있도록 설정정보를 작성하는 방법을 알아야한다.

 

공통 프로그래밍 모델?

프레임워크는 어플리케이션 구성 오브젝트들의 생성과 동작 방식에 대한 틀도 제공해 줄 뿐만 아니라

애플리케이션 코드가 어떻게 작성되어야 하는지에 대한 기준도 제시한다. 이 기준을 프로그래밍 모델 이라고 한다.

스프링에는 3가지 핵심 프로그래밍 모델을 지원한다. (흔히 스프링의 3대 요소라고 한다.)

 

1) IoC/DI : 오브젝트 생명 주기와 의존관계에 대한 프로그래밍 모델이다. (스프링의 가장 근간을 이루는 모델)

2) 서비스 추상화: 구체적인 기술과 환경에 종속되지 않도록 유연한 추상계층을 두는 방법이다.

3) AOP: 애플리케이션 코드에서 흩어져서 나타나는 부가적인 기능을 독립적으로 모듈화하는 모델.

               다양한 엔터프라이즈 서비스를 적용하고도 깔끔한 코드를 유지할 수 있도록 해준다.

 

기술API?

다양한 영역에 바로 활용할 수 있는 방대한 양의 기술 API를 제공한다. 다양한 계층에 필요한 주요 기술을 스프링에서 일관된 방식으로 사용할 수 있도록 지원하는 기능과 전략 클래스를 제공한다. 스프링이 제공하는 API와 지원 기술은 모두 스프링의 프로그래밍 모델에 따라 작성되어 있기 때문에 가져다 쓰는 것 만으로도 스프링 프로그래밍 모델을 코드에 자연스럽게 적용하게 된다.

 

 

즉, 스프링을 사용한다는 것은 이 3가지 요소를 활용하여 애플리케이션을 개발한다는 것이다.

1) 클래스를 스프링 컨테이너 위에서 오브젝트로 관리 되도록 하며

2) 코드는 스프링의 프로그래밍 모델에 따라 작성하고

3) 엔터프라이즈 기술을 사용할 때는 스프링 기술 API 및 서비스를 활용한다.

 

출처:

1. 토비의 스프링 3.1 Vol.1 스프링의 이해와 원리

2. https://data-flair.training/blogs/spring-ioc-containers/

 

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

IoC (Inversion of Control) 그리고 DI (Dependency Injection)  (0) 2023.08.21