더북(TheBook)

좋은 애플리케이션 설계를 도출: DI를 사용한 설계는 보통 인터페이스를 사용한 설계를 의미합니다. 일반적으로 의존성 주입을 기반으로 하는 애플리케이션은 모든 주요 컴포넌트를 인터페이스로 정의하고 DI 컨테이너를 사용해 인터페이스의 구현체를 생성하고 서로 연결합니다. 이러한 설계는 DI나 스프링과 같은 DI 기반 컨테이너가 나오기 전에 자바에서도 가능했지만, 스프링을 사용하면서 수많은 DI 기능을 어렵지 않게 사용할 수 있게 됐고, DI를 지원하는 프레임워크가 아니라 애플리케이션 로직 개발에 집중할 수 있게 됐습니다.

이 목록에서 볼 수 있듯이 DI는 애플리케이션에 많은 장점을 제공하지만 단점도 있습니다. 특히 개발자가 의존성 관련 설정이나 코드에 익숙하지 않다면 연결 관계를 파악하기 어렵습니다. 일반적으로 이것은 개발자가 DI를 경험하지 못한 경우에 나타나는 문제입니다. 더 많은 경험을 쌓고 좋은 DI 코딩 실습(예를 들어 각 애플리케이션 레이어 내의 모든 주입할 클래스를 동일한 패키지에 두는 등)을 하다 보면 개발자는 전체 그림을 쉽게 볼 수 있습니다. 대부분 이런 단점보다 훨씬 더 큰 장점이 있지만 애플리케이션을 계획할 때 이런 부분도 반드시 고려해야 합니다.

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