본문 바로가기

rxjava

(5)
[🔥Coroutine] # 1 Coroutine을 배워봅시다 안녕하세요:) 원래 비동기처리는 RxJava를 사용하고 있었는데, Coroutine은 사용해본적이 없어서 배워볼까 합니다 🧐 왜 Coroutine을 공부하는가? 안드로이드 메인스레드는 1개로 UI를 업데이트 하기 위해 사용되고, 별도로 멈추는 작업이 없다면 16ms마다 UI를 업데이트를 합니다 그런데 만약 이 때 시간이 걸리는 DB 작업, 네트워크 작업을 하게 된다면 크래시가 발생하기 쉽습니다 그럼 이런 의문이 생기죠 메인 스레드를 멈추고 작업을 하면 되는거 아냐? 🤷‍♀️ 하지만, main Thread를 너무 오래 멈추게 되면 ANR이 발생합니다 main Thread를 크래시 없이 사용하기 위해선, UI 이외의 작업은 별도의 스레드에서 해야합니다 보통 콜백을 통해서 이런 위험성을 피했는데, 콜백은 '콜..
[RxJava] #5 Operators(3) 필터링, 결합 연산자 안녕하세요 Observable에서 발행되는 아이템들을 필터링 및 결합하는 연산자에 대해 알아보겠습니다 필터링 연산자 💡 debounce • 아이템이 발행되고 🕒 동안 다른 아이템이 발행되지 않을 때, 마지막 아이템을 발행 💡 throttleFirst • 일정 시간마다 첫번째 이벤트만 가져옴 • 첫번째 이벤트를 가져오고 나면 🕒 내의 다른이벤트는 무시 💡 throttleLast / sample • 일정 시간마다 가장 최근 이벤트만 가져옴 📌 debounce, throttleFirst, throttleLast는 UI 컨트롤에 유용 ex)브랜디 랩스 (유효성 검사) 안드로이드 이벤트 핸들링 적용하기 Overview labs.brandi.co.kr 💡 elementAt • 특정 인덱스에 해당하는 아이템을 필터링..
[RxJava] #4 Operators(2) 변형연산자 2022.08.03 - [💻 프로그래밍] - [RxJava] #3 Operators(1) [RxJava] #3 Operators(1) 2022.08.01 - [💻 프로그래밍] - [RxJava] #1 [RxJava] #1 안녕하세요 오늘은 비동기 프로그래밍 중 하나인 RxJava에 대해 알아보겠습니다 API와 통신할 때만 사용했기에, 더 많은 기능을 알고자 정리해보겠 kong-droid.com 이전 포스팅에서는 Observable을 생성하는 Operator에 대해 알아봤습니다 오늘은 Observable을 변형하는 연산자에 대해 알아보겠습니다 🧐 예시 코드는 rxjava3:rxjava:3.0.7 기준입니다 변형 연산자 💡 map • 변형 연산자 중 가장 기본적이고 많이 쓰이는 연산자 val origin ..
[RxJava] #2 Subject 지난 포스팅에 이어서 RxJava의 Subject에 대해 알아보겠습니다 💡 Subject • 구독자, 생성자의 특징을 둘 다 가짐 (여러개의 Observable을 구독할 수 있고, 데이터를 방출할 수 있다) • Cold Observable을 Hot Observable로 변경 🔥 Hot Observable 데이터 구독 여부와 관계 없이 데이터를 배출 ❄️ Cold Observable 데이터를 구독을 시작해야 데이터가 배출 Subject의 종류 📍 AsyncSubject • 해당 Observable이 완료된 후 마지막 데이터만 발행합니다 • 에러가 발생한다면 어떠한 데이터도 발행하지 않고, 에러만 발행합니다 val subject: AsyncSubject = AsyncSubject.create() subjec..
[RxJava] #1 안녕하세요 오늘은 비동기 프로그래밍 중 하나인 RxJava에 대해 알아보겠습니다 API와 통신할 때만 사용했기에, 더 많은 기능을 알고자 정리해보겠습니당 우선, 명령형 프로그래밍과 반응형 프로그래밍에 대해 간략히 알아볼게요 RxJava는 반응형 프로그래밍을 따릅니다 📌 명령형 프로그래밍 - 선언된 명령어를 순차적으로 실행 📌 반응형 프로그래밍 - 데이터의 변화에 반응해 실행 (비동기 스트림으로 처리) 키워드에 포커스를 맞추고자 하다보니 문장이 좀 어색하네요 😅 RxJava Rx는 ObserverPattern을 따릅니다 아래의 포스팅을 확인해주세요 ✅ 2022.07.21 - [💻 프로그래밍] - [디자인 패턴] Observer Pattern(관찰자 패턴) [디자인 패턴] Observer Pattern(관찰..