안녕하세요! 왈라비🦘 입니다!

RxSwift를 공부하다 보면 Traits란 용어를 접하게 될 것 입니다.

일단 Traits의 정의 부터 내려보자면

TraitsObservable을 제한 적인 기능만으로 create하고 싶을 때 사용하는 것 입니다.

쉽게 생각해 아래와 같이 Observable에서 파생된 애들이 Traits 라고 생각하시면 됩니다 👨‍👩‍👧‍👦

Traits.png

Triats가 생긴 이유


이전에 Observable을 생성하게 되면 구독자가 구독을 하여 onNext, onError, onCompleted 등의 이벤트를 제어할 수 있다고 했었죠?

그런데 이런 이벤트들을 제어하는 데에 있어서 상황에 따라 onCompleted가 필요 없을 수도 있고, onNext를 굳이 사용하지 않는 경우가 발생할 수 있습니다.

예를 들면 그냥 Observable로 부터 성공 여부만 받고 싶은경우 굳이 onCompleted가 필요하지 않겠죠. 또한 onNext를 통해 인자를 전달 받기에도 조금 과하죠(과하다기 보다 Traits을 알고 있는 상황이라면 굳이..? 라는 느낌).