Kotlin Flow 기초
데이터 스트림을 내보내고 수집해 보세요.
Kotlin Flow 기초은(는) CoddyKit의 무료 Android Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Android Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
플로란 무엇인가요?
플로는 시간이 지나면서 여러 값을 내보내는 비동기 스트림입니다. 변환하고 수집할 수 있는 일시 중단 가능한 시퀀스라고 생각하면 됩니다.
플로 만들기
flow { } 빌더를 사용하면 값 사이에서 선택적으로 일시 중지하면서 emit으로 값을 내보낼 수 있습니다.
fun numbers(): Flow<Int> = flow {
for (i in 1..3) {
delay(100)
emit(i)
}
}플로 수집하기
플로는 수집하기 전까지 아무 작업도 하지 않습니다. 수집은 일시 중단 작업이므로 코루틴에서 실행됩니다.
scope.launch {
numbers().collect { value ->
println(value)
}
}차가운 스트림
플로는 차갑습니다. 수집기마다 빌더 블록이 새로 실행됩니다. 두 수집기는 각각 시작점부터 서로 독립적인 시퀀스를 받습니다.
map과 filter로 변환하기
연산자는 값을 수집할 때만 실행되도록 값을 느리게 변환합니다.
numbers()
.map { it * 10 }
.filter { it > 10 }
.collect { println(it) }더 많은 연산자
take(n)— 처음 n개의 값만 가져옵니다.onEach— 값마다 부수 효과를 실행합니다.distinctUntilChanged— 반복되는 값을 건너뜁니다.
오류 처리하기
catch 연산자로 상위 스트림의 예외를 처리합니다.
numbers()
.map { riskyTransform(it) }
.catch { e -> emit(-1) }
.collect { println(it) }완료에 반응하기
onCompletion을 사용하면 플로가 완료되거나 취소될 때 코드를 실행할 수 있습니다.
numbers()
.onCompletion { println("done") }
.collect { println(it) }생산자 스레드 변경하기
flowOn을 사용하면 수집기에는 영향을 주지 않고 상위 스트림을 특정 디스패처에서 실행할 수 있습니다.
fun load(): Flow<Data> = flow {
emit(readFromDisk())
}.flowOn(Dispatchers.IO)종단 연산자
toList, first, reduce와 같은 일부 연산자는 플로를 종료하고 값을 반환합니다. 이 연산자들은 일시 중단 함수입니다.
val all: List<Int> = numbers().toList()Android에서 플로가 유용한 경우
플로는 시간에 따라 값을 내보내는 모든 것을 모델링할 수 있습니다. 예를 들면 데이터베이스 변경 사항(Room), 위치 업데이트, 입력과 동시에 실행되는 검색, 여러 데이터 소스의 결합 등이 있습니다.
빠른 확인
플로의 기본 개념에 대한 이해도를 확인해 보세요.
복습
다음 내용을 배웠습니다.
flow { emit(...) }은 비동기 스트림을 만듭니다.- 플로는 차갑고 수집할 때만 실행됩니다.
map/filter로 변환하고catch로 오류를 처리합니다.flowOn은 생산자 디스패처를 설정합니다.
자주 묻는 질문
“Kotlin Flow 기초” 강의는 무료인가요?
네 — “Kotlin Flow 기초” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Android Academy 강의 전체를 잠금 해제할 수 있습니다. Android Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“Kotlin Flow 기초”에서 뭘 배우나요?
데이터 스트림을 내보내고 수집해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Android Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Android Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Android Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“Kotlin Flow 기초” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Android Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Android Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 코루틴 기초와 범위
- viewModelScope와 디스패처
- Kotlin Flow 기초
- StateFlow와 SharedFlow