[꼼꼼한 개발자] 꼼코더

[Spring, Spring Boot] - 생성자 주입을 사용해야 하는 이유(의존성 주입) 간단하고 쉽게 이해하기 본문

간단하고 쉽게/Spring, Spring Boot

[Spring, Spring Boot] - 생성자 주입을 사용해야 하는 이유(의존성 주입) 간단하고 쉽게 이해하기

꼼코더 2023. 7. 7. 09:13
반응형

🧹 간단 정리 

의존성 주입 방법을 선택할 땐 중 생성자 주입을 사용하자

생성자 주입은  코드의 유지 보수성과 테스트 용이성을 향상한다.

 

(자세한 내용은 아래 👀)

 


🧑🏻‍💻 코드 예제

👉🏻 Setter 방식(생성자 주입 적용 전)

public class UserService {
    private UserRepository userRepository;

    public void setUserRepository(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

 

👉🏻 생성자 주입 적용

public class UserService {
    private final UserRepository userRepository;

    public UserService(UserRepository userRepository) {
        this.userRepository = userRepository;
    }
}

 

👍🏻 생성자 주입 적용 시 장점

  • 불변성:  final과 함께 사용하여 한번 설정된 의존성을 변경되지 않게 설정하여 객체의 불변성을 보장. (setter 방식은 변경가능.)
  • 의존성 보장: 객체 생성 시 필수로 필요한 의존성을 전달해야 하여 의존성 누락이나 잘못된 의존성 설정을 방지.(강제할 수 있다.)
  • 테스트 용이성: 생성자 주입은 의존성을 직접 전달하므로, 의존성을 목(mock) 객체로 대체하여 단위 테스트를 수행이 쉬움.
  • 코드 가독성: 생성자 주입은 클래스의 의존성이 명시적으로 드러나기 때문에 코드의 가독성을 높여준다.

결론적으로, 생성자 주입은 의존성 주입을 위한 좋은 패턴으로 여겨지며, 코드의 유지 보수성과 테스트 용이성을 향상시킨다.

Comments