coroutine

목표채널의 기념 개념과 사용법, 채널을 이용한 데이터 전송 이해셀렉트 표현식의 개념, 셀렉트를 이용한 비동기 작업 처리 이해채널채널은 송신자와 수신자의 수에 제한이 없으며, 채널을 통해 전송된 모든 값은 한 번만 받을 수 있습니다.채널은 누군가가 물품을 기부를 하면 아름다운 가게에 해당 물품이 전시되고, 그 물품은 여러 사람들 중 한 사람에게만 판매될 수 있다는 점에서 아름다운 가게와 비슷하다고 볼 수 있습니다.Channel은 아래와 같이 SendChannel와 ReceiveChannel를 구현한 인터페이스입니다. SendChannel: 원소를 보내거나 채널을 닫는 용도로 사용ReceiveChannel: 원소를 받을 때 사용SendChannel 인터페이스의 send 함수와 ReceiveChannel 인터..
목표코틀린 공식 문서의 Asynchronous Flow 학습Asynchronous Flow중단 함수는 비동기적으로 하나의 값을 반환합니다. 비동기적으로 계산된 여러 가지 값들을 반환하고 싶을 때는 어떻게 해야 할까요? 이를 위해 등장한 것이 Kotlin Flow입니다.여러 값들을 표현하는 방법코틀린에서는 collections을 이용해서 여러 값들을 표현할 수 있습니다.forEachcollections의 값들을 표현할 때에는 아래와 같이 간단하게 forEach를 사용할 수 있습니다.Sequence만약, CPU를 소비하는 로직을 포함한다면 sequence를 활용하기도 합니다. 아래 코드는 앞선 forEach와 결과는 동일하지만, CPU 연산처럼 동작하기 위해 100ms 대기하는 로직을 포함하여 프로그램 수..
목표멀티스레드 환경에서 코루틴을 활용한 성능 최적화 방법고성능 비동기 프로그래밍을 위한 코루틴 조정 전략성능 측정 및 분석을 통한 최적화 실습일시 중단 함수일시 중단 함수는 코루틴이 아니다일시 중단 함수는 코루틴이 아닌, 일시 중단 지점을 포함할 수 있는 코드의 집합이다.일시 중단 함수는, suspend fun 키워드로 선언된 함수로 함수 내에 일시 중단 지점을 포함할 수 있는 함수입니다. 일시 중단 함수는 일반 함수와 마찬가지로 복잡한 코드들을 구조화하고 재사용할 수 있는 코드의 집합으로 만드는 데 사용됩니다. 일시 중단 함수는 코루틴 내부에서 실행되는 코드의 집합일 뿐, 코루틴이 아닙니다.위 코드를 수행하면, 일시 중단 함수가 순차적으로 호출하여 2초 이상 걸린 것을 확인할 수 있습니다.위 코드에서 ..
목표코루틴 스코프(GlobalScope, coroutineScope, supervisorScope)의 사용법 및 차이점 파악구조화된 동시성에 대한 심도 깊은 이해와 예제 실습코루틴을 활용한 패턴과 모범 사례 공유구조화된 동시성구조화된 동시성(Structured Concurrency)의 원칙이란, 비동기 작업을 구조화함으로써 비동기 프로그래밍을 보다 안정적이고 예측할 수 있게 만드는 원칙입니다.코루틴에서는 구조화된 동시성의 원칙을 사용해 비동기 작업인 코루틴을 부모-자식 관계로 구조화하여 보다 안전하게 관리될 수 있도록 합니다.코루틴을 부모-자식 관계로 만드는 방법은 아래 예시처럼, 부모 코루틴을 만드는 코루틴 빌더의 람다식 내에 새로운 코루틴 빌더를 호출하면 됩니다. 구조화된 코루틴 특징구조화된 코루틴의..
목표코루틴 컨텍스트와 디스패처의 역할 및 중요성 학습다양한 디스패처(Main, IO, Default) 사용 시나리오 실습컨텍스트 전환과 예외 처리 방법 탐구CoroutineContextcoroutineContext는 코루틴을 실행하는 실행 환경을 설정하고 관리하는 인터페이스로, CoroutineContext 객체는 CoroutineDispatcher, CoroutineName, Job 등의 객체를 조합하여 코루틴의 실행 환경을 설정합니다. 따라서, CoroutineContext 객체는 코루틴 실행 및 관리의 핵심 역할을 합니다.CoroutineContext는 launch나 async 코루틴 빌더의 파라미터로 설정할 수 있으며, 해당 파라미터에 CoroutineContext를 명시적으로 지정하면 특정 스레..
목표launch와 async 빌더 사용법과 각각의 특징 설명Deferred 객체 사용법과 비동기 결과 처리 방법실제 네트워크 호출을 예로 들어 비동기 처리 실습코루틴 빌더 함수코루틴을 생성하는 데 사용하는 함수를 코루틴 빌더 함수라고 한다.코루틴 빌더 함수 종류- runBlocking- launch- asynclaunchlaunch는 코루틴을 추상화한 Job 객체를 반환하며, 이 Job 객체가 cancel되면 코루틴도 cancel됩니다.launch의 coroutineContext는 CoroutineScope를 통해 상속받고, 추가적인 context 요소를 넣을 수도 있습니다.만약, 동일한 key를 가진 context 요소가 이미 있었다면 해당 값을 덮어씌우는 형태로 동작합니다.위 이미지를 보면 확인할 수..
목표Kotlin 코루틴이 등장한 배경과 기본 개념 소개Launch와 suspend 함수를 사용한 간단한 예제를 통해 코루틴의 기본 실습JVM 프로세스와 스레드더보기프로그램이란?프로그램은 디스크에 저장된 파일의 내용(ex. 소스코드 파일)처럼 보조 메모리에 저장된 수동적 개체(passive entity)이다.실행되어야 할 몇 가지 명령들이 포함된 파일로, 실제로 수행하기 위해서는 메모리에 올려서 실행되어야 한다.프로세스란?프로세스(Job)은 CPU에 의해 실행될 수 있도록 컴퓨터 메모리에 로드된 프로그램 코드를 의미합니다.프로세스는 컴퓨터에서 실행되는 프로그램의 인스턴스로도 볼 수 있습니다.프로세스가 동작하기 위해서는 메모리 주소, CPU, I/O와 같은 리소스가 필요합니다.프로세스는 수행되는 동안에만 존..
EARTH_ROOPRETELCHAM
'coroutine' 태그의 글 목록