Programming Language

Programming Language/Kotlin

[Kotlin] Flow Retry 연산자

Kotlin Flow에서 연산자를 사용하여 작업을 재시도하는 방법에 대해서는 두 연산자가 있다. retryWhen retry retryWhen retryWhen의 정의 fun Flow.retryWhen(predicate: suspend FlowCollector.(cause: Throwable, attempt: Long) -> Boolean): Flow 그리고 다음과 같이 사용한다. .retryWhen { cause, attempt -> } 여기에는 다음과 같은 두 가지 매개변수가 있다. cause : cause는 예외의 원인을 제공하는 변수이다. 만약에 함수가 진행하면서 예외가 발생한다면 어떤한 예외인지를 나타낸다. attempt : 현재 시도를 나타내는 변수이다. 0부터 시작한다. 예를 들어, 작업을 ..

Programming Language/Kotlin

[Kotlin] Dispatchers in Kotlin Coroutines

코루틴에서 사용할 수 있는 Dispatcher 유형을 포함하여 Kotlin 코루틴의 Dispatcher 에 대해 알아보자. Dispatchers 이란 Dispatchers는 코루틴이 작업을 수행해야 하는 스레드를 결정하는 데 도움을 준다. 우리는 특정 작업을 효율적으로 수행하기 위해 코루틴을 사용한다. 코루틴은 특정 스레드에서 작업을 실행한다. 여기가 Dispatcher가 등장하는 곳이다. 코루틴은 작업을 수행해야 하는 스레드를 결정할 때 Dispatcher의 도움을 받는다. Kotlin 코루틴에는 4가지 유형의 Dispatcher가 있다. Dispatchers.Default Dispatchers.IO Dispatchers.Main Dispatchers.Unconfined Dispatchers.Defau..

Programming Language/Kotlin

[Kotlin] Flow zip 연산자로 long- running tasks in parallel 처리하기

Kotlin Flow의 zip 연산자란 Zip 연산자는 지정된 함수를 통해서 두 흐름 컬럭션의 방출을 함께 결합하고 이 함수의 결과를 기반으로 각 조합에 대해 단일 항목을 방출하는 연산자이다. 예제 코드 val flowOne = flowOf(1, 2, 3) val flowTwo = flowOf("A", "B", "C") flowOne.zip(flowTwo) { intValue, stringValue -> "$intValue$stringValue" }.collect { println(it) } 출력 1A 2B 3C Android의 실제 사용 사례 두 작업을 병렬로 실행하고 두 작업이 모두 완료되면 단일 콜백에서 두 작업의 결과를 원하는 경우 장기 실행 작업 1 private fun doLongRunning..

Programming Language/Kotlin

[Kotlin] Flow Builder를 사용하여 Flow 만들어보기

저번 포스팅에 대한 보충 내용 https://superohinsung.tistory.com/318 [Kotlin] Kotlin에서 Flow Api 코틀린 Flow Api에 대해서 공부를 해보자. Kotlin Flow Api란 비동기적인 연산을 처리하기 위한 새로운 프로그래밍 모델을 제공하는 Kotlin의 라이브러리이다. Flow는 비동기적인 작업을 쉽게 처리하고 superohinsung.tistory.com 한 위치에서 다른 위치로 파일 이동 여기서는 백그라운드 스레드의 한 위치에서 다른 위치로 파일을 이동하기 위해 Flow Builder를 사용하여 흐름을 생성하고 메인 스레드에서 완료 상태를 보낸다. val moveFileflow = flow { // move file on background thre..

Programming Language/Kotlin

[Kotlin] Kotlin에서 Flow Api

코틀린 Flow Api에 대해서 공부를 해보자. Kotlin Flow Api란 비동기적인 연산을 처리하기 위한 새로운 프로그래밍 모델을 제공하는 Kotlin의 라이브러리이다. Flow는 비동기적인 작업을 쉽게 처리하고 조절할 수 있도록 설계되었으며, 주로 비동기 스트림(Asynchronous Streams)을 다루는데 사용된다. Flow API의 핵심 개념은 데이터의 비동기적인 흐름(Flow)을 나타내는 것이다. Flow는 값을 생성하고 소비하는 비동기적인 프로시저로, 여러 개의 값을 비동기적으로 생산하고 소비할 수 있다. 이는 코루틴과 함께 사용되어 비동기 코드를 더 간결하게 만들고 복잡성을 줄일 수 있다. Flow의 주요 구성 요소 Flow Builder 작업을 수행하고 아이템을 방출하는데 도움이 된..

Programming Language/Kotlin

[Kotlin] Kotlin Coroutines에서 Launch 와 Async

오늘은 Kotlin Coroutines에서 Launch 와 Async에 대해서 알아보자. launch와 async는 모두 Kotlin에서 코루틴을 시작하는 기능이다. 차이점은 launch는 실행하면 결과 값을 전달하지 않는 반면 , async는 반환 결과 를 얻기 위해 Java에서 future를 사용하는 것처럼 코루틴의 결과를 반환하는 함수가 Deferred있는 의 인스턴스를 반환한다는 것이다. Launch val job = GlobalScope.launch(Dispatchers.Default) { // do something and do not return result } 작업 상태를 가져오거나 취소하는 데 사용할 수 있는 작업 개체를 반환한다. 위의 실행 예에서 우리는 무언가를 해야 하고 결과를 반환..

Programming Language/Kotlin

[Kotlin] coroutineScope와 supervisorScope

coroutineScope와 supervisorScope가 각각 무엇인지 그리고 차이가 무엇인지에 대해서 알아보자. coroutineScope coroutineScope는 Kotlin의 코루틴에서 사용되는 스코프 중 하나로, 여러 개의 코루틴이 모두 완료될 때까지 대기하거나, 그 중 하나라도 예외가 발생하면 모든 코루틴을 즉시 취소하는 기능을 제공한다. coroutineScope 함수는 suspend 함수 내에서만 사용될 수 있으며, coroutineScope 내에서 시작된 코루틴이 완료되거나 예외가 발생할 때까지 현재 코루틴을 일시 중단한다. import kotlinx.coroutines.* suspend fun main() { try { coroutineScope { // 이 부분은 coroutine..

Programming Language/Java

[Java] 변수(Variable)

변수란? 프로그래밍에서 변수란, 값을 저장할 수 있는 메모리상의 공간을 의미한다. 이 공간에서 저장된 값은 변경될 수 있기 때문에 변수라고 불린다. 새로운 값을 저장하면 기존의 값은 사라진다. 변수의 선언과 초기화 변수를 사용하려면 변수를 선언해야한다. int year = 0; int age = 14; 변수 타입 : 변수에 저장될 값이 어떤 타입(type)인지를 지정하는 것 변수 이름 : 변수에 붙인 이름 변수를 선언하면, 메모리의 빈 공간에 변수타입에 알맞은 크기의 저장공간이 확보되고, 앞으로 이 저장공간은 변수이름을 통해서 사용할 수 있게 된다. 변수를 선언한 이후에는 변수를 사용할 수 있으나 위 예제처럼 어떠한 값으로 변수를 초기화(initialization)해야한다. 메모리는 여러 프로그램이 공유..

Tenacity_Dev
'Programming Language' 카테고리의 글 목록