더북(TheBook)

3장에서는 제어 역전(IoC) 개념과 어떻게 이 개념이 스프링 프레임워크에 적용되는지 자세하게 살펴봤습니다. 하지만 아직까지는 스프링 코어가 할 수 있는 일의 일부만을 살펴봤을 뿐입니다. 스프링은 기본 IoC 기능을 보완하고 확장하는 다양한 서비스를 제공합니다. 4장에서는 이런 다양한 서비스에 대해 상세하게 살펴봅니다. 특히 다음과 같은 내용을 살펴보겠습니다.

빈 라이프사이클 관리하기: 지금까지 살펴본 빈은 모두 매우 간단하며 스프링 컨테이너와 완전히 분리돼 있었습니다. 4장에서는 라이프사이클의 다양한 시점에 스프링 컨테이너가 빈에 통지를 전달하도록 구성하는 몇 가지 전략을 살펴보겠습니다. 빈에 라이프사이클 이벤트를 전달하려면 스프링이 제공하는 라이프사이클 관련 인터페이스를 구현하거나 스프링이 리플렉션(Reflection)을 사용해 호출할 메서드를 지정할 수 있습니다. JSR-250 자바빈 라이프사이클 애너테이션을 빈에 적용해도 이벤트를 전달할 수 있습니다.

빈이 “스프링을 알게(Spring Aware)”하기: 어떤 경우에는 빈 내부에서 빈 자신이 속한 ApplicationContext를 가져와 사용해야 할 때도 있습니다. 스프링은 이때 사용할 수 있는 두 가지 인터페이스를 제공합니다. 빈이 BeanNameAware를 구현하면 자신에게 할당된 이름을 알 수 있으며 ApplicationContextAware를 구현하면 ApplicationContext를 참조할 수 있습니다. 4.5절에서는 BeanNameAware 인터페이스와 ApplicationContextAware 인터페이스를 구현하는 방법과 애플리케이션에서 이들 인터페이스를 사용할 때 실제로 고려해야 할 사항을 살펴볼 것입니다.

FactoryBean 사용하기: FactoryBean 인터페이스는 그 이름에서 암시하듯 다른 빈을 생성하는 팩터리 역할을 담당하는 빈이 구현해야 할 인터페이스입니다. FactoryBean 인터페이스를 사용하면 기존 애플리케이션에서 사용 중인 팩터리를 스프링에 쉽게 통합할 수 있습니다.

자바빈 PropertyEditor 사용하기: PropertyEditor 인터페이스는 java.beans 패키지가 제공하는 표준 인터페이스입니다. PropertyEditor는 프로퍼티 값을 문자열로 변환하거나 반대로 문자열을 프로퍼티 값으로 변환합니다. 스프링은 PropertyEditor를 폭넓게 사용하는데, 주로 BeanFactory 구성에 들어 있는 값을 읽어서 원하는 타입으로 변환할 때 사용합니다. 4장에서는 스프링이 제공하는 PropertyEditor를 살펴보고 어떻게 이를 애플리케이션에서 사용할지 살펴봅니다. 또한, 커스텀 PropertyEditor를 만드는 방법을 알아봅니다.

스프링 ApplicationContext 자세히 살펴보기: 이미 알고 있는 것처럼 ApplicationContextBeanFactory를 상속하며 모든 애플리케이션에서 사용 가능하게 설계됐습니다. ApplicationContext 인터페이스는 국제화 메시지 지원, 리소스 로딩, 이벤트 발행 등 유용한 추가 기능을 제공합니다. 4장에서는 ApplicationContext가 제공하는 IoC 이외의 기능도 자세히 살펴볼 것입니다. 또한, 웹 애플리케이션을 개발할 때 ApplicationContext를 사용하면 스프링을 얼마나 간편하게 사용할 수 있는지도 간략하게 살펴볼 것입니다.

자바 클래스로 스프링 구성하기: 스프링은 3.0 이전에는 XML과 애너테이션만 사용해 빈과 의존성을 구성할 수 있었습니다. 하지만 스프링 3.0 이후로는 개발자가 자바 클래스를 사용해 스프링의 ApplicationContext 인터페이스를 구성할 수 있습니다. 4장에서는 자바 클래스로 스프링 애플리케이션을 구성하는 방법을 살펴볼 것입니다.

스프링 부트 사용하기: 스프링 부트(Spring Boot)를 사용하면서 스프링 애플리케이션 구성을 훨씬 더 실용적으로 할 수 있게 됐습니다. 스프링 부트 프로젝트를 사용하면 “바로 실행할 수 있는” 프로덕션 수준의 독립 실행형 스프링 애플리케이션을 쉽게 만들 수 있습니다.

개선된 구성 방법 사용하기: 애플리케이션을 쉽게 구성할 수 있는 프로파일 관리, 환경 추상화, 프로퍼티 소스 추상화 등과 같은 기능을 살펴보겠습니다. 해당 절에서는 특정 구성이 필요할 때 각 기능을 어떻게 사용하는지 살펴보겠습니다.

구성에 그루비(Groovy)를 사용하기: 스프링 4.0부터는 그루비 언어를 사용해 기존 XML 구성과 자바 구성을 대체하거나 보완할 수 있습니다.

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