전체 글 (57) 썸네일형 리스트형 돈의속성 후기 밀리의 서재를 이용해서 이 책을 처음부터 끝까지 다 읽었다. 출퇴근길에 짬을내서 봤지 연속해서 계속 읽지는 못해서 다 읽은 시점에 모든게 기억이 나지는 않는다. 하지만 읽는 내내 들었던 생각이 있다. 이 책은 이제 막 사회 생활을 시작한 초년생이나 아직 성인이 되지 못한 어린 친구들은 반드시 읽어야 한다. 열정적으로 삶을 살아가고 보람차게 돈을 버는게 왜 갚진 것인지 책은 시작부터 끝까지 반복해서 얘기한다. 돈이란 무엇이고 그것을 어떻게 다루어야 하는지, 그리고 돈을 대할때는 어떤 마음으로 돈을 대해야 하는지 매우 상세하게 설명해준다. 책속에서는 돈을 사랑하는 사람 대하듯이 대하라고 한다. 내가 타인에게 사랑과 애정을 쏟아주면 상대방도 나에게 온정을 베풀듯이 돈 또한 그렇다고 얘기한다. 절대 돈을 쉽.. Cannot access database on the main thread since it may potentially lock the UI for a long period of time. 안드로이드에서 roomDB를 쓰는데 아래 에러를 만났다. Cannot access database on the main thread since it may potentially lock the UI for a long period of time. 우선 위의 에러를 해결한 방법을 설명하기 앞서서 하나 알아둬야 할게있다.안드로이드에선 외부통신(핸드폰 내부에 저장한 데이터 RoomDB나 SQLlite, Retrofit을 통해서 외부 api 통신에서도)을 메인 스레드에서 동작시키면 안된다.자 그렇다고 치더라도...뭔가 이상하다. 코루틴을 사용해서 veiwModelScope 에서 메소드를 실행하면 자동적으로 메인스레드가 아니라 워커 스레드에서 동작하는 것으로 알고 있는데 메인스레드에서 코드가 동작하고 있다는 말일.. 안드로이드 RoomDB 예외 처리하는 방법 게시글을 통해서 배울 수 있는 것들외부통신시 sealed class 를 활용해서 각 상황 대응하기외부통신에서 예상치 못한 에러가 발생했을때 해결하는 다양한 방법들 게시글을 이해하기 위해서 필요한 지식들 코루틴에 대한 기본적인 개념 코틀린 안드로이드 RoomDB 기존에 RoomDB에 저장했던 데이터를 불러오는데 예상치 못하게 null을 받아오는 상황이 일어났습니다.이번 문제를 겪으면서 생각했던 해결책과 대체로 다른 사람들은 어떤 식으로 처리하는지 알게되서 이를 서술해보도록 하겠습니다.그리고 게시글의 본격적인 내용을 서술하기 앞서서 RoomDB에서 데이터를 받아오는 경우 뿐만이 아니라 외부 서버와 통신을 할때도 예상치 못한 데이터를 받아왔을때 예외를 처리하는 것은 매우 중요합니다. 안드로이드 개발자라면 외부.. suspendCancellableCoroutine 이란 suspendCancellableCoroutine게시글을 이해하기 위해서 필요한 지식들1. 코루틴에 대한 기본적인 개념2. 코틀린3. 안드로이드4. Firebase Firestore5. Firebase Storage CancellationException 을 제공해주는 코루틴이다. 외부와 통신을 했을때 콜백의 작업이 다 끝나고 났을때 해당 결과값을 사용하고 싶을때 쓰는 기술이다. 안드로이드에선 통신에 대한 결과 처리를 콜백에서 처리하게끔 구현하는 기술들이 많다. 이번 게시글에서 소개할 코드에서 쓰는 Firestore도 그렇고 Retrofit또한 그러하다. 콜백에서 요청에 대한 응답값을 받아왔오면 우리는 해당 응답값을 바탕으로 다음 작업을 진행하기를 원한다. 하지만 오늘 소개할 susepndCancel.. android.os.BadParcelableException: Parcelable encountered IOException writing serializable object (name = model.Images) 아주 오래전에도 한번 만났던 오류인 것 같은데.. 에러가 발생했던 이유는... Serialize 할 수 없는 객체인 Uri를 DataClass 에서 사용하려고 했었기 때문이다. 아래 코드는 내가 작성한 Model 클래스다. import android.net.Uri import java.io.Serializable data class Images(val uri : Uri) : Serializable 이미지 하나만 보여주는 리사이클러뷰를 표현하기 위해서 위와 같이 개발했다. 갤러리에서 사진을 여러장 선택하면 사진 uri값이 list에 담기고, 인텐트를 사용해서 다음 화면(액티비티)로 넘겨주려고 했다. 해당 코드는 아래와 같다. ChooseMediaActivity.kt ... // onCreate 안이다. b.. java.lang.IllegalStateException: Flow invariant is violated:Emission from another coroutine is detected. 에러 내용 java.lang.IllegalStateException: Flow invariant is violated:Emission from another coroutine is detected. Child of StandaloneCoroutine{Active}@b93bc05, expected child of StandaloneCoroutine{Completed}@20ec45a. FlowCollector is not thread-safe and concurrent emissions are prohibited. To mitigate this restriction please use 'channelFlow' builder instead of 'flow' 아마 글자가 작아서 잘 안보이실분들을 위해서 사진으로.. FireBaseStorageCleanArchitecutre 예제 FireBase에서 storage에 이미지를 등록하는 절차를 클린아키텍쳐적용한 예제입니다. 이 예제를 통해서 공부할 수 있는 기술들 1. AndroidCleanArchitecture 2.FireBase Storage 3.Hilt 4.typealias(쉬운 개념이니 따로 구글링하시는 것도 좋습니다!) 예제만 보시고 싶으신 분들은 아래 링크를 참조하시면 되고요. https://github.com/YunSeokVV/FireBaseStorageCleanArchitecutrePractice 주의 google-service.json 파일을 반드시 따로 추가해주셔야 합니다!! 각자 Firebase Console 로 가셔서 프로젝트를 생성하고 나면 확인이 가능해요! 주인장이 나름 중요하다고 생각한 부분의 내용을 보고싶.. Flow (안드로이드) Flow란? -kotlin에서 제공해주는 비동기 통신을 도와주는 기능이다. 안드로이드에서 자주 사용되고 보통 반응형 UI를 만드는데 자주 사용된다. 보통 서버에서 데이터를 받아오거나 로컬DB에서 데이터를 받아올때 많이 사용된다. Flow는 코루틴 위에서 동작하기 때문에 본인이 코루틴에 관해서 잘 모른다면 먼저 코루틴에 관해서 선행학습을 해야할 필요가 있다. Flow의 구성요소 Flow에는 세가지 구성요소가 있다. Producer : 번역하면 생산자인데, 보통 repository를 일컫는다. repository에는 서버나 로컬에서 받아온 데이터를 갖는 저장소를 의미한다. Flow가 코루틴 위에서 동작하기 덕분에 데이터를 비동기적으로 받아올 수 있다. Intermediary : 번역하면 중재자이다. 이 녀석.. 이전 1 2 3 4 5 6 7 8 다음