오늘 뭐했냐/개발에 대한 주저리
23.08.11 DI와 IoC
스스로에게
2023. 8. 15. 01:26
DI : Dependency Injection, 의존성 주입. 소프트웨어 개발에서 컴포넌트들 간의 의존성을 느슨하게 만들어주는 설계 원칙을 나타낸다. DI는 클래스나 모듈 등이 외부에서 필요한 의존성을 직접 생성하는 것이 아니라, 외부에서 주입받도록 하는 패턴을 말한다. 이를 통해 유연한 코드를 작성하고 테스트 용이성을 높일 수 있다.
IoC : Inversion of Control, 제어 역전. 이는 소프트웨어의 제어 흐름을 개발자가 아닌 프레임워크나 컨테이너에 의해 결정되는 것을 나타낸다. IoC는 DI와 관련이 있으며, DI 패턴을 사용하여 IoC를 구현할 수 있다. IoC는 코드의 결합도를 낮추고 유연한 애플리케이션을 개발하는 데 도움을 줄 수 있다.
이렇게 설명은 나오는데 솔직히 잘 모르겠다. 대부분 스프링에 대한 설명이라 node를 사용해서인지 잘 이해되지 않고 코드를 봐도 잘 모르는 부분이 많았다. 그나마 DI는 인터페이스의 상속을 생각하며 이런 것이구나 이해를 했는데 IoC는 아직 잘 모르겠다. 그나마 여기저기 찾아서 본 것으론 DI를 코드를 통해 개발자가 처리하는 게 아닌 이것도 프레임워크가 처리하게 해서 제어 흐름을 프레임 워크가 처리하여 객체 간 결합도를 낮춘다고 한다.
지금은 잘 몰라도 이런 게 있다는 것은 알고 있어야 내가 나중에 스프링을 사용하거나 이런 것들을 이용한 개발을 할 수 있을테니 가지고 가야 한다.