IT

IT/Kotlin

[Kotlin/Coroutine] 3. launch와 async의 Job과 Deferred

launch 함수의 Job launch함수로 시작한 Coroutine은 Job 타입의 객체를 Return한다 Job은 coroutine 자체를 의미하기에, launch로 실행되는 Coroutine을 취소할 수도 있고, 기다릴 수도 있다. → 즉 LifeCycle 에 관심이 있다. async 함수의 Deferred 여기서 Deferred는 Job을 상속한 클래스이기 때문에, launch를 사용한 곳에 async를 사용해도 항상 아무 문제가 없다. async는 return할 결과값이 있는데, Deferred타입으로 객체를 return한다. Deferred는 Future처럼 미래의 결과값을 담아놓을 수 있는 객체이며 결국 미래의 결과값을 의미하므로 완료되길 기다리다가 Return되는 값에 관심이 있다. Def..

IT/Kotlin

[Kotlin/Coroutine] 2. Kotlin에서의 Coroutine: launch와 async

Kotlin에서의 Coroutine 1편인 Coroutine이란 무엇인가 참고 Kotlin은 특정 coroutine은 언어가 지원하는 형태가 아닌, Coroutine을 구현할 수 있는 기본 도구를 언어가 제공하는 형태이다 Kotlin의 Coroutine 지원 기본 기능들은, kotlin.coroutine 패키지 밑에 있고, Kotlin 1.3부터는 Kotlin을 설치하면 별도의 설정없이도 모든 기능을 사용할 수 있다. 하지만, Kotlin이 지원하는 기본 기능을 활용해 만든 다양한 형태의 코루틴들은, kotlinx.coroutines 패키지 밑에 있다. Suspend와 Resume Suspend와 Resume은 Callback방식을 대체한 Coroutine만의 메커니즘으로, 다음과 같은 의미가 있다 Su..

IT/Kotlin

[Kotlin/Coroutine] 1. Coroutine이란 무엇인가

Coroutine을 사용하는 이유 비동기 프로그래밍을 사용하는 이유 안드로이드에서 Main Thread는 UI Thread이다. 그렇기 때문에, Main Thread에서 UI를 그리는 것 이외에 복잡하고, 시간이 오래 걸리는 작업을 수행하는 것은 적합하지 않다. 만약, 이러한 작업을 수행하게 될 경우, 해당 작업이 끝날 때까지 시스템은 사용자에게 보여질 UI를 그리지 못하게되고, 사용자는 앱을 시작했음에도 긴 시간동안 빈화면을 보게 되는 일이 발생한다. (UI Freezing) 그래서 안드로이드에서는 해당 작업들을 Main Thread에서 하지 못하도록 한다. 이러한 복잡한 작업의 에로는 네트워킹이 대표적이다. 만약 네트워크 작업을 Main Thread에서 진행하려고 할 경우, NetworkOnMainT..

IT/Android

[Android/FCM] (5) Android에서의 알림 수신 구현

내용 이제 FCM의 기초 개념과 안드로이드 플랫폼에서의 사용시 기초 설정에 대해 알아봤으니, 이제 이 FCM을 제대로 처리할 차례이다. FirebaseMessagingService 확장 [Android/FCM] (4) Android 설정 시에 AndroidManifest.xml파일에 FirebaseMessagingService를 상속받는 Service 하나를 등록했었다. 메시지를 수신하기 위해선, FirebaseMessagingService를 extend해야 한다. 해당 파일을 확장시켜 Firebase에서 보낸 알림을 가져와 앱 내부에서 우리가 처리하고자 하는 로직대로 처리하기 위해 상속받은 메소드들을 오버라이딩 해야 한다. 기기의 Registration Token에 Access 앱을 처음 시작할 때, ..

Hodie!
'IT' 카테고리의 글 목록 (4 Page)