본문 바로가기

책/코틀린 리액티브 프로그래밍

4. 백프레셔와 플로어블 소개 옵져버블이 옵저버가 소비할 수 있는 처리량 보다 더 빨리 아이템이 배출된다면 어떨까? 이 문제가 언제 어떻게 발생할 수 있는지 알아보고 해결 방법도 알아본다. 백프레셔(Backpressure) 이해하기 플로어블(Flowables) 및 가입자 Flowable.create()로 플로어블 생성하기 옵저버블과 플로어블 동시에 사용하기 백프레셔 연산자 Flowable.generate() 연산자 백프레셔 이해 이 프로그램은 사실 두 옵저버에게 한번만 배출하는 subject인 핫 옵저버블로서의 행동을 멈춘 것은 아니다. 그러나 첫 번째 옵저버에서 각 계산이 오래 걸렸기 때문에 각 배출들은 대기열로 들어가게 된 것이다. 이것은 OutOfMemoryError 예외를 포함해 많은 문제를 일으킬 수 있으므로 분명히 좋은 행.. 더보기
3. 옵저버블과 옵저버 구독자 옵저버블 일련의 연산자를 거친 아이템을 최종 옵저버로 내보내는 푸시 기반의 조합 가능한 이터레이터이다. 여기서 옵저버는 아이템들을 소비한다. 옵저버는 옵저버블을 구독한다. 옵저버블이 그 내부의 아이템들을 내보내기 시작한다. 옵저버는 옵저버블에서 내보내는 모든 아이템에 반응한다. 옵저버블이 동작하는 방법 onNext : 옵저버블은 모든 아이템을 하나씩 이 메서드에 전달한다. onComplete : 모든 아이템이 onNext 메서드를 통과하면 옵저버블은 onComplete 메서드를 호출한다. onError : 옵저버블에서 에러가 발생하면 onError 메서드가 호출돼 정의된 대로 에러를 처리한다. onError와 onComplete는 터미널 이벤트이다. onError가 호출됬을 경우 onComplete가 호.. 더보기
2. 코틀린과 RxKotlin을 사용한 함수형 프로그래밍 함수형 프로그래밍 소개 함수형 프로그래밍의 정의 : 불변의 데이터를 사용한 수학적인 함수의 평가를 통해 프로그램을 구조화 하는 동시에 상태의 변화를 방지한다. 언어의 인터페이스와 지원을 필요로 한다. 함수형 프로그래밍을 지원하는 언어 리스프 클로저 울프램 얼랭 오캐멀 헤스켈 스칼라 F# 자바8 버전 이상 부터 지원 코틀린은 객체지향, 함수형프로그래밍 모두를 지원한다. 함수형 리액티브 프로그래밍(Functional Reactive Programming)은 두가지를 혼합한 개념 함수형 프로그래밍 : 쉽게 모듈화 가능한 프로그램을 구현 리액티브 프로그래밍 : 모듈화된 프로그래밍(함수형 프로그래밍)은 반응형 또는 리액티브 선언문의 네가지 원칙을 구현하는데 필요하다. 함수형 프로그래밍의 기초 람다 표현식 일반적으.. 더보기
1. 리액티브 프로그래밍의 소개 리액티브 프로그래밍이란 무엇인가 리액티브 프로그래밍은 데이터 스트림에 영향을 미치는 모든 변경사항을 관련된 모든 당사자(최종사용자, 컴포넌트, 하위 구성요소, 연결되어있는 프로그램)들에게 전파하는 프로그램을 리액티브 프로그램이라고 한다. 예) 엑셀 시트 A1셀에는 숫자 B1셀에는 =ISEVEN(A1) 함수를 입력 A1셀 짝수 입력 B1셀 TRUE가 자동으로 표시 A1셀 홀수 입력 B1셀 FALSE가 자동으로 표시 A1셀의 입력값에 따라 B1셀이 자동으로 변경되는데 이와 같은 작용을 리액티브라고 한다. 숫자가 짝수인지 홀수인지를 판단하는 코틀린 코드이다. fun main(args: Array){ var number = 4 var isEven = isEven(number) println("The number.. 더보기