오늘은 Subscribe, Bind, Driver에 대해 이야기 해보려고 합니다!!
이들은 모두 Observable이나 Driver 등의 스트림을 구독하고,
해당 스트림에서 발생하는 이벤트를 처리하는 역할하하는데요!! 좀 더 자세하게 들어가보죠
Subscribe
- Observable이 이벤트를 내보낼 때마다 해당 이벤트를 관찰하고 처리하는 작업 진행
- 에러 처리, 스레드 지정 가능
Bind
- Bind의 내부에 Subscribe가 존재
- 방출한 이벤트를 Binder (UI 업데이트에 사용되는 옵저버, onNext 이벤트에 대해서만 반응) 에게 전달
- Binder 덕에 에러 없이 우리가 UI요소를 처리할 때 주로 사용
- 스레드 지정 가능
Drive
- 역시 주로 UI에 사용, 오직 메인스레드에서만 실행
- Driver 타입에서 사용되는 메서드
- 스트림을 하나로 유지 > 메모리 관리에 효율적
비교하는 김에 이들과 함께 사용할 수 있는 Throttle과 Debounce도 비교하고 글 마무리 해보려고 합니다.
우선 공통점은 과도한 요청, 처리를 수행하게 될 경우에 발생할 수 있는 성능 저하를 막기 위해 이를 제어하여 성능을 개선하도록 해주는 메서드들입니다.
Throttle
- 일정 시간을 정해주고, 이 시간 동안 가장 처음 발생한 이벤트를 허용
- 그 이후에는 지정된 시간 간격 내에서 발생한 다른 이벤트들을 무시
- Ex) 버튼 클릭과 같은 사용자가 자주 발생시키는 액션을 제한
Debounce
- Throttle과는 다르게 연속적으로 호출되는 함수 중 마지막 함수만 호출
- Ex) 텍스트 필드에 텍스트 입력시, 일정 시간 동안 입력이 멈추면 마지막 값을 처리
👉 실시간 검색이라고 생각하면, 타이핑을 멈춘 후 일정 시간이 지나야 서버에 네트워크 요청하기 때문에 부하 ↓
자 요기까지 사용할 때 좀 헷갈리거나 확실히 알고 골라 쓰면 좋겠다 싶은 친구들에 대해 간략하게 정리해보았습니다.
과연 다음 글은 무엇이 될지..
공부 열심히 하고 다시 끄적이러 오겠습니다..
I'll be back.
.
.
.
.
'Swift' 카테고리의 다른 글
[iOS] About GCD (Grand Central Dispatch) (2) | 2024.08.24 |
---|---|
[iOS] About Pagination (0) | 2024.08.21 |
[iOS] About RxSwift (0) | 2024.08.11 |
[iOS] About 램 모델클래스 > 구조체 (0) | 2024.08.08 |
[iOS] About Property Wrapper (0) | 2024.08.04 |