MVC, MVP, MVVM, MVI 패턴
2022. 8. 2. 17:55
안드로이드/아키텍처
왜 아키택처를 사용해야 할까? 아주 단순히 버튼을 누르면 숫자를 업카운팅해주는 기능을 하는 화면을 구현한다고 한다면 하나의 Class에 View와 Data 처리를 한다고 해도 쉽게 구조를 파악할 수 있다. 하지만 여러 사용자가 이용하는 피드 게시판을 구현한다고 하면 어떠한가? 화면에 그려지는 뷰 수도 늘어나고, 데이터들을 외부로 가져와야 하며, 이를 각각 가공해서 뷰에 뿌려줘야 한다. 아마 하나의 클래스에서 이 모든 역할을 수행한다고 하면 생각만 해도 끔찍한 스파게티 코드의 향연이 눈 앞에 펼쳐질 것이다. 이처럼 점점 프로그래밍이 복잡해짐에 따라 각각 관심사 별로 구분이 필요해졌고 이에 따라 여러 아키택처 패턴이 출현하게 되었다. MVC (Model-View-Controller) MVP (Model-V..
Assisted Injection
2022. 7. 21. 21:04
안드로이드/아키텍처
Assisted Injection 안드로이드 프로젝트에서 Dagger-Hilt 종속성 주입을 사용하는 경우 일반적으로 클래스에 종속성 객체를 주입할 때 지정된 매개변수를 자동으로 전달하여 이를 구성한다. 그러나 런타임 중에 일부 매개변수를 수동으로 제공하여 객체를 구성해야 하는 경우가 발생할 수 있다. Dagger-Hilt에서는 Assisted Injection 기능을 통해 이 방법을 제시하고 있다. 예제를 통한 Assisted Injection 사용 방법 이해 한 사용자의 플레이리스트를 화면을 위한 UserPlayListFragment에 삽입될 UserPlayListViewModel이 있다고 예를 들어 설명해보자. 이 Fragment가 화면에 표시될 때 유저의 플레이리스트 목록을 가져와 UI에 표시하기..