제어의 역전(Inversion of Control)
제어의 역전(IoC)는 애플리케이션 객체 간의 낮은 결합도를 유지하는데 사용된다.
IoC가 아닌 구조는 개발자가 직접 객체를 생성(new)하고 객체와의 관계를 처리했다면 IoC가 적용된 구조는 개발자가 아닌 컨테이너가 객체와 객체와의 관계를 대신 처리하게 된다.
만약 메소드가 다른 TV로 교체를 하게 된다면??? 메인 메소드의 코드를 대부분 수정해야만 하는 문제가 발생하고 인터페이스와 디자인패턴을 이용하여 객체 간의 결합도를 낮추어도 여전히 개발자의 처리가 필요하다.
만약 TV를 다른 SamsungTV가 아닌 다른 TV로 교체를 한다고 해도 TVUser 클라이언트 소스를 수정하지 않고 오직 applicationContext.xml 파일의 수정만으로 동작하게 할 수 있다. 즉, 코드의 변경없이 환경설정만으로 프로그램을 제어하게 된다.
결론 : 애플리케이션 기능에 변화가 있으면 코드 변경은 불가피하다. 하지만 IoC(제어의 역전)를 통해 최소한의 코드 변경으로 유지보수를 할 수 있다. (낮은 결합도 유지)
'Spring' 카테고리의 다른 글
[Spring] Spring MVC (0) | 2020.11.03 |
---|---|
[Spring] AOP(Aspect Oriented Programming) (0) | 2020.11.02 |
[Spring] 의존성 주입(Dependency Injection, DI) (0) | 2020.11.01 |
[Spring] 스프링 XML 설정 (0) | 2020.04.26 |
[Spring] 스프링 프레임워크 개념 (0) | 2020.04.25 |