IoC, DI, IoC Container, Bean

앞고기랑 소금·2024년 8월 19일

스파르타 TIL

목록 보기
24/43

24일차

IoC (제어역전) & DI (의존성 주입)

  • IoC, DI는 객체지향의 SOLID 원칙 그리고 GoF디자인 패턴과 같은 설계 원칙디자인 패턴
  • 이 둘을 더 자세하게 구분해 보자면 IoC설계 원칙에 해당하고 DI디자인 패턴에 해당함

IoC

  • 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미
  • 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다.
  • 스프링이 모든 의존성 객체를 스프링이 실행될때 다 만들어주고 필요한곳에 주입시켜줌으로써 Bean들은 싱글턴 패턴의 특징을 가지며, 제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 스프링에게 맡겨 작업을 처리

DI

  • 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식
  • DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아짐
  • 첫번째 방법A객체B와 C객체New 생성자를 통해서 직접 생성하는 방법
    두번째 방법은 외부에서 생성 된 객체를 setter()를 통해 사용하는 방법

IoC Container

  • 프로젝트가 실행될때 사용자가 Bean으로 관리하는 객체들의 생성과 소멸에 관련된 작업을 자동적으로 수행해주는데 객체가 생성되는 곳을 스프링에서는 IoC Container라함

Bean

  • 스프링에서는 객체를 Bean이라고 부름

참고한 블로그
https://velog.io/@gillog/Spring-DIDependency-Injection

0개의 댓글