[Spring] DI(의존성 주입)와 IoC(제어의 역전)에 대해서

GaramFlow·2023년 10월 30일
0

DI, IoC

  • DI와 IoC에 대해서 알아본다.
  • 해당 개념의 구현방법에 대해서 알아본다.

1) 제어의 역전, IoC (inversion of Control)

(1) IoC란?

  • IoC를 번역하면 제어의 역전이다.
  • 프로그램의 제어 흐름을 사용자의 코드가 아니라 외부 시스템이 관리하는 설계 원칙이다.

(2) IoC의 장점

  • IoC를 사용하면 코드가 모듈화가 되고 테스트하기 쉬워진다.
  • 컴포넌트간의 결합도가 낮아지고 코드 재사용성이 높아진다.

(3) IoC의 예시

  • Spring Framework에서 스프링 컨테이너는 객체 생성과 의존성 관리, 생명주기 등을 제어한다.

2) 의존성 주입, DI (Dependency Injection)

(1) DI란?

  • IoC의 한 형태로 객체가 필요로 하는 의존성을 외부에서 주입하는 방식이다.
  • 객체가 필요로 하는 다른 객체들이나 설정을 프레임워크 등에서 생성하여 전달해준다.

(2) DI 구현하기

  • 생성자 주입하기 : 의존성이 생성자를 통해 주입된다.
  • 세터 메소드 주입하기 : 세터 메소드를 통해 의존성을 주입한다.
  • 필드 주입하기 : 필드에 직접 의존성을 주입한다.

(3) DI의 예시

  • Spring Framework에서 DI를 사용해서 객체 간 의존성을 관리한다.
    • @Autowired 어노테이션을 사용해서 필요한 의존성을 주입받을 수 있다.

3) IoC와 DI

  • IoC는 프로그램의 제어 흐름을 외부에 위임하는 더 큰 개념이다.
  • DI는 IoC의 원칙을 구현하는 방법으로 IoC를 실현하는 한 가지 수단이다.
profile
간단한 지식 저장 및 공유를 위한 블로그입니다.

0개의 댓글