더북(TheBook)

02 | 스프링 프레임워크 사용하기

지금까지 살펴본 것처럼 간단한 자바 애플리케이션과 인터페이스를 이용한 깔끔한 설계로 시작했다. 인터페이스를 이용하면 계약을 따르기 때문에 결합을 분리하기 용이하고 특정 구현에 의존하지 않는다. 하지만 유닛 테스트에서 리팩토링이 필요한 코드가 여전히 일부 남아 있다. 예제 2-5는 MySearchEngine 클래스의 인스턴스를 생성해야 함을 보여주는데, 다른 구현체가 필요한 경우 어떻게 될까? 그저 이름만 변경하고 테스트를 위해 다시 컴파일하고 실행하면 될까? 또는 어디선가 이러한 클래스의 인스턴스를 생성해야 할 수도 있다(꽤 힘든 작업이 될 것이다). 이것이 바로 이러한 번거로운 상황을 피하기 위한 어떤 의존성 메커니즘 도구가 필요한 이유다. 달리 말하면 이 의존성을 동적으로 생성하여 새로운 구현이 필요할 때마다 해당 클래스의 인스턴스를 생성하는 일을 피하는 방법이 필요하다.

스프링 프레임워크의 주요 목표는 인스턴스 생성과 객체들 사이의 상호 작용을 가능하게 하는 의존성 주입 컨테이너를 제공하는 것이다. 하지만 스프링 프레임워크를 어떻게 사용할 것인가? 그리고 의존성 주입Dependency Injection이란 무엇일까? 스프링 컨테이너Spring container는? 그럼 코딩을 시작하고 이러한 질문에 답해보자.

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