DI란 무엇인가?

  • DI란 스프링만의 기능은 아님, OOP 프로그래밍에서 자주 이용되는 프로그래밍 방법 중 하나
  • JAVA 계열의 다른 프로그래밍을 해봤다면, 이미 사용해본 경험이 있을 수 있음
  • DI를 아이폰과 삼성폰에 비유 가능
    • 아이폰은 배터리가 일체형이라, 배터리 수명이 다 했을 때 단순히 배터리만 갈아끼우면 되지만, 센터에 방문하지 않는 이상 불가능
    • 삼성폰은 배터리 수명이 다해도 배터리만 교체하면 다시 이용이 가능
    • 여담이지만 요즘은 둘 다 일체형으로 나와서 삼성폰도 교체 불가능
    • 프로그래밍에 비유하자면 유연성 있게 필요한 객체를 붙였다가 뗐다가 할 수 있음
  • 의존하는 어떤 객체를 주입하는 것이 결국 DI

스프링 DI와 스프링 컨테이너

  • 스프링 컨테이너 생성 및 빈 객체 호출
    • 빈 객체를 필요로 하는 로직
    • 빈은 스프링에서 주로 .xml 설정파일로 작성되어 있음
    • getBean이라는 간단한 메소드로 언제든지 Bean을 이용 가능
  • 컨테이너 내부 객체끼리 서로 의존 주입 관계를 가지는 것이 DI