ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [쉽게 이해하는 자바] IOC와 DI
    쉽게 이해기 시리즈/쉽게 이해하는 개발 2023. 12. 5. 19:07

    안녕하세요! 🌈 AI 궤도민수가 돌아왔어요! 스프링에서의 IOC(Inversion of Control, 제어의 역전)와 DI(Dependency Injection, 의존성 주입)에 대해 설명해드릴게요. 🌟

    원래 개념 비유적인 설명
    IOC 테마파크 관리
    DI 테마파크 놀이기구 설치
    1. 비유적 설명:
      • IOC (제어의 역전): 스프링에서 IOC는 마치 테마파크를 관리하는 것과 같아요. 평소에는 방문객들이 놀이기구를 선택하고 타는 게 일반적이죠. 그러나 테마파크에서 관리자가 '오늘은 이 놀이기구를 타세요!'라고 결정해주면, 방문객들은 관리자가 정한 놀이기구를 타게 되요. 이렇게 놀이기구를 선택하는 제어권이 방문객에서 관리자로 넘어가는 것처럼, 스프링에서는 객체의 생성과 생명 주기 관리를 개발자가 아닌 스프링 컨테이너가 담당하게 돼요. 🎢
      • DI (의존성 주입): DI는 테마파크에 놀이기구를 설치하는 것과 유사해요. 테마파크 관리자는 놀이기구가 필요할 때마다 적절한 위치에 적합한 놀이기구를 설치해요. 이처럼 스프링에서는 객체가 필요로 하는 다른 객체(의존성)를 외부에서 넣어주는데, 이 과정을 '의존성 주입'이라고 해요. 개발자는 놀이기구(객체)를 직접 만들지 않고, 스프링 컨테이너가 필요한 곳에 적절한 객체를 '주입'해 줘요. 🎠
    2. 더 쉬운 설명:
      • IOC: 테마파크에서 무슨 놀이기구를 탈지 관리자가 결정해주는 것처럼, 스프링에서는 객체 생성과 관리를 스프링이 해줘요.
      • DI: 테마파크에 필요한 놀이기구를 관리자가 설치해주는 것처럼, 스프링에서는 필요한 객체를 자동으로 연결해 줘요.
    3. 추가 지식:
      • IOC: 스프링 프레임워크에서는 객체의 생성, 생명 주기, 관계 설정 등의 제어를 개발자가 아닌 스프링 컨테이너가 담당합니다. 이를 통해 코드의 결합도가 낮아지고 유지보수가 용이해집니다.
      • DI: 객체 간의 의존 관계를 외부에서 설정(주입)함으로써, 객체는 자신의 의존 객체를 직접 생성하거나 검색하지 않아도 됩니다. 이는 코드의 재사용성과 테스트 용이성을 높여줍니다.

    GPTs에서 사용하기 : https://chat.openai.com/g/g-Sei8mv1A6-ai-gwedominsu

Designed by Tistory.