더북(TheBook)

2장에서는 제어 역전(Inversion of Control, IoC)과 기본 원리를 살펴보았습니다. 보통 두 용어를 혼용하는 모습도 종종 보이지만, 사실 의존성 주입(Dependency Injection, DI)1은 IoC의 특수한 형태입니다. 3장에서는 IoC와 DI의 상호 관계를 알아본 뒤 스프링이 둘 사이에서 어떻게 작동하는지 상세하게 살펴보겠습니다.

IoC와 DI의 개념을 정의하고 스프링과의 관계를 살펴본 뒤에 스프링 DI 구현에 필요한 몇 가지 개념을 살펴보겠습니다. 3장에서는 스프링 DI 구현체의 기본적인 내용만 다루고, DI의 더 상세한 기능은 4장에서 다루겠습니다. 세부적으로 3장에서는 다음 주제를 살펴봅니다.

IoC 개념: 의존성 주입과 의존성 룩업(Dependency Lookup)을 포함한 여러 종류의 IoC에 대해 알아봅니다. 또한, IoC 접근 방식은 다양한데, 각각의 장단점과 차이점을 살펴보겠습니다.

스프링 IoC: 스프링에서 사용할 수 있는 IoC 기능과 그 기능을 사용하도록 구현하는 방법에 대해 살펴봅니다. 특히 스프링이 제공하는 수정자(setter), 생성자(constructor), 메서드(method) 주입과 같은 의존성 주입 서비스에 대해 살펴봅니다.

스프링 DI: 스프링의 IoC 컨테이너 구현체를 살펴봅니다. 스프링 빈(Bean)을 정의하고 DI 요구사항을 만족시키는 BeanFactory는 애플리케이션에서 스프링을 조작할 때 사용하는 주요 인터페이스입니다. 하지만 3장에서 제공하는 예제는 처음 몇 예제를 제외하고는 ApplicationContext 인터페이스의 사용 방법에 초점을 맞추고 있습니다. 이 ApplicationContextBeanFactory를 상속할 뿐만 아니라 훨씬 더 강력한 기능을 제공합니다. 3장 후반에서 BeanFactoryApplicationContext의 차이점에 대해 살펴봅니다.

스프링 애플리케이션 컨텍스트 구성하기: XML과 애너테이션 방식으로 ApplicationContext를 구성하는 방법을 살펴봅니다. 그루비(Groovy)와 자바로 구성하는 방법은 4장에서 자세히 살펴봅니다. 3.5절에서는 먼저 DI 구성에 대해 알아보고 BeanFactory가 제공하는 부가 서비스인 빈(Bean) 상속, 라이프 사이클 관리, 자동와이어링(autowiring)을 살펴봅니다.

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