Framework

스프링 프레임워크(Spring Framework)의 특징

유호야 2020. 12. 12. 21:08
반응형

스프링의 특징을 한 줄로 서술하면, "IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크"로 표현할 수 있다.

1. 경량(Lightweight)

크기 측면에서 가볍다. 스프링은 여러 개의 모듈로 구성되어 있고, 각 모듈은 하나 이상의 JAR 파일로 구성되어 있다.
그리고 이 몇 개의 JAR 파일만 있으면 개발과 실행이 모두 가능하다. 따라서 스프링을 이용해서 만든 애플리케이션의 배포 역시 매우 빠르고 쉽다.

2. 제어의 역행(Inversion of Control)

우리가 비즈니스 컴포넌트를 개발할 때, 낮은 결합도높은 응집도에 신경을 쓴다.
스프링은 제어의 역행(IoC)을 통해 애플리케이션을 구성하는 객체 간의 느슨한 결합, 즉 낮은 결합도를 유지한다.
객체 사이의 의존관계를 컨테이너가 처리한다. 결과적으로 소스에 의존관계가 명시되는 것이 아니라, 결합도가 떨어져서 유지보수가 편리해진다.

3. 관점지향 프로그래밍(Aspect Oriented Programming, AOP)

관점지향 프로그래밍은 비즈니스 메소드를 개발할 때, 핵심 비즈니스 로직과 각 비즈니스 메소드마다 반복해서 등장하는 공통 로직을 분리함으로써 응집도가 높게 개발할 수 있도록 지원한다.

공통으로 사용하는 기능들을 외부의 독립된 클래스로 분리하고, 해당 기능을 프로그램 코드에 직접 명시하지 않고 선언적으로 처리하여 적용하는 것이 관점지향 프로그래밍의 기본 개념이다. 이렇게 되면 공통 기능을 분리하여 관리할 수 있으므로 응집도가 높은 비즈니스 컴포넌트를 만들 수 있을 뿐만 아니라 유지보수를 혁신적으로 향상시킬 수 있다.

4. 컨테이너

컨테이너는 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 다양한 기능을 제공한다. 컨테이너는 일반적으로 서버 안에 포함되어 배포 및 구동된다. 대표적인 컨테이너로 Servlet 객체를 생성하고 관리하는 'Servlet 컨테이너'와 EJB 객체를 생성하고 관리하는 'EJB 컨테이너'가 있다. 그리고 Servlet 컨테이너는 우리가 사용하는 톰캣 서버에도 포함되어 있다. 애플리케이션 운용에 필요한 객체를 생성하고 객체 간의 의존관계를 관리한다는 점에서 스프링도 일종의 컨테이너라고 할 수 있다.

 

반응형

'Framework' 카테고리의 다른 글

DAY1.05 어노테이션 기반 설정  (0) 2020.12.14
스프링 컨테이너 및 설정 파일  (0) 2020.12.14
결합도(Coupling)가 높은 프로그램  (0) 2020.12.13
프레임워크 개념  (0) 2020.12.12
IoC(Inversion of Control) 컨테이너  (0) 2020.12.12