WEB/Spring / / 2022. 1. 20. 22:54

[Spring] IOC, DI, AOP 란?

IOC (Inversion of Control)

spring 컨테이너는 객체를 담는 그릇이다. bean의 생성부터 소멸까지 모든 생명주기를 관리한다. (life cycle)

컨테이너가 bean을 관리해주기 때문에 제어의 역전이라고 한다. 컨트롤의 제어권이 개발자에게 있는 것이 아니라 프레임워크에 있는 것이다.

DI (Dependency Injection)

의존성 주입을 의미한다. 대부분의 프레임워크에서는 ICO를 적용한다. 하지만 Spring 프레임워크가 다른 프레임워크와 차별화된 기능은 DI이다. 의존적인 객체를 직접 생성하고 제어하는 것이 아니라 특정 객체가 필요하면 외부에서 가져다 주입하는 방식이다. 그렇기 때문에 new 연산자가 사라진다. 클래스에서 new 연산자 대신에 외부에서 주입하기 때문이다. Spring Container에서 각 객체를 생성할 때는 단 한 번만 실행된다. 이를 Singleton이라 바꿔 말할 수 있다.

AOP (Aspect Oriented Programing)

관심 지향 프로그래밍을 의미한다. 개발을 하다보면 반복되는 작업들이 있다. 공통 작업되는 부분들을 모아서 적절한 시기에 적용하는 개념이다. 따로 코드 밖에서 개발을 해두고 프록시 개념으로 메서드가 실행되기 전, 실행된 직후, 실행 시점에 따라 기능을 적용시킨다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유