카테고리 없음

내일배움캠프 24일차 - IoC (Inversion of Control)란?

본성 2024. 8. 16. 20:17
반응형

말복이 지나는 8월 어느 날...

 

광복절이 지나 가을이 다가오고 있다.

 

대한민국은 사계절을 가지고 있는 나라이다.

 

나도 Spring을 배우고 있는 입장에서 나의 Spring도 오겠지???


IoC (Inversion of Control)란?

Spring

 

1. Spring에서 ioc란 Inversion of Control의 약자이다.

 

2. ioc는 제어 반전, 제어의 반전, 역제어는 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 그리고 전통적인 프로그래밍에서 흐름은 프로그래머가 작성한 프로그램이 외부 라이브러리의 코드를 호출해 이용한다. 하지만 제어 반전이 적용된 구조에서는 외부 라이브러리의 코드가 프로그래머가 작성한 코드를 호출한다. 

 

3. 설계 목적상 제어 반전의 목적은 다음과 같다:

  • 작업을 구현하는 방식과 작업 수행 자체를 분리한다.
  • 모듈을 제작할 때, 모듈과 외부 프로그램의 결합에 대해 고민할 필요 없이 모듈의 목적에 집중할 수 있다.
  • 다른 시스템이 어떻게 동작할지에 대해 고민할 필요 없이, 미리 정해진 협약대로만 동작하게 하면 된다.
  • 모듈을 바꾸어도 다른 시스템에 부작용을 일으키지 않는다.

4. 과정으로는 

 

 객체의 생성 및 관리:

  • ApplicationContext를 사용하여 빈(Bean)을 생성하고, 관리한다.
  • 빈은 일반적으로 Spring이 제어하며, 개발자는 객체의 생성과 관리를 직접 처리하지 않는다.

 의존성 관리:

  • 객체 간의 의존성을 Spring이 주입(DI)한다.
  • 객체가 필요로 하는 다른 객체를 직접 생성하거나 찾는 대신, Spring 컨테이너가 의존성을 주입해 주다.

 제어 흐름의 역전:

  • 개발자가 코드의 제어 흐름을 결정하지 않고, 프레임워크가 객체의 라이프사이클 및 실행 흐름을 관리한다.

더욱 간결하게 해 준다!!!

 

5. ioc형태를 쓰는 이유는 Spring의 IoC 코드의 모듈화, 테스트 용이성, 유지보수성 등을 향상하는 중요한 원리로써, Spring의 핵심 기능 중 하나로, 우리가 Spring으로 프로젝트를 구현하기 위해 항상 사용하던 것들이었다.

 

 

다음에는 DI도 알아보자~~


 

https://ko.wikipedia.org/wiki/%EC%A0%9C%EC%96%B4_%EB%B0%98%EC%A0%84

 

제어 반전 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 제어 반전, 제어의 반전, 역제어는 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 줄여서 IoC

ko.wikipedia.org

https://velog.io/@jinyeong-afk/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-Spring-IoC-Inversion-of-Control%EC%99%80-DI-Dependency-Injection%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC

 

[기술 면접] Spring IoC (Inversion of Control)와 DI (Dependency Injection)에 대하여

Spring을 사용하며 IoC와 DI라는 말을 굉장히 많이 들어봤고, 그것을 활용한다는 말을 굉장히 많이 들어왔는데 IoC와 DI가 정확히 무엇이고, 어떤 식으로 활용되는지는 자세히 알지 못한다. 오늘은

velog.io

 

출처


오늘의 느낀점

 

1. 내 인생의 경험이도록

 

2. 시행착오....!

 

3. 방향성이 필요하다::

 

꾸준히 해보자....

반응형