안드로이드 앱 개발 공부/안드로이드 기본(노션 이동)

[Android] Rx (RxJava, RxAndroid,...)란?

플래시🦥 2023. 3. 7.
반응형
  • 반응형 프로그래밍
  • 데이터를 관찰할 수 있고, 데이터 스트림으로 처리한다.
  • ReactiveX
  • 관찰 가능한(Observable) 스트림을 사용하는 비동기 프로그래밍을 위한 API이다.
  • RxJava
  • ReactiveX(Reactive Extensions)를 Java로 구현한 라이브러리
  • RxAndroid
  • RxJava에 안드로이드용 스케쥴러 등 몇 가지 클래스를 추가해 안드로이드 개발을 쉽게 해주는 라이브러리이다.
  • RxKotlin
  • RxJava에 Kotlin의 extension function을 이용하여 사용하기 편리하도록 만든 경량 라이브러리이다. 

 

RX = Observable + Observers + Schedulers

  • Observable: Observable은 데이터 스트림입니다. Observable은 하나의 스레드에서 다른 스레드로 전달할 데이터를 압축합니다. 주기적으로 또는 설정에 따라 생애주기동안 한 번만 데이터를 방출합니다. Observable은 데이터를 처리하고 다른 구성요소에 전달하는 역할을 한다고 생각하면 됩니다.
  • Observers: Observers는 Observable에 의해 방출된 데이터 스트림을 소비합니다. Observers는 subscribeOn() 메서드를 사용해서 Observable을 구독하고 Observable이 방출하는 데이터를 수신할 수 있다.
  • Schedulers: Schedulers 는 Observable과 Observers에게 그들이 실행되어야 할 스레드를 알려줍니다. observeOn() 메서드로 observers에게 관찰해야 할 스레드를 알려줄 수 있다. 또한, scheduleOn() 메서드로 observable이 실행해야 할 스레드를 알려줄 수 있다.

명령형 프로그래밍

public void imperativeProgramming() {
    ArrayList<Integer> items = new ArrayList<>();
    items.add(1);
    items.add(2);
    items.add(3);
    items.add(4);

    for (Integer item : items) {
        if (item % 2 == 0) {
            System.out.println(item);
        }
    }

    items.add(5);
    items.add(6);
    items.add(7);
    items.add(8);
}

결과>

2

4

반응형 프로그래밍

public void reactiveProgramming() {
    PublishSubject<Integer> items = PublishSubject.create();
    items.onNext(1);
    items.onNext(2);
    items.onNext(3);
    items.onNext(4);

    items.filter(item -> item % 2 == 0)
            .subscribe(System.out::println);

    items.onNext(5);
    items.onNext(6);
    items.onNext(7);
    items.onNext(8);
}

결과>

6

8

728x90
반응형

'안드로이드 앱 개발 공부 > 안드로이드 기본(노션 이동)' 카테고리의 다른 글

[Android] Rest Api  (0) 2023.03.07
[Android] LayoutInflater 란?  (0) 2023.03.07
[Android] Context  (0) 2023.03.07
[Android] Dialog, Toast, Snackbar  (0) 2023.03.06
[Android] ANR  (0) 2023.03.06

댓글