[kotlin] 코틀린(Kotlin) Flow의 트랜스포머 함수
코틀린의 플로우(Flow)는 비동기 스트림 처리를 위한 라이브러리이며, 데이터를 변형하거나 조작할 수 있는 트랜스포머 함수를 제공합니다. 이번 포스트에서는 코틀린 플로우에서 사용할 수 있는 몇 가지 트랜스포머 함수에 대해 살펴보겠습니다.
1. map
map
함수는 각각의 요소를 변형합니다. 예를 들어, 정수 플로우를 입력받아 각 요소를 제곱한 결과를 반환하는 예제를 살펴보겠습니다.
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.runBlocking
fun main() = runBlocking {
(1..3).asFlow()
.map { it * it } // 제곱 연산
.collect { println(it) }
}
실행 결과:
1
4
9
2. filter
filter
함수는 조건에 맞는 요소만을 유지합니다. 다음 예제는 특정 조건을 만족하는 요소만을 필터링하는 방법을 보여줍니다.
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.runBlocking
fun main() = runBlocking {
(1..5).asFlow()
.filter { it % 2 == 0 } // 짝수만 필터링
.collect { println(it) }
}
실행 결과:
2
4
3. transform
transform
함수는 각각의 요소를 새로운 플로우로 변환합니다. 이를 활용하여 각 요소를 두 배로 증가하는 방법을 살펴보겠습니다.
import kotlinx.coroutines.flow.*
import kotlinx.coroutines.runBlocking
fun main() = runBlocking {
(1..3).asFlow()
.transform { value ->
emit(value * 2) // 각 요소를 두 배로 변환
}
.collect { println(it) }
}
실행 결과:
2
4
6
이처럼, 코틀린 플로우의 트랜스포머 함수를 활용하여 데이터를 쉽게 변형하고 조작할 수 있습니다.
더 많은 정보를 원하시면 코틀린 공식 문서를 확인해보세요.