분류 전체보기

    [리엑티브 생산자 Publisher 3] Single & Maybe & Completable

    대량의 데이터가 아닌 최대 1건 이하만 데이터를 통지하는 생산자들 이다. Single 데이터를 1건만 통지하거나 에러를 통지한다. 데이터 통지 자체가 완료를 의미하기 때문에 완료 통지는 하지 않는다. 데이터를 1건만 통지하므로 데이터 개수를 요청할 필요가 없다. onNext( ), onComplete( )가 없으며 이 둘을 합한 onSuccess( )를 제공한다. Single의 대표적인 소비자는 SingleObserver이다. 클라이언트의 요청에 대응하는 서버의 응답이 Single을 사용하기 좋은 대표적인 예다. Single 클래스를 사용하여 현재 날짜와 시각을 통지하는 예제 create 연산자 사용 예제 /*** SingleOnSubscribe 생산자 */ Single single = Single.cr..

    [리엑티브 생산자 Publisher 2] Flowable & Observable (feat. 배압전략)

    생산자 Flowable vs Observable 비교 Floawable Observable Reactive Streams 인터페이스 구현 O 구현 X 데이터 처리 Subscripber 에서 처리 Observer 에서 처리 배압 기능 (데이터 갯수 제어) O X Subscription 으로 전달받는 데이터 갯수를 제어할 수 있음 배압기능이 없기때문에 데이터 갯수를 제어할 수 없음 구독 해지 Subscription로 해지 Disposeable으로 해지 Flowable 생산자 (배압 전략) 배압이란, Flowable(생산자)에서 데이터를 통지하는 속도가 Subscriber(구독자)에서 통지된 데이터를 처리하는 속도보다 빠를 때 밸런스를 맞추기위해 데이터 통지량을 제어하는 기능을 말한다. 데이터 통지속도와 데이..

    [리엑티브 생산자 Publisher 1] Cold Publisher & Hot Publisher

    Cold Publisher & Hot Publisher Cold Publisher(차가운 생산자) 생산자는 소비자가 구독 할때마다 데이터를 처음부터 새로 통지한다. 데이터를 통지하는 새로운 타임 라인이 생성된다. 소비자는 구독 시점과 상관없이 통지된 데이터를 처음부터 전달 받을 수 있다. void ColdPublisher(){ Flowable flowable = Flowable.just(1, 3, 5, 7); flowable.subscribe(data -> System.out.println("구독자1: " + data)); flowable.subscribe(data -> System.out.println("구독자2: " + data)); } Hot Publisher(뜨거운 생산자) : 생산자는 소비자 수..

    객체지형 4대 패러다임(캡슐화, 추상화, 다형성, 상속)

    1. 캡슐화(Encapsulation) 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶고 실제 구현 내용 일부를 외부에 감추어 은닉한다 사용목적: 정보은닉 구현방법: 접근지정자(private, protected, public) 2. 추상화 공통의 속성이나 기능을 묶어 이름을 붙이는 것 사용 목적: 모델링 구현 방법: 클래스 3. 다형성(Polymorphism) 다형성이란 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질 사용목적: 사용 편의 구현방법: 오버로딩(여러 종류의 타입을 받아들여 결국엔 같은 기능을 하도록 만들기 위한 작업), 오버라이딩(오버라이딩은 상위 클래스의 메서드를 하위 클래스에서 재정의..

    의존성 주입 방법 (생성자 주입, 서비스 로케이터, Dagger)

    의존성 B 클래스에서 A 클래스를 내부에 변수로 사용하게 됨으로써 B 클래스는 A 클래스에 의존관계가 생기게 되는 것 주입 내부가 아니라 외부에서 객체를 생성해서 넣어주는 것 의존성+주입 내부에서 만든 변수를 외부에서 넣어주어 의존성을 분리시켜주는 것 의존성 종류는 클래스 의존성뿐 아니라 메서드 의존성 등 다양하지만 여기선 다양한 객체를 그냥 클래스라고 명칭함 DI 장점 - 다형성을 사용할 수 있어 프로그램이 유연해진다. 더보기 다형성 정의: 다형성이란 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메서드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질 다형성 구현방법: 오버 로딩(여러 종류의 타입을 받아들여 결국엔 같은 기능을 하도록 만들기 위한 작업), 오버 라이딩(오버 라이딩은 상..

    Transformations LiveData 변형하기

    LiveData 안의 value 값을 업데이트해주기 위해 Transformations는 LiveData를 위한 클래스로써, LiveData를 사용하면서 데이터를 가공하거나, 다른 LiveData를 만들고 싶을 때 Transformations을 사용하면 된다. 관련 함수로는 map()과 switchMap()이 있다. Transformations.map val userLiveData: MutableLiveData = repository.getUser(id) val userNameLiveData: LiveData = Transformations.map(userLiveData) { user -> user.firstName + " " + user.lastName } map의 첫 번째 인자로 LiveData sou..