flatMap
flatMap 연산자는 들어오는 모든 Observable을 병렬로 구독하고, 이들 각각에서 방출되는 모든 아이템들을 단일 Observable 스트림으로 합칩니다. 만약 여러 Observable들이 동시에 아이템을 방출할 경우, flatMap은 이들 아이템들을 순서와 상관없이 즉시 방출합니다. 이는 동시에 여러 작업을 처리하고 각 작업의 결과를 계속 관찰하고 싶을 때 유용합니다.
flatMapLatest
flatMapLatest 연산자는 새로운 Observable이 들어올 때마다 이전에 구독한 Observable을 취소하고 새 Observable만을 구독합니다. 항상 최신 결과만을 처리하고 싶을 때 사용됩니다. 즉, 새로운 데이터나 요청이 들어올 때 이전 데이터는 더 이상 중요하지 않고 오직 최신 데이터만 처리하고 싶을 때 flatMapLatest가 적합합니다.
로그인 요청과 같은 경우에 flatMapLatest를 사용하는 것이 특히 유용합니다. 예를 들어, 사용자가 로그인 버튼을 여러 번 빠르게 클릭하거나 다른 자격 증명으로 로그인을 시도할 수 있습니다. 이 경우, 가장 최근의 로그인 요청만이 중요하며, 이전 요청들은 중단되어야 합니다. 만약 flatMap을 사용하면 이전의 모든 로그인 요청이 계속 처리되어 서버에 불필요한 부하를 줄 수 있고, 이전 요청의 결과가 나중에 도착할 수도 있어 사용자에게 혼란을 줄 수 있습니다.
'iOS > UIKit' 카테고리의 다른 글
[UIKit] Line Height(행간), Line Spacing(자간) 조절하기 (0) | 2024.06.27 |
---|---|
URLRequestConvertible 잘 사용해보자 (0) | 2024.04.29 |
[Swift] Localization, 앱 현지화하기 (1) (1) | 2024.03.06 |
[Swift] 오픈소스 라이브러리 사용하기 (2): Kingfisher로 URL 이미지 다운로드하기 (0) | 2024.02.05 |
[Swift] 동적으로 셀 높이 가져오기! automaticDimension : TableViewCell의 Dynamic Height (1) | 2024.01.13 |