일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Observable
- GCP
- Kotlin
- paging
- rx
- RxKotlin
- Android 13
- node.js
- android13
- 동영상
- 인앱결제
- mysql
- mvvm
- databinding
- list
- Reactive
- node
- junit
- MotionLayout
- PagingLib
- SWIFTUI
- 테스트 자동화
- google play
- SwiftUI Tutorial
- Android
- MediaSession
- Koin
- liveData
- Animation
- MediaPlayer
- Today
- Total
목록Reactive (11)
봄날은 갔다. 이제 그 정신으로 공부하자
지금까지 여러 타입의 연산자에 대해 알아보았습니다. 이번 글은 연산자 타입의 마지막으로 유틸리티 작업을 수행하는데 도움을 주는 유틸리티 연산자에 대해 설명하도록 하겠습니다. 유틸리티 작업을 수행하는데 도움을 주는 연산자들 입니다. 이번 글에서 설명할 유틸리티 연산자의 종류는 다음과 같습니다. - reduce() - count() - any() - all() - contains() - doOnXXX() - serialize - cache() reduce reduce() 연산자는 누적 연산자로 프로듀서의 모든 방출들을 누적해서 onComplete 이벤트 호출 시 누적한 값을 내보냅니다. reduce 연산자는 앞서 설명한 scan 연산자(변환 연산자)와 유사한데 scan 연산자가 아이템 방출시마다 누적했다가 ..
이번 글에서는 오류 처리 연산자에 대해 설명하도록 하겠습니다. 엡 개발 과정에서 오류는 언제든 발생할 수 있지만 개발자는 사용자가 이를 인지하지 못하고 자연스럽게 동작할 수 있도록 오류를 적절히 관리해야 할 필요가 있습니다. 오류 처리 연산자는 Observable이 발생 시킨 오류를 복구할 수 있도록 도와주는 연산자입니다. 오류 처리 연산자는 오류 발생 시 이벤트를 캐치해서 이후 처리 방안을 지정해주는 “onErrorXXX 계열 연산자”와 오류 발생 시 원천 Observable의 재시도를 지정하는 “retryXXX 계열 연산자”로 구분할 수 있습니다. - onErrorXXX 계열 연산자 - retryXXX 계열 연산자 onErrorReturn onErrorReturn 연산자는 Observable에서 아이..
이번 글에서는 조건 연산자에 대해 설명하도록 하겠습니다. 조건 연산자는 Observeble의 흐름을 제어하는 역할을 합니다. 필터 연산자가 발행된 값을 “채택” or “무시” 여부에 초점을 맞춘다면, 조건 연산자는 지금까지의 흐름을 어떻게 제어할 것인지에 초점을 맞춤니다. Reactive에서 지원하는 조건 연산자의 종류는 다음과 같습니다. - ambXXX 계열 연산자 - takeXXX 계열 연산자 - skipXXX 계열 연산자 - all 연산자 amb amb() 연산자는 인스턴스 없이 사용 가능한 연산자로 연산자의 매개변수로 들어온 Observable 중 먼저 아이템을 방출하는 Observable을 사용하고 나머지 Observable의 방출은 무시하는 연산자 입니다. 사용 방법은 아래와 같습니다. fun..
이번 글에서는 겹합 연산자에 대해 설명하도록 하겠습니다. 결합연산자는 다수의 Observable을 하나로 합하는 방법을 제공하는 연산자 입니다. 결합과 관련된 연산자로는 변환 연산자에서 설명한 flatMap() or groupBy() 연산자들이 있지만 이 연산자들은 1개의 Observable을 확장해주는 연산자인 반면 결합 연산자는 여러 개의 Observable을 개발자가 원하는 Observable로 결합해 준다는 점에서 서로 다르다고 할 수 있습니다. Reactive에서 지원하는 결합 연산자의 종류는 다음과 같습니다. - startWith - merge - mergeArray - mergeWith - mergeDelayError - concat - zip - zipWith - combineLatest ..
이번글에서는 업스트림이 방출한 아이템을 “채택” or “무시” 에 초점을 맞춘 필터 연산자에 대해 설명하도록 하겠습니다. 필터 연산자의 종류는 아래와 같습니다. - debounce - distinct - distinctUntilChanged - elementAt - Filter - first - last - ignoreElements - skipXXX - taskXXX debounce debounce() 연산자는 아이템 방출량이 급격히 증가하는 상황에서 충분히 시간이 지난 뒤에 마지막 항목을 가져오기를 원할 때 사용하는 연산자로 사용자가 실제로 원하는 키워드와 일치하는 쿼리를 얻을 수 있을 때까지 입력을 중단하기를 잠시 기다렸다가 다운스트림 연산자에게 전달하는 역할을 수행합니다. fun funExam()..
이번 글에서는 변환 연산자에 대해 설명하도록 하겠습니다. 변환 연산자는 데이터의 흐름을 개발자가 원하는대로 변형할 수 있도록 지원해주는 기능을 수행하는 연산자로 아래와 같이 많은 연산자들이 있습니다. - buffer() - window() - throttle() - map() - flatMap() - concatMap() - switchMap() - cast() - defaultIfEmpty() - switchIfEmpty() - startWith() - sort() - scan() - groupBy() 많네요... ㅠ_ㅠ 그래도 알아야하니까 하나 하나 설명하도록 하겠습니다. ^___^ buffer buffer() 연산자는 방출되는 아이템을 모아서 리스트나 다른 컬렉션 유형으로 전달합니다. 이전 글에서 ..
지난 글에서 비동기 처리 상황에서 아이템 방출을 제어할 수 있는 흐름 제어 방법에 대해 설명하였습니다. 이번 글에서는 사용 가능한 다양한 연산자를 기능별로 구분해보도록 하겠습니다. 지난 번 글에서부터 제가 함수에 연산자라는 단어를 몇번 사용했었는데, Reactive에서는 함수를 연산자로 지칭하고 있어 저도 앞으로는 함수라는 단어보다는 연산자라는 단어를 사용하도록하겠습니다. Reactive에서 연산자는 하나 이상의 Observable(or Flowable)을 피연산자로 사용해 변환하고 결과로 Observable(or Flowable)을 반환합니다. 연산자는 선행하는 Observable(or Flowable)에 대해 구독자처럼 작동합니다. 연산자는 방출되는 아이템을 기다리다가 변환한 다음 다운스트림 구독자에..
지난 글 까지는 Observable의 종류와 사용 방법에 설명했습니다. 이번 글에서는 비동기 처리 상황에서 발생할 수 있는 문제, 비동기로 동작할 때 Observable이 처리 할 수 있는 처리량보다 더 많은 아이템을 방출하는 경우에 대한 대응, 흐름제어 방법 대해 설명하도록 하겠습니다. 이번 글에서는 리액티브에서 흐름을 제어하는 역할을 하는 BackPressure와 Flowable에 대해 자세히 설명하도록 하겠습니다. backpressure란? Observable은 기본적으로 아이템을 동기적으로 Observer에서 하나씩 방출하도록 동작합니다. 그러나 Observer가 시간을 필요하는 작업을 처리해야 하고 그 처리 시간이 Observable의 방출 시간보다 간격이 긴 경우 문제가 발생할 수 있습니다. ..