동식이 블로그

[Kotlin] Coroutine? Thread?

Coroutine과 Thread 비교

[Kotlin] Coroutine? Thread? 단순히 Thread의 대안으로 Coroutine을 사용하는것으로 알고있었는데, 그게 아니였다. 좀 더 자세하게 알아보자 Process 와 Thread 일단 Process와 Thread에 대해서 알아보자 Process 프로그램이 메모리상으로 적재되어 실행되는 인스턴스 ...

[Kotlin] Annotation

Kotlin annotation 공부

[Kotlin] Annotation Hilt로 CoroutineDispatcher를 주입하려고 할 때 커스텀 어노테이션을 만들어야 했는데, 이 때 @Retention 어노테이션이 사용이 돼서 좀 더 자세하게 알아보게 되었다 Annotation 이란 ? 사전적 의미는 주석이지만, 주석과는 다르게 특정 코드에 달아서 어떤 의미를 부여하거...

[Android] Paging3 load all pages at once

Paging3 troubleshooting

[Android] Paging3 load all pages at once 문제점 : 페이징3 로드시 모든 페이지 데이터를 한번에 가져오는 문제 현재 문제가 생긴 구조 Activity - ViewPager - NestedScrollView - RecyclerView 문제점 PagerFragment내의 RecyclerView를 감...

[Android] Fastlane #2 (PlayStore)

Fastlane 릴리즈 자동화

[Android] Fastlane #2 (PlayStore) 실제 PlayStore에 게시할 lane 설정을 해보자 저번에 생략했던 metadata를 받아오는 작업부터 시작 1 fastlane supply init --track [production, beta, alpha, internal] 작업이 완료되면 fastlane 디렉토리에 여러 디...

[Android] Room Migration

Room Database Migration

[Android] Room Migration Room을 사용하면서 겪었던 Migration 이야기 기획자 : 이 화면에서 추가적으로 데이터를 보여주세요 ! 백엔드 : 새로운 필드 하나를 추가했습니다 ! 이미 서비스중인 앱에 위와 같은 요구사항은 빈번하게 일어난다. 단순히 entity를 수정하고 빌드하고 앱을 업데이트 하게한다면? Looks ...

[Android] Fastlane #1 (App Distribution)

fastlane + Firebase App Distribution

[Android] Fastlane #1 (App Distribution) FastLane + Firebase App Distribution 으로 원숭이 탈출하기! 미루고미루고미루고 미루고있었던 테스트앱 자동배포를 드디어 적용했다 😊 왜 테스트 앱 자동배포를 적용했는가? 기존 테스트앱 배포 프로세스가 복잡하다 기존 프로...

[Android] 클린아키텍처

Clean Architecture에 대한 공부

[Android] 클린아키텍처 Clean Architecture Robert C. Martin의 Clean Architecture는 이제 구글에서도 권장하는 아키텍처가 되었다. 계층 구조 클린아키텍처의 구조는 그림처럼 4가지 계층으로 되어있다. 계층을 나누는 이유는 계층을 분리하여 관심사를 분리시키기 위해서이며, 이런 아키텍처가 동작하기 ...

[Kotlin] Weak Reference

Reference에 대한 공부

[Kotlin] Weak Reference JVM에 대해서 간단히 알아보았으니 이제 WeakReference에 대해서 알아보자 Reference Reference는 Strong references, Soft references, Weak references, Phantom references 로 분류할 수 있다 이렇게 나뉘어진 ...

[Kotlin] JVM Memory구조

JVM Memory구조에 대해 알아보자

[Kotlin] JVM Memory구조 Weakreference를 찾아보다가 JVM Memory 구조에 대해서 먼저 알아야 보다 이해가 쉬울것 같아서 먼저 공부를 해보쟈 JVM 이란 JVM은 Java Virtual Machine의 약자로, 자바 가상 머신이라고 부른다 자바와 운영체제 사이에서 중계자 역할을 하며, 운영체제 종류에 ...

[Android] DiffUtil

DiffUtil에 대해 알아보자

[Android] DiffUtil RecyclerView DiffUtil에 대해서 알아보쟈 DiffUtil 이란? RecyclerView에서 데이터 업데이트 처리를 효율적으로 작업하기위해 만들어진 클래스 두 목록간의 차이점을 찾고 업데이트 되어야 할 목록을 반환해주고, 어댑터에 대한 업데이트를 알리는데 사용된다 notifyDa...