[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

이처럼, 코틀린 플로우의 트랜스포머 함수를 활용하여 데이터를 쉽게 변형하고 조작할 수 있습니다.

더 많은 정보를 원하시면 코틀린 공식 문서를 확인해보세요.