internal fun <T> Flow<T>.throttleFirst(throttleTime: Long): Flow<T> = flow {
    var lastEmissionTime = 0L
    collect { upstream ->
        val currentTime = System.currentTimeMillis()
        val mayEmit = currentTime - lastEmissionTime > throttleTime
        if (mayEmit) {
            lastEmissionTime = currentTime
            emit(upstream)
        }
    }
}

다른팀 피드백