Home 1.1 RxJava와 리액티브 프로그래밍
Post
Cancel

1.1 RxJava와 리액티브 프로그래밍

1.1 RxJava와 리액티브 프로그래밍

😉 : 개인 공부 정리용으로 설명이 친절하지 않습니다

  • Reactive Streams: 어떤 라이브러리나 프레임워크라도 데이터 스트림을 비동기로 처리하는 공통 메커니즘을 인터페이스로 제공합니다.
  • RxJava:
    • 자바에서 리액티브 프로그래밍을 구현하는데 사용하는 라이브러리로 2.0 버전부터 Reactive Streams 사양을 구현함
    • 함수형 프로그래밍의 영향을 받아 함수형 인터페이스를 인자로 전달받는 메서드가 많음
    • 기본 처리 방식 : 데이터를 통지하는 생산자를 생성하고 통지한 데이터를 소비자가 받아 처리하는 방식
  • 데이터 스트림 : 데이터가 생성될 때마다 순서대로 보내는 데이터 흐름을 말함. 앞으로 발생할 가능성이 있는 데이터까지도 포함하는 데이터 집합체
  • 리액티브 프로그래밍
    • 데이터 스트림을 통해 전달받은 데이터를 받은 시점에 반응해 이를 처리하는 프로그램을 만드는 것
    • 데이터를 생산하는 측이 데이터를 전달하는 것까지만 책임지고, 데이터를 소비하는 측이 전달받은 데이터로 무엇을 하는지는 몰라도 됨 → 따라서 소비하는 측의 처리를 기다릴 필요가 없음

RxJava의 특징

  1. 옵저버 패턴을 확장한 내용
    • 옵저버 패턴 : 감시 대상 객체의 상태가 변하면 이를 관찰하는 객체에게 알려주는 구조
    • 이 패턴을 통해 데이터를 생성하는 측과 데이터를 소비하는 측으로 나눠서 데이터 스트림을 쉽게 처리할 수 있음
  2. 쉬운 비동기처리
    • Observable 규약을 따른 구현이라면 직접 스레드를 관리할 필요가 없을 뿐만 아니라 구현도 쉬움
    • 동기 처리나 비동기 처리나 구현 방법에 큰 차이가 없음
  3. 함수형 프로그래밍의 영향을 받음
    • 함수형 인터페이스를 인자로 받는 메서드를 사용해 대부분의 처리를 구현함 → 입력과 결과만 정해져 있다면 구체적인 처리는 개발자에게 맡길 수 있으므로 더 자유롭다.
This post is licensed under CC BY 4.0 by the author.