본문 바로가기
개발/Spring

IoC(Inversion Of Controll)

by BellOne4222 2024. 2. 4.

IoC(Inversion Of Controll)

  • 제어의 역전 -> 제어의 흐름을 바꾼다.
  • 메소드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것
  • 객체의 의존성을 역전시켜 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 하여 가독성 및 코드 중복, 유지 보수를 편하게 할 수 있게 한다.

 

객체 실행 순서

  1. 객체 생성
  2. 의존성 객체 주입 - 스스로가 만드는 것이 아니라 제어권을 스프링에게 위임하여 스프링이 만들어 놓은 객체를 주입
  3. 의존성 객체 메소드 호출

 

  • 스프링이 모든 의존성 객체를 스프링이 실행될 때 만들어주고 필요한 곳에 주입 시켜주면서 Bean들은 싱글턴 패턴의 특징을 가진다.
  • 제어의 흐름을 사용자가 컨트롤 하는 것이 아니라 스프링에게 맡겨 작업을 처리하게 된다.

 

IoC의 분류

  • DL
    • 저장소에 저장되어 있는 Bean에 접근하기 위해 컨테이너가 제공하는 API를 이용하여 Bean을 Lockup하는 것
    • 컨테이너 종속이 증가하기 때문에 주로 DI 사용
  • DI
    • 각 클래스간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것

'개발 > Spring' 카테고리의 다른 글

AOP(Aspect Oriented Programming)  (0) 2024.02.06
스프링 빈 이벤트 라이프 사이클  (0) 2024.02.04
IoC 컨테이너  (0) 2024.02.04
DI(Dependency Injection)  (0) 2024.02.04
Bean  (0) 2024.02.03