1. Retrofit의 반환형 Call, Response, Flow 중 선택이번 프로젝트에서는 Gson을 이용하여 Json 응답을 처리했습니다. 하지만 Retrofit에서는 이 응답을 Call 형태로 반환하고, 이에 맞는 콜백 인터페이스를 통해 응답을 처리하는 방법과, Response 자료형으로 받아 try-catch 문으로 해당 함수를 실행하는 방법이 있습니다. 이와 유사하게, List 형태로 데이터를 가져온 후, flow 스코프에서 try-catch로 처리하여 결과를 Flow 형태로 전달하는 방법도 가능합니다.Retrofit 결과를 처리하는 방법은 크게 세 가지로 나뉩니다. 이 중 멀티모듈 클린 아키텍처에서 적절한 방법을 찾았는데, Call을 사용하는 경우 데이터 레이어에서 콜백을 처리하면서 도메인이..
최근 Clean Architectur를 사용하면서 이러한 구조가 필요한 이유로 책임을 분리하고 유지보수를 쉽게한다는것을 느꼈습니다.그래서 이전에 만들었던 앱이나 특정동작이나 기능을 CleanArchitecture 구조로 만들어보자 생각하였습니다. 그래서 이번에는 Retrofit과 Room 그리고 paging을 사용해보기로하고 Cat Image Provider 라는 앱을 만들었습니다.사용 기술스택구분원본UIxml디자인패턴MVVM아키텍처 패턴멀티모듈 + 클린아키텍처DIHilt통신RetrofitDBRoom이미지 로딩glidePagingJetpack Paging, Room-Paging 과정우선 RestApi를 찾았습니다. 그러다가https://developers.thecatapi.com/view-account/..
이번에 프로젝트를 하게 되면 Room을 이용해 DB를 적용해 보았습니다. 처음에는 이러한 구조로 entity들을 설계하였습니다. 이렇게 만들려고 하니 Room에서 외래키의 연결이 잘못돼있다면서 787 에러를 보여줬습니다. 위의 구조의 경우 순환 참조가 일어납니다. 모든 테이블이 연결돼있으므로 참조할 수 없게 되는 현상이 생깁니다. 그래서 해당 참조를 끊어줘야 합니다. 이관계에서는 사실상 과정테이블의 경우 budgetNum은 필요가 없습니다. 편의를 위해 만든 것일 뿐 해당 과정이 어떤 가계부에 속해있는지는 부모인 카테고리를 따라 올라가다 보면 가계부를 찾을 수 있습니다. 변환시킨 DB 구조입니다. 이 구조를 코드로 만들면 @Entity( tableName = "BUDGET", ) data class Bu..