[kotlin] 코틀린(Kotlin) Flow 개념과 사용법

코틀린 Flow는 비동기 데이터 스트림을 처리하기 위한 코틀린 표준 라이브러리의 일부이다. Flow를 사용하면 비동기적인 데이터 스트림을 효율적으로 처리할 수 있으며, 취소 가능한 연산을 지원하여 메모리 누수를 방지할 수 있다.

코틀린 Flow 사용법

코틀린 Flow를 사용하려면 먼저 kotlinx.coroutines.flow 패키지를 임포트해야 한다.

import kotlinx.coroutines.flow.*

Flow를 생성하려면 flow 빌더를 사용한다.

val flow = flow {
    for (i in 1..3) {
        delay(100)
        emit(i)
    }
}

Flow를 수집하려면 collect 함수를 사용한다.

flow.collect { value -> 
    println(value) 
}

Flow를 변환하려면 다양한 연산자를 사용할 수 있다. 예를 들어, map 함수를 사용하여 값을 변환할 수 있다.

flow.map { value -> value * 2 }
    .collect { value ->
        println(value)
    }

Flow를 결합하려면 zip 함수를 사용할 수 있다.

val flow1 = flowOf("A", "B", "C")
val flow2 = flowOf(1, 2, 3)

flow1.zip(flow2) { value1, value2 ->
    "$value1$value2"
}.collect { value ->
    println(value)
}

코틀린 Flow를 사용하여 비동기 데이터 스트림을 처리할 수 있다.

결론

코틀린 Flow는 비동기 데이터 스트림을 효과적으로 처리하기 위한 강력한 도구이며, 코루틴과 함께 사용하여 효율적인 비동기 프로그래밍을 가능하게 한다.

참고: 코틀린 Flow 공식 문서