본문 바로가기

728x90
728x90

dependency injection

[Spring] 제어의 역전(IoC, Inversion of Control), 의존성 주입(DI, Dependency Injection)에 대하 Spring의 Ioc/DI은 Spring을 사용하면서 자연스럽게 접하게 되는 개념들이지만, 때로는 그 깊은 의미를 되새겨볼 필요가 있습니다. 이 두 가지 개념이야말로 Spring의 근본을 이루는 핵심정인 원리이기 때문이죠. 저 또한 2022년에 작성한 글을 전부 삭제하고, 새로운 마음으로 2024년에 new 포스팅 글을 작성하려고 해요.😊 Ioc, 즉 제어의 역전(Inversion of Control)과 DI, 의존성 주입(Dependency Injection)은 코드의 결합도를 낮추고, 더 유연하고 테스트 가능한 애플리케이션을 만드는 데 필수적인 역할을 해요. 여기서 궁금한 점은 왜 Spinrg은 굳이 IoC와 DI를 통해 객체 관리를 하도록 했을까요? 🤔 그 이유는 간단하면서도 깊이가 있습니다. 소프.. 더보기
[이펙티브 자바][아이템 5] 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 - 컴도리돌이 자원을 직접 생성하거나 관리하는 방식은 코드의 유연성과 유지보수성을 크게 제한할 수 있습니다. 자원을 직접 관리하고 명시하는 방식이 실제로는 많은 문제를 초래할 수 있다고 합니다. 왜 그럴까요? 🤔 자원을 직접 명시하는 경우, 예를 들어 파일 읽기와 같은 작업을 수행하는 유틸리티 클래스를 작성한다고 가정해 볼게요.파일을 읽기 위해 BufferedReader를 직접 생성하는 클래스 FileReaderUtil을 만들었다고 생각해 보면, 클래스 내부에서 직접 BufferedReader를 생성하고 관리하는 코드가 들어가죠. 이렇게 되면, 이 클래스는 파일 시스템과 강하게 결합되게 됩니다. 즉, 파일 경로와 파일을 여는 방식이 하드코딩되어 있어, 만약 파일 경로를 바꾸거나 다른 파일 시스템 접근 방식을 사용해야.. 더보기