본문 바로가기
우테코 프리코스/프리코스 오픈미션

제어의 역전이란?

by sloth365 2025. 11. 10.

제어의 역전(IoC, Inversion of Control)은 프로그램의 제어 흐름을 개발자가 직접 관리하는 것이

아니라 외부에서 관리하도록 위임하는 것이다.

 

보통은 개발자가 작성한 코드의 흐름을 프로그램의 시작부터 끝까지 직접 제어한다.

IoC방식은 개발자가 직접 객체를 생성하지 않고 외부에서 관리하도록 하는 것이다.

 

IoC는 어떻게 사용하는 걸까?

의존성 주입을 통해 제어의 역전을 얻을 수 있다.

필요한 객체를 코드 내부에서 직접 생성하는 것이 아니라 외부에서 생성하여 주입해 주는 방식이다.

 

IoC를 그러면 왜 사용하는 걸까?

필요로 하는 객체를 외부에서 주입받으니 생성에 대해 깊이 알고 있을 필요가 없다.

따라서 결합도가 감소한다.

 

의존하는 객체를 변경하더라도 외부에서 다른 객체를 주입시켜주기만 하면 된다.

어떻게 생성하는지 알 필요가 없이 단순히 주입받은 것을 사용하기만 하면 된다.

 

또한 결합도가 낮아짐으로 가짜 객체를 주입시켜서 테스트 용이성까지 챙길 수 있다.

 

결합도가 낮다면 내부 구현의 제약이 줄어들어 재사용성 또한 올라간다.