IoC, DI

어겐어갠·2022년 4월 4일
0

의존성 주입 DI란?

구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부에서 설정을 통해 정의되는 방식이다.
코드 재사용성을 높이고 모듈간 결합도를 낮춘다.

의존성?

객체 협력간 생기는 결합도

  • 컴파일타임 의존성 : 코드작성 시점에서 발생,
  • 런타임 의존성 : app 실행 시점에서 발생.

의존성을 주입하는 방법은 여러가지가 있는데

  • 생성자 주입
  • 세터 주입
  • 필드에서 주입

부가적으로 @Autowired를 활용하는 방법이 있는데 각각의 방법에 애노테이션을 붙이면된다. 만약 생성자의 경우 단일생성자라면 자동으로 붙여준다.

이중 생성자를 통한 주입을 추천하는데 그 근거로는

  • 초기화시 모든 의존관계를 형성하여 안전함
  • 잘못된 패턴을 찾을 수 있음
  • 테스트가 쉽다
  • 불변성을 확보할 수 있다

제어의 역전(IoC)?

객체와 객체간의 연결을 할때 본인이 필요한 객체를 직접 명시하는 것이 아니라,
이 연결을 관리하는 프레임워크를 두어서 제어에 대한 권한을 역전시키는 것.
이로서 객체간의 연결에 대한 책임에서 벗어나서 결합도가 낮춰지는 효과를 얻고, 이로 인해 수정 등이 쉬워진다.

profile
음그래

0개의 댓글