더북(TheBook)

3.5.1 스프링 구성 옵션 설정하기

스프링의 ApplicationContext 구성에 대해 자세히 언급하기 전에, 스프링에서 애플리케이션 구성을 정의할 수 있는 옵션에 대해 살펴보겠습니다. 원래 스프링은 프로퍼티나 XML 파일을 사용해 빈을 정의할 수 있도록 지원했습니다. JDK 5가 출시되고 스프링이 자바 애너테이션을 지원하면서 스프링 2.5부터는 ApplicationContext를 구성하는 데 자바 애너테이션을 지원하기 시작했습니다. 그럼 XML과 애너테이션 방식 중에 어느 것이 더 나을까요? 이 주제에 대해 많은 논쟁이 있었고 인터넷에서 이와 관련된 수많은 논의 내용을 찾아볼 수 있습니다.2 이와 관련해서는 명확한 정답은 없으며 각 방식마다 장단점이 있습니다. XML 파일을 사용하면 모든 구성을 자바 코드에서 분리해 외부에서 관리할 수 있으며, 애너테이션을 사용하면 개발자가 코드 내에서 DI 구성을 정의하고 확인할 수 있습니다. 스프링은 하나의 ApplicationContext에서 두 가지 방식을 혼용해 사용할 수도 있습니다. 일반적인 접근법 중 하나는, XML 파일에 애플리케이션의 인프라(예를 들어 데이터 소스, 트랜잭션 관리자, JMS 연결 팩터리(Connection Factory), JMX 등)를 정의하고 애너테이션으로 DI 구성(주입 가능 빈과 빈의 의존성)을 정의하는 방식입니다. 하지만 어떤 옵션을 선택하든지, 선택한 방법을 일관성 있게 준수하고 전체 개발팀이 분명히 이해할 수 있게 메시지를 명확히 전달해야 합니다. 사용할 구성 방식에 합의하고 애플리케이션 전반에 걸쳐 구성의 일관성을 유지하면 지속적인 개발과 유지보수도 훨씬 쉬워집니다.

XML과 애너테이션 구성에 대한 이해를 돕는 목적으로 적절한 시점에 XML과 애너테이션의 예제 코드를 나란히 제공하겠지만, 이 책은 애너테이션과 자바 구성에 좀 더 초점을 둡니다. XML 구성은 이 책의 4판에서 이미 설명했었습니다.

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