99클럽 코테 스터디 22일차 TIL Spring 의존성 주입
728x90
  1. 스프링에서의 의존성 주입이란
  2. 스프링에서는 어떻게 구현하는가?
  3. 왜 의존성 주입을 사용해야 하는가?

스프링에서의 의존성 주입이란

  • 객체 지향 프로그래밍에서 중요한 기술.
  • 객체가 다른 객체들에 의존할 때 필요한 의존 객체들을 외부에서 주입해주는 방법

스프링에서는 어떻게 구현하는가?

  1. 생성자 주입
    생성자를 통해 의존성을 주입받음. 객체가 생성될 때 필요한 모든 의존성이 제공되어야 하므로, 객체는 항상 완전하게 초기화 된 상태로 사용될 수 있음.
  2. 세터 주입
    세터 메소드를 통해 의존성을 주입받음. 이 방법은 객체 생성 후에도 의존성을 변경할 수 있어 유연성을 제공하지만, 객체가 완전히 초기화 되지 않은 상태로 사용될 가능성이 있음.
  3. 필드주입
    필드에 직접 의존성을 주입함. 이 방법은 코드가 간결해지지만, 테스트와 코드 재사용 측면에서는 권장되지는 않음.

스프링 프레임워크는 이러한 의존성 주입 기능을 내부적으로 구현하기 위해 리플렉션, 프록시, 빈 라이프사이클 관리 등 다양한 기술을 사용함.

왜 의존성 주입을 사용해야 하는가?

  1. 결합도 감소
    객체들 사이의 의존 관계가 완화되어, 각 객체의 변경이 다른 객체에 미치는 영향을 줄일 수 있음.
  2. 코드 재사용 증가
    각 객체가 특정 구현에 덜 의존적이기 때문에, 다양한 시나리오에서 재사용할 수 있음.
  3. 테스트 용이성 향상
    의존성을 외부에서 주입할 수 있으므로, 테스트용 구현이나 모의 객체(Mock objects) 를 쉽게 주입하여 테스트가 용이해짐.
  4. 코드의 가독성 및 유지보수성 향상
    의존성이 명확하게 구분되어 관리되므로, 코드의 이해와 수정이 쉬워짐.
728x90