본문 바로가기

안드로이드/클린 아키텍처

(11)
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 4편 (with Jetpack Compose) #11 1. 안드로이드 클린 아키텍처 UI Layer 4편 안녕하세요. 이전 포스팅에서는 Jetpack Compose를 활용한 화면 구성과 Compose Navigation, 그리고 ViewModel을 이용한 데이터 바인딩 과정에 대해 살펴보았습니다. 이번 포스팅은 클린 아키텍처 시리즈의 마지막 편으로, UI Layer에서 화면 이쁘게 꾸며보고 지금까지 포스팅한 클린 아키텍처를 정리하면서 시리즈를 마무리하겠습니다. 2. MovieDetailScreen 꾸미기 이전 포스팅에서는 서버로부터 불러온 영화에 대한 Entity의 정보를 문자열로만 출력했습니다. 이번 시간에는 해당 데이터를 StateFlow에 저장하고 MovieDetailScreen에서 compose를 활용해서 UI를 구현하겠습니다. 2-1. MovieD..
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 3편 (with Jetpack Compose) #10 1. 안드로이드 클린 아키텍처 UI Layer 3편 안녕하세요. 이전 포스팅에서는 Hilt를 통한 의존성 주입에 대해 살펴보았습니다. 이번 포스팅에서는 UI Layer의 마지막 부분으로, UI 컴포넌트와 ViewModel을 연결하고 사용자 인터페이스를 통해 데이터를 표시하기 위해서 Jetpack Compose를 활용한 화면 구성부터 구현하겠습니다. 본 시리즈는 클린 아키텍처에 대해 다루고 있기 때문에 Jetpack Compose를 자세히 설명하지는 않겠습니다. 2. Jetpack Compose를 이용한 UI 구현 Jetpack Compose는 최신 안드로이드 UI 개발 툴킷으로, 선언적 UI 프로그래밍을 가능하게 해 줍니다. 이를 통해 더 간결하고 직관적인 코드로 UI를 구성할 수 있습니다. 우리는 Je..
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 2편 (with Hilt) #9 1. 안드로이드 클린 아키텍처 UI Layer 2편 안녕하세요. 이전 포스팅에서는 UI Layer를 위한 Hilt 의존성 주입의 기본 설정과 필요성에 대해 살펴보았습니다. 이번 포스팅에서는 UI Layer의 핵심 요소 중 하나인 ViewModel에서 UseCase를 활용하는 방법에 대해 다루고, 실제로 의존성 주입을 통해 UseCase와 Repository를 ViewModel에 주입하는 과정을 구현하겠습니다. 2. ViewModel에서 UseCase 활용의 중요성 ViewModel은 사용자 인터페이스(UI)의 상태와 로직을 관리하는 역할을 담당합니다. UI와 모델 사이의 상호작용을 처리하며, UI Layer에서 사용자의 액션에 따라 데이터를 처리하고 결과를 UI에 반영해야 합니다. 이 과정에서 UseCa..
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 1편 (with Hilt) #8 1. 안드로이드 클린 아키텍처 UI Layer 1편 안녕하세요, 지금까지 Data Layer와 Domain Layer에 대해 알아보았습니다. 이번 포스팅부터는 애플리케이션의 가장 전면에 있는 UI Layer를 구현할 차례입니다. UI Layer는 사용자와의 직접적인 상호작용을 담당하며, 사용자 경험을 결정짓는 중요한 역할을 합니다. 먼저, UI Layer의 구현을 위한 첫걸음으로 Hilt를 이용한 의존성 주입에 대해 설명하고 Hilt를 사용하기 위한 기본 세팅을 진행하겠습니다. 2. Hilt를 통한 의존성 주입의 필요성 Hilt는 Dagger를 기반으로 한 Android의 의존성 주입 라이브러리입니다. 의존성 주입(Dependency Injection, DI)은 소프트웨어 디자인 패턴 중 하나로, 컴포넌..
[안드로이드 클린 아키텍처 시리즈] Data Layer 구현 2편 #7 1. 안드로이드 클린 아키텍처 Data Layer 2편 안녕하세요, 지난 포스팅에서는 Data Layer의 기본 구조, 의존성 추가, 데이터 모델(Data Transfer Object, DTO) 및 Movie API 인터페이스의 정의에 대해 알아보았습니다. 이번 시간에는 Data Layer 구현의 다음 단계로, 실제 데이터 소스(Data Source)와 MovieRepository를 구현하고 Data Layer의 내용을 총 정리하겠습니다. 2. Data Layer의 Data Source, MovieRepository 구현 Data Source와 MovieRepository를 구현하면서 Data Layer에 대해 학습하겠습니다. 2-1. Data Layer의 Data Source 구현 데이터 소스는 외부 ..
[안드로이드 클린 아키텍처 시리즈] Data Layer 구현 1편 #6 1. 안드로이드 클린 아키텍처 Data Layer 1편 안녕하세요, 이번 포스팅에서는 Domain Layer에 이어 Data Layer를 살펴보며 클린 아키텍처의 또 다른 핵심 구성 요소인 Data Layer에 대해 설명하고 구현하겠습니다. Data Layer는 애플리케이션의 데이터 소스와의 상호작용을 관리하는 계층으로, 데이터의 저장, 검색, 업데이트, 삭제 등의 작업을 수행합니다. 이 계층의 목적은 애플리케이션의 나머지 부분, 특히 비즈니스 로직을 담당하는 Domain Layer와 사용자 인터페이스를 담당하는 UI Layer 사이에서 데이터를 중개하는 것입니다. 2. Data Layer의 의존성 추가, Data Model, Api Interface 구현 Data Layer에서는 데이터 소스(Data ..
[안드로이드 클린 아키텍처 시리즈] Domain Layer 구현 #5 1. 안드로이드 클린 아키텍처 Domain Layer 안녕하세요, 오늘은 클린 아키텍처의 핵심 구성 요소 중 하나인 Domain Layer에 대해 자세히 살펴보겠습니다. 클린 아키텍처 구현 시리즈에서 Domain Layer부터 다루는 이유는 어떤 계층에도 의존하고 있지 않기 때문입니다. 그래서 Domain Layer부터 구현하고 Data Layer, UI Layer 순서로 포스팅할 예정입니다. 그럼 지금부터 Domain Layer를 구현하겠습니다. 2. Domain Layer의 구성 요소 Domain Layer는 크게 엔터티(Entity), 레포지토리 인터페이스(Repository Interface), 유스케이스(UseCase)로 구성됩니다. 필요에 따라서 util 함수가 추가될 수 있습니다. 2-1. ..
[안드로이드 클린 아키텍처 시리즈] 프로젝트 구조 설정 #4 1. 클린 아키텍처 프로젝트 구조 안녕하세요. 지난 시간까지는 안드로이드 클린 아키텍처의 이론에 대해서 공부했는데, 이번 포스팅부터는 안드로이드 클린 아키텍처를 직접 구현하는 과정을 설명하겠습니다. 안드로이드 클린 아키텍처를 구현할 때 모듈화는 각 계층의 독립성을 보장하고, 의존성을 명확하게 관리하는 데 중요한 역할을 한다고 설명했습니다. 먼저, 클린 아키텍처의 주요 계층인 UI Layer, Domain Layer, Data Layer 프로젝트 구조를 구현하겠습니다. 계층들을 모듈화함으로써, 각 계층은 서로 독립적으로 개발, 테스트 및 유지보수될 수 있습니다. 아래 순서대로 포스팅을 진행하겠습니다. Domain 모듈 생성 Data 모듈 생성 클린 아키텍처 계층별 의존성 설정 1. Domain 모듈 생성 ..