개발/아키텍처 3

[Architecture] DataResource

1. 개요안드로이드 개발에서 데이터 상태를 일관성 있게 관리하는 방법은 애플리케이션의 안정성과 유지보수성을 높이는 데 중요한 역할을 한다. 이 글에서는 Flow와 DataResource를 활용하여 상태를 관리하는 방법에 대해 알아보도록 하겠다. 2. Datresource란?DataResource는 데이터 상태를 나타내는 추상적 개념으로 Success, Loading, Error 세 가지 상태를 포함한다. 이러한 상태를 한 곳에서 집중적으로 관리하면 상태 변화가 한 곳에서 관리되므로 코드의 가독성과 유지보수성이 향상되고 레이어 간 상태 관리가 단순화된다. 또한 상태 변화가 명확하므로 테스트 작성이 용이하며 데이터 처리와 UI 상태 관리가 명확히 분리된다. 3. Flow를 활용하기 Flow는 비동기 데이터 ..

개발/아키텍처 2025.09.11

[Architecture] 클린 아키텍처와 앱 아키텍처(Google)

전부터 작성하려고 했는데 이제서야 작성하는 아키텍처 글....이번 글에서는 우선 전체적인 틀에 대해서 작성하려고 한다 1. 클린 아키텍처란? 필요성? 위의 그림을 굉장히 많이 보았을 텐데, 먼저 아키텍처에 대해서 이야기를 해보자면코드를 작성할때, 구조에 대해서 크게 신경쓰지 않아도 동작하는 프로그램을 만들 수 있지만 그렇게 한다면 점차 코드 개발이 힘들어지거나또는 유지보수하기 힘들어진다. 그렇게 되는 가장 큰 이유중 하나가 코드 서로가 서로에게 큰 영향을 주기 때문인데,예를 들어서 A코드를 동작하는데 B코드가 사용되고 필요하다면 B코드를 수정하면 자연스럽게 A코드의 수정이 필요한 경우가 많다.이는 어쩔 수 없는 현상이지만 A코드를 동작할때, B,C,D..... 코드가 모두 사용된다고 하면, 굉장히 복잡하..

개발/아키텍처 2025.08.12

[Architecture] 데이터 모델과 아키텍처

우리가 개발을 하다보면 굉장히 짜증나고 위험한 문제 중 하나는 연쇄적인 코드의 수정일 것이다.이를 방지하기 위해서 우리는 아키텍처를 사용한다. 그런데 이렇게 아키텍처를 구상하고 나름 잘 짜고 있다고 생각했는데.... 연쇄적인 코드의 수정이 필요한 이유 중 하나가 데이터 모델이 수정되니깐 다 수정해야하네... 이라면 꼭 이 글을 읽어보길 바란다. 우리가 아키텍처를 구성하는데 중요하게 보는것 중 하나는 관심사 분리이다.클린 아키텍처의 경우 동심원 안쪽으로 들어갈 때, 자신의 안쪽에 있는 하나의 레이어에만 의존해야한다. 여기서 우리는 주목해야하는 점이 있다. 그것은 바로 데이터 모델은 왜 여기에 포함하지 않는가 이다. 처음 프로젝트에 들어가고 코드를 작성하다보면 흔히 하는 실수중 하나이다(적어도 나는 그랬었다..

개발/아키텍처 2025.08.12