[kotlin] 코틀린 스트림 API 소개
코틀린은 함수형 프로그래밍을 지원하며, 스트림 API를 활용하여 데이터를 처리하는 강력한 기능을 제공합니다. 이번 글에서는 코틀린의 스트림 API에 대해 소개하고, 해당 API를 사용하여 데이터를 다루는 방법에 대해 알아보겠습니다.
스트림 API란?
스트림 API는 데이터의 연속적인 흐름을 처리하는데 사용되는 API입니다. 이를 통해 데이터를 필터링, 매핑, 정렬 및 그룹화하는 등의 작업을 간단하게 처리할 수 있습니다.
코틀린의 스트림 API
코틀린에서는 Sequence
와 Flow
클래스를 사용하여 스트림을 다룹니다. Sequence
는 지연 계산 컬렉션입니다. 즉, 요소들이 실제로 사용될 때까지 계산되지 않습니다. 반면, Flow
는 비동기적으로 연속적인 데이터를 처리하는 데 사용됩니다.
Sequence 활용 예시
val numbers = sequenceOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
evenNumbers.forEach { println(it) }
위의 예시에서, numbers
는 Sequence
로 만들어진 연속 데이터이고, filter
를 통해 짝수를 걸러내어 evenNumbers
에 저장되었습니다.
Flow 활용 예시
fun fetchUserData(): Flow<User> {
return flow {
// 비동기적으로 사용자 데이터를 가져옴
emit(fetchUserFromApi())
}
}
fetchUserData()
.map { user ->
// 사용자 데이터를 가공
user.copy(name = user.name.toUpperCase())
}
.collect { processedUser ->
println(processedUser)
}
fetchUserData
함수는 Flow
로 사용자 데이터를 비동기적으로 가져와 map
, collect
를 통해 데이터를 가공하고 출력하는 예제입니다.
결론
코틀린의 스트림 API를 사용하면 데이터를 강력하게 처리할 수 있습니다. Sequence
와 Flow
를 활용하여 데이터를 다루는 여러 기능들을 쉽게 사용할 수 있으며, 함수형 프로그래밍의 장점을 최대한 활용할 수 있습니다.
더 많은 정보를 원하시면 코틀린 공식 문서를 참고하세요.