이전 게시물에서 "초난감 UserDao" 를 리팩토링 하면서 IoC(제어의 역전)에 대한 개념을 알아봤습니다.
IoC(제어의 역전)이란 사용할 객체를 직접 생성하지 않고, 객체의 생명주기 관리를 외부에 위임하는 구조를 일컫는 개념입니다.
ConnectionMaker 객체를 UserDao 에서 직접 생성하는 기존 방식에서 외부 객체인 DaoFactory 에 ConnectionMaker 생성 권한을 위임하여 UserDao는 더욱더 확장성이 있고, 독립적인 모듈로 변화하였습니다.
이번 게시물에서는 스프링 프레임워크를 사용하여 IoC 기능을 구현해 보겠습니다.
먼저 알아야 하는 용어에 대해 먼저 정리해보겠습니다.
예제를 통해 해당 용어에 대해 알아가보겠습니다.
스프링 프레임워크를 사용하기 위해 다음과 같이 build.gradle에 의존성 모듈을 추가하겠습니다.
원래 토비의 스프링에서는 레거시 스프링 3.0 버전을 사용했으나 저는 스프링 부트 2.0 버전을 사용하겠습니다. (예제를 진행하는데 있어 크게 다른 부분은 없습니다)
plugins {
id 'java'
id 'org.springframework.boot' version '2.5.7'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}
...
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
}
...