BackEnd/Spring

제어의 역전 (IoC)

SambaLim 2019. 1. 28. 23:04
제어의 역전(IoC)

제어의 역전?

제어의 역전( IoC : Inversion of Control )라는 말을 이해하기 위해서는 '제어의 역전'에서 의미하는 제어가 무엇인지, 그리고 이를 왜 역전시키는지에 대해 알아야합니다.

어떤 프로그램을 만들 때, 각 기능들을 만들어 두더라도 이 기능들이 필요에 따라 순서대로 작동하지 않는다면 그 프로그램은 제대로 작동할 수 없습니다. 따라서 각 기능들이 순서대로 작동하게 하기 위해서 제어(Control)가 필요합니다.

위에서 이야기한 제어할 항목들이 적다면 프로그래머가 기능의 순서를 알고 관리할 수 있습니다. 하지만 기능들이 늘어나서 수천, 수만개의 제어할 항목들이 생긴다면 이를 관리하는 것은 불가능에 가까워집니다. 따라서 이 제어를 프레임워크가 관리 하는 것을 역전(Inversion)이라고 합니다.

 

프레임워크에서의 사용

토비의 스프링에 따르면 프레임워크를 이해하기 위해서는 라이브러리와 프레임워크가 어떻게 다른지 이야기를 하며 제어의 역전에 대해 언급합니다.

라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어한다.
단지 동작하는 중에 필요한 기능이 있을 때 능동적으로 라이브러리를 사용할 뿐이다.
반면에 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.
프레임워크는 분명한 제어의 역전 개념이 적용되어 있어야 합니다.

라이브러리는 개발자가 단순히 필요한 기능이 있다면, 라이브러리를 사용하고

이 기능들이 순서대로 사용할 수 있도록 하기위해 프레임워크에는 제어의 역전개념이 있어야 한다고 이야기합니다.

'BackEnd > Spring' 카테고리의 다른 글

Spring jstl 추가하기  (1) 2019.03.09
Spring Controller 메소드 리턴타입 정리  (1) 2019.03.08
VS code에서 Spring 시작하기  (0) 2019.03.02
STS 설치하기  (0) 2019.01.27
iBatis vs MyBatis  (0) 2019.01.14