Rxjava프로그래밍이라는 책을 구매한지는 꽤 됐지만..이제야 제대로 다시 공부하려고 한다!! 2주안에 기록하고 공부하는 것이 목표⏳
Rxjava는 리액티브 프로그래밍을 자바로 구현한 라이브러리라고 합니다
리액티브 프로그래밍
- 데이터의 변화가 발생했을 때 변경이 발생한 곳에서 새로운 데이터를 보냄.(Push 방식)
- 함수형 프로그래밍의 지원이 필요
- 멀티 스레드 환경에서 사용할시 데드락과 동기화 문제 발생할 수 있음.
Observable.just("hello")
.subscribe(System.out::println);
Observable 클래스
just()함수
Subscribe() 함수
- Observable을 구독하며 Observable은 subscribe() 함수를 호출해야 변화한 데이터를 구독자에게 발행
emit() 메소드
- Observable이 subscribe() 함수를 호출한 구독자에게 데이터를 발행하는 것으로 표현
마블 다이어그램
- 실선 : Observable의 시간 표시줄 : 시간순으로 데이터가 발행되는 것을 표현
- 도형 : 발행하는 데이터 ⇒ 데이터를 발행할 때는
OnNext
발생
- |(파이프) : Observable에서 데이터 발행이 완료했다는 의미
OnComplete
알림 발생
- x : 함수가 입력값을 처리할 때 발생한 에러를 의미
OnError
알림이 발생
*CombineLates 예제 (두개 이상의 Observable)
- 첫 번째 Observable은 같은 모양이지만 번호가 다른 도형을 발행
- 두 번째 Observable은 모양을 다르지만 번호가 없는 도형을 발행
- CombineLatest() 함수는 첫 번째 Observable과 두 번째 Observable이 모두 들어오면 합성
- 조합한 결과가 마지막 줄에 출력. (첫번째는 색상을 취하고 두번째는 모형을 취함)
항상 구글링으로 검색해서 알던 것만 사용했던 Rxjava인데
처음 개념부터 다시 공부하니 생각보다..재밌는 것 같다.
모르는게 아직 많다는 것을 느껴버린 것 같다..열심히 해야겠다🐥🐥
출처
Rxjava 프로그래밍 책
https://reactivex.io/documentation/observable.html