클린 아키텍처가 의존성 역전 원칙을 활용하는 원리
·
Android Architecture
👩‍💻 오늘의 할 일클린 아키텍처에서의 의존성 방향은 바깥에서 안쪽으로 흐릅니다. 그리고 동심원의 가장 안쪽, Entitiy는 외부와의 의존성이 없어야 하기 때문에 경계를 횡단하기 위해선 반드시 의존성 역전 원칙을 적용해야 합니다.  모바일 클린 아키텍처에선 Data Layer에서 Domain Layer로의 의존성을 제거하기 위해서 의존성 역전 원칙을 사용합니다.  오늘은 봐도 봐도 어려운 의존성 역전 원칙이 클린 아키텍처에서 어떻게 의존 관계를 역전시키는지 알아보겠습니다. 🤔의문점 이전에 제가 공부했던 Repository Pattern에선 하나의 데이터에 대해서 하나의 DataSource 인터페이스와 Remote DataBase 와 Local DataBase, 두 개의 구현체로 나누고 Reposi..
객체지향의 꽃 다형성과 의존성 주입
·
Android Architecture
👩‍💻 오늘의 할 일오늘은 객체지향의 특징인 다형성이 안드로이드의 의존성 주입 관계에서 어떤 역할을 하는지 알아보겠습니다. 내용은 제가 프로젝트에서 사용한 코드를 바탕으로 작성하며 DI 같은 의존성 주입 라이브러리는 사용하지 않았습니다. 👩‍🏫 다형성다형성은 말 그대로 다양한 형태를 가질 수 있는 성질입니다. 객체지향에선 이를 Interface를 통해 구현합니다. 인터페이스는 상속받은 클래스가 해야 할 일을 미리 명세하고 Class에선 Interface를 상속받아 실제로 해야 할 동작을 구현합니다. 이를 통해 Interface를 상속받는 Class마다 고유한 형태와 특징을 가질 수 있습니다.interface Animal { fun makeSound()}class Dog : Animal { ..
FireBase 의존성 주입 생각해보기
·
Android Architecture
👩‍💻 오늘의 할 일오늘은 지난 글에서 개선점으로 꼽았던 불필요한 DataSource에 대한 의존성 분리와 실제 사용 코드에서 UseCase를 한 번 만들어보겠습니다. 또한 지난 프로젝트에서 사용했던 코드를 리뷰하면서 필요한 의존성을 왜 ? 어떻게 ? 주입을 했을까에 대한 생각을 적어보려 합니다. 물론 DI 라이브러리는 사용하지 않았지만 먼저 의존성 주입이란 무엇일까에 대해 알아보고 가겠습니다.👩‍🏫 의존성 주입이란 ?의존성이란, 어떤 대상이 참조하는 객체나 함수를 의미합니다. 다음 코드와 같이 Car Class에서 Engine( ) 클래스의 인스턴스를 생성하면 Car는 Engine에 의존하게 됩니다. 이때, Car Class는 Engine 인스턴스를 생성하는 책임을 갖고 있으며 Car Class..