입문 Spring

정예진·2026년 4월 14일

Spring

목록 보기
7/19

2026.04.14

스프링의 의존성 주입 방법

의존성 주입(DI, Dependency Injection)은 객체가 필요한 다른 객체를 직접 생성하지 않고, 외북에서 받아 사용하는 방식.

1. 생성자 주입

생성자를 통해 의존성을 주입하는 방식

특징

  • 객체가 생성되는 시점에 의존성이 함께 주입됨.
  • 필수 의존성을 반드시 전달받도록 만들 수 있음.
  • final 사용이 가능해서 값의 변경을 막을 수 있음.
  • 의존 관계가 코드에 명확하게 드러남.
  • 가장 권장되는 방식

장점

  • 객체의 안정성이 높음.
  • 필수값 누락을 방지함.

단점

  • 의존성이 많아질수록 생성자 매개변수가 길어질 수 있음.

2. 필드 주입

필드에 바로 의존성을 주입하는 방식

특징

  • 코드가 짧고 단순해 보임.
  • 의존성을 외부에서 명확하게 확인하기 어려움.
  • final 사용이 어려움.

장점

  • 작성이 간단함.

단점

  • 테스트하기 불편함.
  • 객체의 의존관계가 숨겨져 보임.
  • 유지보수 측면에서 좋지 않음.
  • 일반적으로 권장되지 않음.

3. setter 주입

setter 메서드를 통해 의존성을 주입하는 방식

특징

  • 객체 생성 후 의존성을 주입함.
  • 선택적인 의존성을 처리할 때 사용할 수 있음.
  • 주입 후에도 값이 변동될 가능성이 있음.

장점

  • 선택적 주입에 사용할 수 있음.
  • 상황에 따라 의존성을 바꿔 넣을 수 있음.

단점

  • 필수 의존성 관리에는 적합하지 않음.
  • 객체 상태가 바뀔 가능성이 있어 안정성이 떨어짐.

스프링의 의존성 주입 방식에는 생성자 주입, 필드 주입, setter 주입이 있음. 이 중 생성자 주입은 필수 의존성을 안정적이므로 주입할 수 있고, 의존관계가 명확하게 드러나기 때문에 가장 권장되는 방식임.
필드 주입은 간단하지만 유지보수와 테스트에 불리하고, setter 주입은 선택적 의존성 처리에는 적합하지만 안정성 면에서는 생성자 주입보다 약함.

스프링에서는 세 가지 의존성 주입 방식이 있지만, 안정성과 명확성 때문에 생성자 주입을 가장 많이 사용되고, 공식적으로 권장하고 있음.

0개의 댓글