프로젝트를 리딩 하다 보면, 이런 류의 코드를 종종 볼 때가 있다.var tmp: Int = -1flowData.collect { if (it > 3) { tmp = it cancel() }} 대충 이런 코드를 보게 되면 고치고 싶다는 생각이 든다.왜냐면 Flow에는 해당 로직을 더 간결하게 표현해 줄 좋은 연사자들이 많이 존재하기 때문이다.first()filter { } 원래 잘 돌아가던 로직을 고치기 위해서는 용기가 아닌 지식이 필요하다.과연 기존 로직과 동일하게 동작할까? 좀 더 자세히 알아보자. Flow.first()suspend fun Flow.first(): T흐름에서 방출된 첫 번째 요소를 반환하고 흐름의 수집을 취소하는 터미널 연산자입니다. 흐름이 비어 ..