LiveData와 RxJava 차이
공통점
- 옵저버 패턴을 사용해 반응형 프로그래밍을 할 수 있도록 도와주는 라이브러리들이다.
- 데이터의 변화를 감지하고 미리 작성해둔 코드를 통해 UI 변경, 비즈니스 로직 등을 실행함.
차이점
LiveData
- MVVM-ViewModel에서 단순, 관찰 가능한 데이터 홀더 클래스
- view의 lifecycle을 인식하고 그에 맞춰
- 구독/해지 함.
- 파라미터로 받는 lifeCyclerOwner의 생명주기를 인식하여, started나 resumed상태가 되어야만 observable한 상태로 변환되어 데이터 변화를 감지하고, destroyed 이후로는 참조 상태를 자동으로 해지함. ⇒ 메모리 누수 없음
- DataBinding을 통해 xml파일에서 직접 등록하여 사용할 수 있음.
<aside>
💡 즉 UI와의 연결성이 좋고, 낮은 러닝커브를 가지고 있음.
</aside>
RxJava
- 리애깉브 프로그래밍을 위한 API
- LiveData는 observe 코드 내부에서 코루틴이나 쓰레드를 변경하여 작성하지만, RxJava는 subscriveOn이나 observeOn을 통해 어떤 쓰레드에서 실행할 지 결정할 수 있음.
<aside>
💡 여러 로직 처리를 간편하고 읽기 쉽게 작성할 수 있도록 도와줌.
</aside>