Study Programming 103

RxJava_5.6. Observable.from() vs Observable.just()

Observable 생성 팩토리 메소드 중 닮은 듯 다른 from(), just() 비교 1. Observable.just() - 최대 10개까지의 아이템을 전달받고 변형과 꺼냄 없이 아이템을 있는 그대로 모두 모아 배열같이 하나로 만들어 1번만 emit한다. - Observable.just(null); 인 경우, null을 배열 아이템으로 가지는 아이템을 1번 emit한다, ※ 이는 empty Observable이 아님!! - Ex) Observable.just(new Integer[]{1, 2, 3}) makes one emission with Observer callback as onNext(Integer[] integers) - just() 함수 정의를 보면, just() 함수에서 아이템들을 모아..

RxJava_5.5 Observable 언제 누가 만드는지

Observable 팩토리 함수들 복습하다 몇가지 관점에서 혼란이 와서 재정리! Observable stream생성 시점 - Observable stream은 Observable 생성과 같이 생성되는 것인지, 나중에 Observer가 subscribe한 시점에 생성되는 것인지 구분 알아보고자 하는 이유 - 자주 변경되는 데이터를 아이템으로 전달 시 주의하기 위해 알아보는 것이 필요 - Observable 아이템을 얻어오는 로직이 오래 걸리거나 무거운 경우 메인 쓰레드가 지연되는 것 주의 필요 Test 방법 - 예제 : Observable 생성 전 "Android10"값을 가진 변수 생성 후, onNext()에서 이 변수를 전달하고, subscribe 전에 "Android11"값으로 수정함 확인 결과 - ..

RxJava_3. Observer

RxJava의 구성요소 중 하나인 Observer Observer이란? : Observable에서 전달되는 이벤트를 받는 주체. - Observable이 데이터나 이벤트를 배출(=push=emit)하기 위해서는 이를 수신할 '구독(=subscribe)한 Observer'가 필요!! - Observer는 Observable체인의 맨 마지막 방출물(=emission)을 수신하며 여기서 emission을 소비한다. cf) Operator가 연산 처리 후 반환한 Observable은 Observer이다, Operator도 내부적으로는 Observer를 구현하는데 보통, Observer라 할 때는 'Observable 체인의 제일 끝에서 내보낸(=push=emit)을 소비하는 최종 Observer'를 지칭한다. ..

RxJava_2. Observable

RxJava의 구성요소 중 하나인 Observable. Observable이란? : 이벤트를 만들어 '이벤트 스트림(=Stream)'을 통해 이벤트를 내보내는(=push =emit) 주체. ↪ 이벤트란? 리액티브에서는 '데이터'와 '이벤트'를 동일하게 취급하므로 '일종의 데이터'를 보낸다고 봐도됨 >> 관련 포스팅 더보기 #Stream 이란? : 시간에 따른 데이터 값들의 일련의 시퀀스 (=일종의 시간순으로 전달되지는 값들의 collection ) 'Observable이 만든 시간순으로 전달되는 데이터들의 강'으로 비유된다. (Subscriber가 이 강에서 데이터를 건짐) Reactive Programing은 이벤트, ajax call, 등 모든 "데이터의 흐름"을 시간순으로 전달되어지는 Stream이..

보일러 플레이트 코드란? (Boilerplate Code?)

MVC의 단점은 '보일러 플레이트 코드가 늘어난다'고 한다. 그래서 보일러 플레이트 코드란? 보일러 플레이트 코드 (=Boilerplate Code =상용구 코드) : 어디서쓰나 거의 또는 전혀 변경도 없이 똑같이 쓰는데 여기저기서 필요로 하여 재사용되는 코드 섹션 문제점 Problem) 이렇다보니, 작은 기능에도 많은 코드를 양산해내게 되는 문제점이 있다. 대표적인 예 Example) Ex1) Java의 Getter/Setter (이래서 Kotlin에서는 자동화로 없어졌나보다) public class Pet { private PetName name; public Pet(PetName name, Person owner) { this.name = name; } public PetName getName() ..

RxJava_1.개념요약

RxJava를 위한 사전지식 # Reactive Programming (=반응형 프로그래밍, 리액티브 프로그래밍) : 데이터 통지 시 '반응(React)'하여 데이터를 처리하는 프로그래밍 방식이며, 반응하기 위해 비동기적 데이터 처리 및 흐름 기반을 둔 프로그래밍 패러다임 # RecativeX : 관찰가능한 시퀀스(Observable sequences)를 사용한 비동기 및 이벤트 기반 프로그램(Reactive Program)을 만들기 위한 라이브러리 # Reactive Stream : 라이브러리나 프레임워크에 상관없이 데이터 스트림을 비동기적으로 다룰 수 있는 공통 메커니즘. - RxJava1.x 개발 후 여기저기서 라이브러리와 프레임워크 만들어 같은 처리 서로 다른 방식 중구난방으로 관련 단체들이 모여..