Devops 엔지니어 솔렐레 IT

스프링 프레임워크(Spring Framework) - 프레임워크 개념, Spring 컨테이너 본문

Devops 엔지니어가 알려주는 IT 기본 지식/프로그래밍 (Programming)

스프링 프레임워크(Spring Framework) - 프레임워크 개념, Spring 컨테이너

솔렐레_ 2019. 10. 17. 09:00


안녕하세요. 솔렐레입니다.
이번 포스팅에서는 Spring Framework에 대해 정리하겠습니다. 기본적인 프레임워크의 개념과 Spring 컨테이너에 대한 기본 개념을 설명하겠습니다.


[프레임워크(Framework) 개요]
프레임워크는 뼈대를 의미하며 애플리케이션을 개발할 때 아케텍쳐에 해당하는 골격 코드를 제공합니다. 프레임 워크는 완전한 기능이 제공되는 솔루션과는 다르게 아키텍쳐에 해당하는 절반의 코드를 프레임워크에서 제공하고 나머지 기능에 따라 달라지는 로직은 개발자가 구현할 수 있습니다. 프레임워크를 기반으로 애플리케이션을 개발할 때 변경되지 않고 반복적으로 재사용 되는 부분을 프레임워크 코어라고하며 이는 프레임워크에서 제공하는 라이브러리들을 의미합니다. 이를 기반으로 각 애플리케이션은 확장 포인트를 상속해서 자신만의 기능들을 구현할 수 있습니다.
프레임워크를 사용하게되면 여러가지 장점을 가질 수 있습니다. 잘 만든 프레임워크를 사용하면 애플리케이션에 대한 분석, 설계, 구현 모두를 재사용하는 효과가 있습니다. 이를 통해 빠르게 구현이 가능하며 관리의 용이성이 증가합니다. 또한 점증된 아키텍쳐의 재사용과 일관성을 유지하여 시간이 지나거나 담당자가 변경되었을 경우에도 빠르게 적응하여 개발할 수 있습니다.


[Spring 컨테이너]
1. IoC(Inversion of Control) 컨테이너
IoC 방식이랑 객체의 생성과 객체들간의 의존 관계에 대한 설정을 개발자가 아닌 컨테이너에 의해서 처리하는 것을 의미합니다. Spring 프레임워크에서 제공하는 모든 모듈들은 객체의 생성에서부터 생명주기의 관리까지 모든 객체에 대한 제어권이 개발 코드에서 컨테이너로 바뀌어 Spring Core위에서 동작하도록 되어있으며 IoC 기능을 제공합니다. 대부분의 IoC 컨테이너는 각 컨테이너에서 관리할 객체들을 위한 별도의 Bean 설정파일을 가지며 Spring 프레임워크도 객체들을 관리하기 위해 XML 형대의 저장소를 가집니다. Spring 프레임워크는 기본적으로 어플리케이션의 비즈니스 서비스를 구동 및 관리하는 Spring 컨테이너와 이러한 컨테이너에 의해 관리되는 Bean으로 구성됩니다. Spring 프레임워크에서 Bean은 Spring IoC 컨테이너에 의해 관리됩니다.
Spring IoC 컨테이너는 BeanFactory와 BeanFractory를 상속한 ApplicationContext 두 유형의 컨테이너를 제공합니다.

컨테이너 기능
BeanFactory - Bean의 생성과 소멸 담당
- lazy-loading 방식
- Bean을 Bean 객체가 사용되는 시점에 생성시킴
ApplicationContext - BeanFactory의 모든 기능 제공
- pre-loading 방식
- 컨테이너 구동 시, Bean을 미리 생성시켜 빠름
- 다양한 리소스 로딩 방법 및 클래스 제공
(1) XmlWebApplicationContext: 웹 기반의 Spring 어플리케이션을 개발할 때 사용
(2) FileSystemXmlApplicationContext: 파일 시스템에 위치한 XML 설정 파일을 로딩하려 구동되는 ApplicationContext
(3) ClassPathCmlApplicationContext: 클래스 패스에 위치한 XML 설정 파일을 로딩하여 구동되는 ApplicationContext

 

Comments