-
SpringFramework 란?
우선 Framework에 대해서 알아보자
사전적 의미로는 어떤 것을 구성하는 구조 또는 뼈대를 의미한다.
소프트웨어적인 측면에서는 기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 '반제품'을 의미한다.
프레임워크의 장점
- 일정한 장점에 따라 개발이 이루어지므로 개발 생산성과 품질이 보장된 애플리케이션을 개발할 수 있다. 개발 후 유지보수 및 기능의 확장성에서도 고품질을 보장한다.
그렇다면
스프링프레임워크는 무엇일까
스프링프레임워크는 자바 웹 애플리케이션 개발을 위한 오픈 소스 프레임워크이다. EJB보다 가벼운 경량 프레임워크인 것이 특징이다.
스프링의 특징
- 경량 컨테이너(?)의 기능을 수행
- 제어 역행(IoC) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어한다.
- 의존성 주입(DI) 기능을 지원한다.
- 관점지향(AOP) 기능을 지원한다.
- POJO방식의 프레임워크이다.
그럼 여기서 컨테이너란 무엇일까?
톰캣은 서블릿 컨테이너라고 부르는데, 그 이유는 톰캣을 실행하면 톰캣은 서블릿의 생성, 초기화, 서비스 실행, 소멸에 관한 모든 권한을 가지고 서블릿을 관리한다. 스프링은 애플리케이션에서 사용되는 여러가지 빈(객체)을 개발자가 아닌 스프링이 권한을 가지고 직접 관리하는데 따라서 스프링을 컨테이너라고 부르기도 한다.
의존성 주입(Dependency Injection)?
연관 관계를 개발자가 직접 코딩을 통해 컴포넌트 (클래스)에 부여하는 것이 아니라 컨테이너가 연관 관계를 직접 규정하는 것. 코드에서 직접적인 연관 관계가 발생하지 않으므로 각 클래스들의 변경이 자유로워진다(Loosely Coupled)
의존성 주입의 장점
- 클래스들 간의 의존 관계를 최소화하여 코드를 단순화할 수 있다.
- 애플리케이션을 더 쉽게 유지 및 관리할 수 있다.
- 기존 구현 방법은 개발자가 직접 코드 안에서 객체의 생성과 소멸을 제어했지만 의존성 주입은 객체의 생성, 소멸과 객체 간의 의존 관계를 컨테이너가 제어한다.
제어의 역전(Inversion Of Control)?
기존 코드에서는 개발자가 직접 객체를 제어했지만 스프링 프레임워크에서는 객체의 제어를 스프링이 직접 담당한다. IoC의 종류도 여러가지이며, 일반적으로 스프링에서는 DI로 IoC의 기능을 구현하므로 DI라는 용어를 더 많이 사용한다.
스프링의 의존 주입 방법
- 생성자에 의한 주입
- setter에 의한 주입
'Spring' 카테고리의 다른 글
reCAPTCHA v2 (0) 2021.06.26 @RequestBody / @ResponseBody (0) 2021.06.22 HttpSession (0) 2021.06.20 Spring-4[Filter, AOP, Interceptor] (0) 2021.06.12 Spring-3[log4j] (0) 2021.06.11