[ 2022.10.30 TIL-의존성 주입과 IoC ]

Coosla·2022년 10월 30일
0

TIL

목록 보기
6/29
post-thumbnail

IoC(Inversion of Control)

✏️ IoC란?

  • 제어권 역전
  • 개발자가 직접 의존 관계를 설정하는 것이 아니라 외부(스프링 컨테이너)에서 의존관계를 자동으로 설정해주는 것을 의미

✏️ IoC의 특징

  • 객체가 자신이 사용할 객체를 생성하거나 선택하지 않음
  • 객체가 어떻게 생성되고 사용되는지 알 수 없음
  • 객체 제어 권한을 위임받은 스프링 IoC 컨테이너에 의해 생성되어 사용됨

✏️ IoC 장단점

  • 장점
    • 인터페이스 기반 설계가 가능하여 컴포넌트 재사용이 증가
    • 체계적이고 효율적인 의존상태를 관리 가능
  • 단점
    • 코드 구조 이해가 여려움

✏️ 스프링 IoC 컨테이너

의존성 주입

✏️ 의존성 주입(DI, Dependency Injection)

  • 스프링 IoC 컨테이너를 통해 객체에 의존성을 주입
  • 의존성 주입(DI)도 IoC의 일종

✏️ 의존성 주입 방법

✏️ 의존성 주입 장단점

  • 장점

    • 인터페이스 기반 설계로 코드가 유연
    • 리펙토링 수월
    • 유닛 테스트의 이점
    • 클래스간 결합도를 낮춤
    • 코드가 단순해지고 재사용성을 높여줌
  • 단점

    • 간단한 프롸그램을 만들 때 번거러움
    • DI 컨테이너 자체에 대해 따로 공부해야함
    • 코드 자체가 추상화되어 있어 이해하기 어려움
    • 의존성 주입 프레임워크는 컴파일 단계에서 어노테이션 프로세서를 이용해 파일을 생성하기 때문에 빌드 시간이 늘어남

참고

의존선 주입과 IoC

profile
프로그래밍 언어 공부 정리

0개의 댓글