[iOS] RxSwift(5) - 연산자 사전

Madeline👩🏻‍💻·2024년 4월 8일

RxSwift study

목록 보기
5/6
post-thumbnail

Rxswift 벌써 4번째 포스트다.
천천히 소화시키는 중인 듯 하지만, 마음이 너무 조급해서 체할 것 같다ㅋㅋㅋ
오늘은 헷갈리던 RxSwift의 '연산자'에 대한 사전을 만들어볼까 한다.

https://rxmarbles.com/

(사실 이 글 볼 시간에 이 링크에서 찾아보세요 ㅎ허허)

연산자?

연산자는 원래 +, - 처럼 숫자를 계산하기 위해서 사용되지만,
RxSwift에서의 연산자들은 Observable 스트림에 적용된다!
그래서 그 스트림을 변형하거나, 필터링하거나, 합치거나, ...의 작업을 수행한다.

😩 Observable 스트림??이 뭐였지??
이벤트의 흐름을 말하는 키워드로, 이벤트(데이터나 상태변화)의 흐름, 시퀀스, 스트림 다 같은 말이다. 이 스트림으로 앱에서 발생하는 다양한 이벤트를 처리한다.
Observable은? 이벤트를 방출하는 객체! 이벤트를 관찰 당하는 놈이었다.
스트림은 이벤트가 방출된 순서대로 전달되어서 처리된다.

📚 연산자 사전

RxSwift에서 사용하는 연산자들은 다양한 카테고리로 나뉘며, 데이터 스트림을 생성, 변형, 필터링 등 다양한 방법으로 조작할 수 있다.
챗선생님한테 리스트업 시켜봤다.

생성 연산자 (Creating Observables)

  • just: 단일 요소를 포함하는 Observable을 생성합니다.
  • of: 고정된 수의 요소를 포함하는 Observable을 생성합니다.
  • from: 배열, 딕셔너리 등의 컬렉션을 Observable로 변환합니다.
  • empty: 아무 요소도 방출하지 않는 Observable을 생성합니다.
  • never: 아무 작업도 하지 않는 Observable을 생성합니다.
  • error: 에러를 방출하는 Observable을 생성합니다.
  • create: 사용자 정의 Observable을 생성합니다.
  • deferred: 옵저버가 구독할 때마다 새로운 Observable을 생성합니다.
  • interval: 지정된 간격으로 연속적인 정수를 방출합니다.
  • timer: 지정된 시간이 지난 후 한 번 또는 반복해서 요소를 방출합니다.

변환 연산자 (Transforming Observables)

  • map: 각 요소를 변환합니다.
  • flatMap: Observable을 반환하는 Observable로 변환하고, 결과를 하나의 Observable로 병합합니다.
  • flatMapLatest: 최신 Observable만을 병합합니다.
  • scan: 초기값을 기준으로 모든 입력값을 순차적으로 누적하여 적용합니다.
  • buffer: 여러 값을 모아서 배열로 방출합니다.
  • window: Observable을 여러 개의 Observable로 분할합니다.
  • groupBy: 요소를 조건에 따라 그룹화합니다.

필터링 연산자 (Filtering Observables)

  • filter: 조건을 만족하는 요소만을 방출합니다.
  • distinctUntilChanged: 연속적으로 중복된 값을 제거합니다.
  • take: 시작부터 지정된 수의 요소만을 방출합니다.
  • takeLast: 마지막부터 지정된 수의 요소만을 방출합니다.
  • skip: 시작부터 지정된 수의 요소를 건너뜁니다.
  • debounce: 지정된 시간 동안 기다렸다가 가장 최근의 요소만을 방출합니다.
  • throttle: 지정된 시간 동안 처음 또는 마지막 요소만을 방출합니다.
  • elementAt: 지정된 인덱스의 요소만을 방출합니다.
  • single: 하나의 요소만 방출하거나 조건을 만족하는 첫 번째 요소를 방출합니다.

결합 연산자 (Combining Observables)

  • startWith: 초기값을 시작으로 요소를 방출합니다.
  • merge: 여러 Observable에서 방출된 요소를 하나의 Observable로 병합합니다.
  • zip: 여러 Observable의 요소를 하나로 묶어서 방출합니다.
  • combineLatest: 여러 Observable 중 하나라도 새로운 요소를 방출하면 최신의 요소들을 결합하여 방출합니다.
  • withLatestFrom: 두 Observable 중 하나의 최신 요소와 다른 하나의 요소를 결합합니다.
  • switchLatest: 가장 최신 Observable의 요소만을 방출합니다.

오류 처리 연산자 (Error Handling Operators)

  • catch: 에러가 발생했을 때, 다른 Observable로 전환합니다.
  • retry: 에러가 발생했을 때, 재시도합니다.

유틸리티 연산자 (Utility Operators)

  • do: Observable의 생명 주기 이벤트에 대한 부수 작용을 추가합니다.
  • subscribe: Observable을 구독하고, 요소를 방출하거나 에러, 완료를 처리합니다.
  • observeOn: 작업을 수행할 스케줄러를 지정합니다.
  • subscribeOn: Observable을 구독할 스케줄러를 지정합니다.

조건과 불린 연산자 (Conditional and Boolean Operators)

  • takeUntil: 다른 Observable에서 요소가 방출될 때까지만 요소를 방출합니다.
  • skipUntil: 다른 Observable에서 요소가 방출되기 시작할 때까지 요소를 건너뜁니다.
profile
🍎 Apple Developer Academy@POSTECH 2기, 🍀 SeSAC iOS 4기

0개의 댓글