LANGUAGE/Kotlin

[Kotlin] Rx, Observer Pattern

보겸삼촌 2020. 6. 29. 12:37

Rx란, 

'Rx'는 Reactive Extensions의 약자로, 이벤트를 이벤트 스트림에 전달하고, 관찰하다가 원하는 이벤트가 발생하면 그에 따른 동작을 수행함. 비동기 라이브러리로 반응하는 프로그램으로 ReactiveX라고도 불림

 

    - Observable

 이벤트를 만들어내는 (emit)의 주체, 이벤트 스트림을 통해 만들어낸 이벤트를 보냄, 여러 개의 이벤트를 발생시킬 수 있음, 상태를 가지고 있음

 

    - Observer

Observable에 만들어진 이벤트에 반응(react)하는 것의 주체, 이벤트를 받았을 때 수행할 작업을 정의함. 반응을 위해서 지속적으로 Observable을 관찰해야하는데 이를 옵저버가 옵저버블을 구독(Subscribe)한다라고 함

 

    - Obserable Pattern

옵저버 패턴은 옵저버블에 옵저버를 등록해서 옵저버블에 상태 변화가 있을 때마다 메서드를 통해 옵저버에게 통지하는 디자인 패턴, 변수의 상태를 Push, Pull 중 원하는 방식을 통해 알 수 있는 패턴

 

    - Scheduler

작업을 수행할 스레드를 지정, 안드로이드에서 ui를 업데이트하는 메인 스레드로도 사용 가능하며, 스케줄러는 observeOn()을 사용하여 지정

 

     - Disposable

옵저버가 옵저버블을 구독할 때 생성되는 객체, 옵저버블에서 만드는 이벤트 스트림과 이에 필요한 리소스를 관리

 

    - Composite Disposable

여러 개의 Disposable 객체를 하나의 객체에서 사용 가능함

 

 

 

[참고] https://medium.com/@dlrlwjd1127/3-00-%EC%98%B5%EC%A0%80%EB%B2%84%EB%B8%94%EA%B3%BC-%EC%98%B5%EC%A0%80%EB%B2%84%EC%99%80-%EA%B5%AC%EB%8F%85%EC%9E%90-de8256682109

[참고] https://faith-developer.tistory.com/123

'LANGUAGE > Kotlin' 카테고리의 다른 글

[Kotlin] Bottom Navigation bar  (0) 2020.07.06
[Kotlin] Facebook 소셜 로그인  (0) 2020.06.29
[Kotlin] Lottie btn  (0) 2020.06.26
[Kotlin] 상단바(actionBar), 상태바(statusBar)  (0) 2020.06.26
[Kotlin] button action > listener, onClick  (0) 2020.06.26