다시 웹, 백엔드로/스프링

IoC / DI

EnoughTT 2024. 6. 1. 18:58

IoC / DI

 

IoC (Inversion of Control)

  • Java 객체를 new 로 생성해 개발자가 관리하는 것이 아닌 Spring Container 에 모두 맡김 (싱글톤 형태로 관리됨)
  • 프레임워크로 제어의 객체 관리의 권한이 넘어감, '제어의 역전' 이라고 함

 

DI (Dependency Injection)

  • 장점
    • 의존성으로부터 격리시켜 테스트에 용이함
    • DI 를 통해 불가능한 상황을 Mock 과 같은 기술을 통해 안정적인 테스트 가능
    • 코드를 확장하거나 변경 할 때 영향을 최소화함 (추상화)
    • 순환참조를 막을 수 있음

 

 

예제

 

- 자바

Main.java

 

IEncoder.java

 

Encoder.java

 

Base64Encoder.java

 

urlEncoder.java

 

 

 

- 스프링

   - IEncoder 는 같음

SpringIocApplication.java

 

ApplicationContextProvider.java

 

Base64Encoder.java

 

UrlEncoder.java

 

Encoder.java

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

feat. 패스트캠퍼스 - Java/Spring 웹 개발 마스터 초격차

'다시 웹, 백엔드로 > 스프링' 카테고리의 다른 글

Object Mapper 활용  (0) 2024.06.02
AOP  (0) 2024.06.02
스프링의 핵심  (0) 2024.05.31
Object Mapper  (0) 2024.05.31
DELETE API  (0) 2024.05.30