728x90
반응형
SMALL

1. 제어의 역전(IOC)

2. 의존성 주입(DI)

3. 관심 지향 프로그래밍(AOP)

이런 특징으로 결합도를 낮춰(Loose coupling) 유연한 개발이 가능해졌습니다.

 

1. 제어의 역전(IOC)


제어의 역전 패턴이 인기를 끄는 이유는 프로그램의 생명주기에 대한 제어권이 웹 애플리케이션 컨테이너에 있기 때문입니다. 즉, 사용자가 직접 new 연산자를 통해 인스턴스를 생성하고 메서드를 호출하는 일련의 생명주기에 대한 작업들을 스프링에 위임할 수 있게 되는 것입니다.

쉽게 말해 개념적으로 IOC(제어의 역전)라는 것은 간단한 의미인데, 원래 개발자가 해왔던 일을 컨테이너라는 객체 관리 프로그램이 알아서 해준다는 것이다. 프레임워크를 쓰는 이유 중의 하나가 내가 할일을 프레임워크가 대신해주니 코딩이 편해지고 빨리지는 것이다

IOC는 직관적이지 못하기 때문에 IOC를 구현하는 방법으로는 의존성 주입(DI)이 있습니다.



2. 의존성 주입(DI)

컨테이너에서 관리할 객체를 지정해주고, 코드(app) 내에서는 컨테이너에서 객체를 받아 사용하는 방식
빈을 정의할 때 객체 간 의존 관계를 명시해 코드에서 사용 시 자동으로 주입 받도록 함
스프링 컨테이너는 어플리케이션 작동 과정에 필요한 여러 객체들을 알아서 생성하고 지우고 관리해준다고 했습니다. DI는 개발자가 컨테이너에서 관리될 객체를 지정해줄 때 의존 객체를 지정해주는 작업을 의미합니다



의존성 주입이란? = (DI : Dependency Injection)

객체 사이에 필요한 의존 관계에 대해서 스프링 컨테이너가 자동으로 연결해 주는 것을 말합니다

스프링 컨테이너는 DI를 이용하여 빈(Bean) 객체를 관리하며, 스프링 컨테이너에 클래스를 등록하면 스프링이 클래스의 인스턴스를 관리해 줍니다

의존성이란?? : 간단히 생각하면 스마트폰을 사용하기 위해서는 배터리가 필요합니다. 배터리가 없으면 스마트폰은 사용할 수 없죠? 즉 스마트폰은 배터리에 의존한다고 보면 됩니다. 만약 그 배터리가 스마트폰과 일체형으로 되어있으면 어떤가요?

배터리 교체를 하기 위해선 분리형과 비교해서 가볍게 바꿀 수가 없겠죠?

 

이러한 의존성에 대해서 느슨한 결합이 필요하고 의존성을 주입받아 사용받을 필요성이 있게 되는 겁니다.

 

728x90
반응형
LIST

'공부한 내용' 카테고리의 다른 글

Maven (메이븐)  (0) 2022.07.31
스프링과 스프링 부트  (0) 2022.07.30
메시지 큐 (Message Queue, MQ)  (0) 2022.07.29

+ Recent posts