IoC(제어의 역전)와 DI(의존성 주입)는 소프트웨어 개발에서 객체 지향 프로그래밍과 관련된 개념으로, 코드의 유연성, 확장성, 유지보수성을 향상시키는 데 중요한 역할을 합니다.
- IoC(제어의 역전):
- IoC는 제어의 흐름을 바꾸는 것을 의미합니다.
- 기존에는 개발자가 코드의 제어 흐름을 직접 제어하는 방식이었는데, IoC에서는 그 제어가 프레임워크나 컨테이너로부터 역전되어 객체의 생명 주기와 의존성 관리 등이 자동으로 이루어집니다.
- 이는 개발자가 작성한 코드가 실행 중에 프레임워크에 의해 제어되는 것을 의미하며, 주로 "제어의 역전(Inversion of Control)"이라고 불립니다.
- DI(의존성 주입):
- DI는 객체 간의 의존성을 외부에서 주입하는 것을 의미합니다.
- 객체가 필요로 하는 의존성(다른 객체 또는 서비스)을 직접 생성하는 대신, 외부에서 주입받아 사용하는 방식입니다.
- 이로써 객체 간의 결합도를 낮추고, 유연성과 테스트 용이성을 증가시킵니다.
- DI는 주로 인터페이스를 통해 이루어지며, 구체적인 의존 객체는 런타임에 주입됩니다.
객체 중복 생성 문제 해결
https://github.com/guncow0603/memo/commit/174d211cdbe0c8c5e92b011e9e4ba3645a7e3a8c
강한 결합을 느슨한 결합으로
https://github.com/guncow0603/memo/commit/7e00c142374f554ca10d7ea7d99432c15d7a5de5
Ioc Container와 Bean
https://github.com/guncow0603/memo/commit/529291d59f3bc2db8a7e49eba9736ab70c8b153f