전체 글
-
-
[RxJava] 4. Filtering & Combining OperatorProgramming/RxJava 2020. 9. 6. 15:03
Filtering & Combining Operator 분류 조합 연산자 Filtering Operator Combining Operator Utility 1. Filtering Operator (분류 연산자) debounce 아이템이 생성되고 일정시간 동안 다른 아이템이 생성되지 않으면 데이터를 전달하는 연산자 distinct 이전에 전달한 아이템은 전달하지 않게 하는 연산자이다. 중복 제거 distinctUntilChanged 변경이 생기기 전까지 중복된 데이터를 전달하지 않는 연산자이다. 동일한 값을 가진 객체를 필터링하고 싶을 때는 클래스 내부에 hashCode와 equals가 구현되어 있어야 한다. 변경이 생기기 전까지 중복데이터를 전달하지 않는다. filter 특정 조건에 참이 되는 데이터만 ..
-
[RxJava] 3. Creating & Transforming OperatorProgramming/RxJava 2020. 9. 6. 01:50
RxJava 연산자 1. Creating Operator : Obseverbale을 생성하는 연산자 defer 연산자 defer 연산자는 옵저버가 구독할 때까지 Observable의 생성을 지연시키다가 subscribe() 메소드를 호출할 때 Observable 아이템을 생성한다. just() 메소드와 defer() 메소드를 통해 각각 Observable을 발행하고 5초 간 Thread를 sleep시킨 뒤 구독 하면 just() 연산자로 만든 옵저버블은 객체를 생성하는 시점의 시간을 발행하고, defer() 연산자로 만든 옵저버블은 구독한 시점의 시간을 발행한다. 구독하기 직전에 Observable을 생성하여 가장 최신의 상태 또는 아이템이 포함되도록 하는 것이 목적이라면 defer 연산자를 사용할 수 ..
-
[RxJava] 2. Subject / 생산자Programming/RxJava 2020. 9. 2. 15:27
SubjectSubject는 Observable과 Observer를 모두 구현한 추상 타입으로 하나의 소스로부터 다중의 구독자에게 멀티캐스팅이 가능하다.Subject는 Observer를 구현하므로 onNext(), onError(), onComplete() 등 메소르르 수동으로 호출하여 이벤트를 구독자들에게 전달할 수 있다.Observable 이면서 Observable이다. 발행과 구독을 모두 Subject 객체를 통해 한다.* Observable과 Observer의 성격을 둘다 가지고 있는 클래스 * Observable이 가지고 있는 subscribe와 여러 operator를 사용 할 수 있음 * Observer가 가지고 있는 onNext, onError, onComplete를 사용 할 수 있음 * s..
-
[아키텍처] MVP Pattern의 이해Programming/Android 2020. 9. 1. 02:36
MVC 패턴 단점 MVC 패턴은 UI와 비즈니스 로직이 분리되지 않아 액티비티(컨트롤러)가 방대해진다. 컨트롤러는 뷰와 모델에 의존적이고 뷰는 모델에 의존적이라 결합도가 높아 유닛테스트가 거의 불가능하다. 궁극적으로 유지보수비가 증가하고 생산성이 저하되는 것이다. MVP 패턴은 UI와 비즈니스 로직을 분리시키는데 초점을 둔다. 뷰는 사용자에게 화면을 보여주고, 사용자는 뷰와 상호작용한다. 뷰는 사용자 이벤트를 프레젠터에게 전달하고, 프레젠터는 데이터(모델)를 업데이트(저장/수정/삭제)한다. 프레젠터는 변경된 모델(데이터를) 가져와서 UI를 업데이트(화면 갱신) 한다. 장점 프레젠터는 뷰와 모델의 인스턴스를 가지며 이 둘을 연결해 주는 역할을 하므로 Presenter와 View는 1:1 관게를 갖는다. 따..
-
[프로그래머스] 피보나치 수열 - Python코딩테스트 2020. 8. 22. 23:41
def solution(n): answer = 0 fibo = [] for i in range(0, n+1): if i == 0 : fibo.append(0) elif i == 1: fibo.append(1) else : fibo.append( fibo[i-2] + fibo[i-1] ) answer = fibo[len(fibo)-1] % 1234567 return answer https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + ..
-
[SQL] 오랜 기간 보호한 동물(2)코딩테스트 2020. 8. 17. 14:53
https://programmers.co.kr/learn/courses/30/lessons/59411 코딩테스트 연습 - 오랜 기간 보호한 동물(2) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 문제 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다. 정답 SELECT outs.ANIMAL_ID, outs.NAME FRO..
-
[RxJava] 1. Observer Pattern에 대한 이해Programming/RxJava 2020. 8. 16. 19:46
Observer Pattern (관찰자 패턴) 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. Instance observer/subscriber Observable Observable(옵저버블)은 이벤트를 만들어내는(emit) 주체 이벤트 스트림을 통해 만든 이벤트를 내보낸다. (0 개부터 여러 개의 이벤트를 내보내는 것이 가능) Observer Observer(옵저버)는 Observable에서 만들어진 이벤트에 반응(react)하며, 이벤트를 받았을 때 수행할 ..