- BehaviorRelay
- 항상 초기값을 가진다
- 종료이벤트를 지원하지 않는다. (onComplete, onError)
- 현재값을 직접 읽을 수 있는 value 속성을 제공한다.
- 문제가 될 수 있음 (값을 구독을 통하지 않고 가져오면)
- 장단점
- 장점
- 상태관리가 쉽고 간편하다. value를 통해 값에 직접 접근이 가능하고 accept를 통해 쉽게 업데이트할 수 있다.
- 종료이벤트를 지원하지 않아 스트림이 종료되지 않고 항상 새로운 값을 방출할 수 있다.
- 항상 초기값을 필요로하기 때문에 예외적인 상황을 줄일 수 있다
- 단점
- 종료이벤트가 없다
- RxRelay에 종속적이다
- 장점
- 사용예시
- 사용자입력필드같이 값이 지속적으로 업데이트되어야하는 상황 (검색어 입력필드 등)
- BehaviorSubject
- 초기값을 가져야하지만, 초기값 없이 시작할 수도 있다.
- 종료이벤트를 지원한다. (onComplete, onError)
- value 속성이 없다. subscribe를 통해 값을 얻어와야한다.
- 장단점
- 장점
- oNext, onComplete, onError 등 모든 이벤트를 방출할 수 있어 유연한 사용이 가능하다
- RxSwift 기본 기능이다.
- 단점
- value가 없어 상태접근이 복잡하다
- 종료 이벤트 관리가 필요하다
- 사용예시
- 초기값이 필요하지 않을 때: 특정 작업의 상태를 관리할 때
- 네트워크 요청 결과 관리할 때: 성공 시 데이터 방출, 실패 시 onError 방출가능
- 장점
'iOS' 카테고리의 다른 글
TDD with Swift (0) | 2024.08.01 |
---|---|
딥링크 크래시 현상 (0) | 2024.03.25 |
미래의 나를 위한 Mac Ventura(13.4) 에서 Xcode 13.4.1 돌리기 (0) | 2024.01.15 |