본문 바로가기

개발/간단하게...16

코루틴(coroutine)에서 suspend, resume의 역할? 개념? 먼저 간단히 얘기하면 a기능 b기능이 각각 메인스레드 및 io스레드를 사용한다고 해보자. 예전에는 메인스레드 부분을 하나로 짜고 리스너 뭐 이런식으로 a,b의 아이오스레드쪽을 따로 처리했다면, 코루틴은 그냥 a기능으로 함수 하나, b기능으로 함수 하나 만들어서 중간에 io스레드 갈일 있으면 서스펜드해놓기만 하면, 코루틴이 알아서 두 함수를 왔다리 갔다리 해준다는 거임 개념적으로 설명하면, 코루틴에서 suspend와 resume은 코루틴의 일시 중지와 재개를 제어하는 메커니즘이야 suspend는 코루틴을 일시 중지 시키고, 코루틴이 일시 중지되면 다른 코루틴이 실행되는거지. suspend 키워드는 일반적으로 I/O 또는 시간이 오래 걸리는 작업을 수행하는 함수에서 사용되지. 즉 화면 열심히 그리다가 io스.. 2023. 2. 17.
app visibility, getPackageInfo 실패할때 안드로이드11부터 "app visibility" 정책이라고 다른 앱의 정보를 얻을 수 있는 방법을 제한하기 시작했어. 이러한 정책은 사용자의 개인 정보 보호와 보안을 강화하고, 악성 앱이 다른 앱의 정보를 수집하거나 이를 악용하는 것을 방지가 목적인거로 보이는데, 그래서 다른 앱 정보를 보고 싶으면 사용자에게 알리는? 뭐 그런 과정이 필요하지. 다른앱 정보를 보고 싶으면 "queries" 항목에 해당 패키지명을 추가해야해. 이러면 세팅 어딘가에서 앱 권한 보여주는 곳 어딘가에서 내가 저 패키지 권한보려고 해요 라고 써지는 거지 2023. 2. 17.
dagger 개념 Dagger는 안드로이드에서 사용하는 의존성 주입 프레임워크 중 하나야. Dagger는 컴파일 타임에 의존성을 주입하기 때문에 런타임 오버헤드를 줄일 수 있어. 또한, 자동으로 코드를 생성해주기 때문에 코드의 중복을 줄일 수 있고, 유지보수가 용이해져. 하지만 Dagger는 학습 곡선이 살짝 있어. 더 줄여서 얘기라면 의존성 주입 코드 작성할 때 나오는 보일러 코드를 Dagger를 이용해서 어노테이션 쓰고 하면 알아서 작성해주는 라이브러리야. 2023. 2. 16.
의존성 주입 개념 의존성 주입은 객체 지향 프로그래밍에서, 객체 간의 의존성을 낮추기 위한 디자인 패턴 중 하나야. 의존성은 객체들 사이에서 서로 상호작용을 하기 위해 필요한 관계를 의미하는데, 이러한 의존성이 높으면 유지보수가 어려워질 수 있어. 예를 들면, A 객체가 B 객체를 사용하고 B 객체가 C 객체를 사용하는 경우, A 객체는 B 객체와 C 객체에 의존성이 있는 것이지 그래서, 의존성 주입은 객체를 생성하거나 실행하는 시점에, 외부에서 필요한 의존 객체를 전달해주는 방법이야. 이를 통해 객체 간의 결합도를 낮추고, 유연성과 확장성을 높일 수 있어. 생성자 주입, setter 주입, 필드 주입 등의 방법으로 의존성 주입을 할 수 있어. 이를 사용하면 객체 간의 의존성을 외부에서 설정하므로, 코드의 유연성과 확장성.. 2023. 2. 16.
반응형