스프링을 쓰면, Application과 생명주기를 같이하는 객체들을 만들고 각 객체간의 의존성을 설정하는 작업이 상당히 깔끔하게 이루어짐을 알수 있다.
특히 DI라고 불리우는, 의존적 객체를 setter로 설정하는 인터페이스는 일반적이지만 의존성을 명확히 들어내는 좋은 장치다. - 이렇게 의존성을 설정하는 방법이 단일화되면, 내가 이 모듈에서 관심있는것이 무엇이고, 그런 관심사항을 해결하기 위한 의존성이 무엇인지 명확해진다.
이러한 구현이 나는 의존성이 계산되어지는 구현
이라고 생각한다. - 이런식으로 계산된 의존성은 앞에서 말한것처럼 해당 모듈의 역할을 명확하게 들어내준다.
의존성이 계산되어져야한다는 주장에는 사실 싱글턴은 물론이고 Static Function을 사용하지 말자라는 주장도 내포되어 있다. 즉, 의존관계는 DI를 통해서만 하자는 의미이다.
물론 나도 그렇게 프로그래밍을 하고 있지는 않다.. -_-;;
그럼에도 의존성을 계산되어져야 하고 그 방법으로는 필요할때마다가 아닌, 일괄적으로, 특정 약속된 시기에, 한꺼번에 이루어지는것이 계산하기 간단하고 쉬워보이며 따라서 이러한 방법이 모듈 관심사항 집중에 도움을 줄것이다.