딱히 스프링이 당장 필요해서라기 보다는 자바에 대한 개념을 견고히 하기 위해서 토비의 스프링 3.1 판을 보고 있는 중…
1.4.3장 제어권의 이전을 통한 제어관계 역전(92page)은 IoC(Inversion Of Control)을 설명한 챕터. 이해가 안 되면 책을 뒤져보라!
짧은 개발경험에서 그나마 IoC가 무엇인지 비교해 볼 수 있는건 Objective-C로 개발할 때의 애플리케이션의 라이프사이클에 따른 콜백 함수를 위임하여 구현하는 것이 아닐까 한다.
프로그램의 플로우 안에서 논리적으로 한 객체가 다른 객체의 메서드를 요청하고, 요청받은 메서드는 또 다른 메서드를 요청하는 단방향적인 흐름도 객체간의 결합도를 높이는 단점이 있다.
즉 객체 간의 결합도를 낮추고 독립성을 높이려면 객체의 생성과 소멸, 요청도 누군가에게 위임하는 팩토리 형태가 소프트웨어 공학적으로 좀 더 건강한 구조라고 할 수 있다는 걸 깨닫게 됨.
부족한 식견이지만 왜 다들 “토비의 스프링”을 극찬하는지 보면서 조금이나마 느끼게 된다.