RxJava기록 - 기본 개념

dada·2021년 12월 29일
0

RxJava

목록 보기
1/12

Rxjava프로그래밍이라는 책을 구매한지는 꽤 됐지만..이제야 제대로 다시 공부하려고 한다!! 2주안에 기록하고 공부하는 것이 목표⏳

Rxjava는 리액티브 프로그래밍을 자바로 구현한 라이브러리라고 합니다

리액티브 프로그래밍

  • 데이터의 변화가 발생했을 때 변경이 발생한 곳에서 새로운 데이터를 보냄.(Push 방식)
  • 함수형 프로그래밍의 지원이 필요
    • 멀티 스레드 환경에서 사용할시 데드락과 동기화 문제 발생할 수 있음.
Observable.just("hello")
	  .subscribe(System.out::println);

Observable 클래스

  • 데이터의 변화가 발생하는 데이터 소스

just()함수

  • Observable 선언 방식

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

profile
기록하기

0개의 댓글