본문 바로가기

안드로이드/Asynchronous

(3)
[안드로이드] Coroutine Flow https://developer.android.com/kotlin/flow?hl=ko Android에서의 Kotlin 흐름 | Android Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Android에서의 Kotlin 흐름 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 코루틴에서 흐름은 단일 값만 developer.android.com Flow는 여러 값을 순차적으로 내보낼 수 있는 기능이다. Flow은 코루틴 기반으로 빌드되며, 비동기식으로 계산할 수 있는 데이터 스트림의 개념이다. 데이터 스트림에는 3가지 항목이 있다. 생산자 : 스트림에 추가되는 데이터를 생산 중개자 : 데이터 수정 ( 선택사항 ) 소비자 : 데이터 ..
[안드로이드] 코루틴 코루틴(Coroutine)코루틴은 Kotlin에서 지원하는 비동기 처리 기술이다. 코루틴은 멀티 스레딩 문제를 간소화 된 비동기 작업 방식으로 처리하기 위해 개발되었으며,스레드 내 Context switching 없이 여러 코루틴을 실행, 중단, 재개하는 상호작용을 통해 병행성(동시성)을 갖기에 스레드와 메모리 사용이 줄어들고 개발자가 직접 작업을 스케줄링 할 수 있도록 한다.즉, 코루틴은 스레드가 아닌 스레드 내에서 동작하는 작업 방식이다. 장점경량( Lightweight ):  코루틴은 실행 중인 스레드를 차단하지 않는 정지(suspend)를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있고, 동시 작업을 진행하면서 차단보다 메모리를 절약할 수 있다.suspend fun func() 메모리 누..
[안드로이드] 동기와 비동기 동기와 비동기 동기(Synchronous): 동기란 어떠한 순차적인 작업 A, B, C가 있을 때, A작업이 끝날 때까지 B와 C작업이 대기 즉, 한 번에 하나씩 작업을 처리하는 방식이다. 비동기(Asynchronous): 비동기란 A가 작업 중이여도 B와 C를 작업할 수 있는 상태, 즉, 자원을 효율적으로 사용하여 여러가지 작업을 진행할 수 있는 방식이다. 비동기 방식을 사용해야 하는 이유 사실 간단한 소규모 프로젝트에서는 비동기 방식을 사용하지 않아도 어떠한 문제가 없었을 것이다. 그러나 대규모, 플랫폼 단위로 넘어가면 다양한 작업들이 많아질 것이다. 예를 들어, 어떠한 네트워크 작업이 이루어지는데 이 작업이 생각보다 오래걸린다면 사용자는 이 네트워크 작업이 다 이루어질 때까지 해당 어플을 사용하지 ..