더북(TheBook)

3.6.1 자동와이어링을 사용하는 경우

자동와이어링을 사용해야 하는가라고 묻는다면 정답은 거의 ‘아니오’입니다. 자동와이어링은 소규모 애플리케이션에서 시간을 절약할 수 있지만 많은 나쁜 사례로 이어질 수 있고, 대규모 애플리케이션에서는 유연성이 떨어집니다. byName을 사용하는 것이 좋은 생각처럼 보일 수 있지만, 이 방법은 사용자가 자동와이어링 기능의 장점을 얻으려고 클래스에 인위적인 프로퍼티 이름을 지정하는 결과로 이어집니다. 스프링의 모든 철학은 사용자가 원하는 대로 클래스를 생성할 수 있고, 스프링이 사용자 작업을 도와주는 것이지, 그 반대가 아닙니다. ApplicationContext 내에 각 타입별로 하나의 빈만 가질 수 있다는 것을 깨닫기 전까지 byType을 사용하고 싶은 유혹을 받을 수 있습니다. 이는 서로 다른 구성으로 동일한 타입의 빈을 유지해야 할 때 문제가 될 수 있습니다. 동일한 인수가 생성자 자동와이어링에도 적용됩니다.

때로는 자동와이어링을 사용하면 시간을 절약할 수 있지만, 실제로 와이어링을 명시적으로 정의하는 것이 노력이 아주 많이 드는 것은 아니며, 프로퍼티 이름을 지정하면 프로퍼티 이름도 자유롭게 관리할 수 있고 관리하는 같은 타입의 인스턴스 개수도 유연하게 관리할 수 있습니다. 중요한 애플리케이션이라면 자동와이어링을 사용하지 말아야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.