더북(TheBook)

1.1.3 의존성 주입의 발전 과정

지난 몇 년 동안 스프링과 다른 DI 프레임워크의 인기 덕분에 DI는 자바 개발자 커뮤니티에서 폭넓게 받아들여졌습니다. 이와 함께 개발자들은 DI를 사용하는 것이 애플리케이션 개발의 모범 사례라고 확신하게 됐고, DI를 사용하는 장점도 잘 이해하게 됐습니다.

2009년에 자바 커뮤니티 프로세스(Java Community Process, JCP)가 JSR-330(자바를 위한 의존성 주입) 사양을 채택하면서 DI의 인기를 인정받았습니다. JSR-330은 공식적인 자바 사양이 됐고, 예상했을지도 모르겠지만 이를 주도한 사람 중 한 명이 스프링 프레임워크의 창시자인 로드 존슨이었습니다. JEE 6에서 JSR-330은 전체 기술 스택의 사양에 포함됐습니다. 한편 EJB 아키텍처(버전 3.0부터) 또한, 획기적으로 개선됐습니다. 개선된 EJB 아키텍처는 다양한 엔터프라이즈 자바빈즈 애플리케이션 개발을 쉽게 하기 위해 DI 모델을 도입했습니다.

DI에 대한 자세한 설명은 3장에서 다루겠지만, 여기서는 기존의 방법보다는 DI를 사용하면 얻을 수 있는 장점에 대해 살펴보겠습니다.

접착(glue) 코드 감소: DI의 가장 큰 장점 중 하나는 애플리케이션의 컴포넌트를 서로 연결할 때 작성해야 하는 코드의 양을 크게 줄일 수 있다는 점입니다. 물론 이러한 코드는 의존 관계를 생성할 때 단순히 객체의 인스턴스를 생성하는 정도로 간단합니다. 하지만 JNDI 저장소(repository)에서 의존성을 가져오거나 원격 리소스와 같이 의존성을 직접 호출할 수 없을 때는 접착 코드가 매우 복잡해질 수 있습니다. 이러한 경우 DI를 사용하면 자동 JNDI 룩업(lookup)과 원격 리소스의 자동 프록시 기능을 이용해 접착 코드를 단순하게 만들 수 있습니다.

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