잘 정리해보자

Spring - IoC, DI, AOP 본문

Spring

Spring - IoC, DI, AOP

토마토오이 2021. 4. 11. 21:30

IoC (Inversion of Control - 제어의 역전)

: 스프링에서는 프로그램의 흐름을 프레임워크가 주도하게 됨으로 제어의 역전이라고 한다.

 

제어권이 컨테이너가 관리하면서 객체의 생성 및 생명주기 관리를 한다.

이러한 제어로 의존성 주입(DI), 관점지향 프로그래밍(AOP) 등이 가능하게 된다.

 

 

DI (Dependency Injection - 의존성 주입)

: 의존성이란, 어떠한 작업1을 변경 하기 위해 다른 작업2 까지 변경해야 하는 경우 작업1이 작업2에 대해 의존성을 가지고 있다고 한다.

그리고 의존성 해결을 위해 객체의 인스턴스를 외부에서 받을 필요가 있다.

(스프링은 setter메소드를 이용한 의존성 주입이다.)

 

 

의존성으로 인해 java코드를 직접적으로 변경해서 작업을 수행해야 하는 경우, 변경 작업을 xml로 따로 빼서 java코드 변경없이 xml을 수정하면 끝낼 수 있게 작업을 하면 의존성 문제가 해결이 된다.

 

xml변경 작업은 환경설정 부분에 해당 됨으로 소스코드 변경과는 상관 없이 프로그램을 제어 할 수 있다.

 

  • 스프링에서 의존성 주입은 환경설정(xml)에서 컨트롤 할 수 있는 것이다. -> 모듈 간 결합도를 낮춰서 유연한 변경을 하기 위해서.

 

스프링MVC 모든 요청과 응답은 DispatcherServlet이 관리한다.

 

 

 

AOP (관점지향 프로그래밍)

: 관점 기준으로 각각을 모듈화 하는 관점지향 프로그래밍으로, OOP인 객체지향 을 더 객체지향으로 사용할 수 있게 한다.

공통적인 기능을 AOP에 정의해서 한 기능을 수행 할 때 이 기능을 수행하기 전에 수행을 하게 설정하거나 기능 후에 실행하게 끔 설정을 하여 쓰는 것이다.

(트랜잭션, 보안, 권한에 대한 처리를 AOP에서 관리)

 

 

 

 

 

 

 

참고 : http://jhleed.tistory.com/61

Comments