본문 바로가기

💻 프로그래밍12

[🔥 Coroutine] #2 runBlocking , async 안녕하세요 아주 오랜만입니다 약간의 휴식기를 갖고 왔습니다 :) CoroutineBuilder에 관해선, 이전 포스팅에도 있기 때문에, 간단한 예제를 통해 복습하겠습니다 간단한 예제지만, 코루틴을 처음 접하기 때문에 쉬운 예제부터 시작해 천천히 개념을 명확히 알아보려합니다 🙇🏻‍♀️ 2022.08.30 - [💻 프로그래밍] - [🔥Coroutine] # 1 Coroutine을 배워봅시다 1. runBlocking runBlocking 내의 코드가 완료되기 전까지 mainThread를 종료시키지 않음 -> 동시성이 깨짐 다른 코루틴의 Thread를 중지할 수도 있기 때문에 주로 테스트코드 작성시에 많이 쓰임 테스트 코드를 살펴보겠습니다 @Test fun testRunBlock() = runBlocking .. 2022. 11. 5.
[🔥Coroutine] # 1 Coroutine을 배워봅시다 안녕하세요:) 원래 비동기처리는 RxJava를 사용하고 있었는데, Coroutine은 사용해본적이 없어서 배워볼까 합니다 🧐 왜 Coroutine을 공부하는가? 안드로이드 메인스레드는 1개로 UI를 업데이트 하기 위해 사용되고, 별도로 멈추는 작업이 없다면 16ms마다 UI를 업데이트를 합니다 그런데 만약 이 때 시간이 걸리는 DB 작업, 네트워크 작업을 하게 된다면 크래시가 발생하기 쉽습니다 그럼 이런 의문이 생기죠 메인 스레드를 멈추고 작업을 하면 되는거 아냐? 🤷‍♀️ 하지만, main Thread를 너무 오래 멈추게 되면 ANR이 발생합니다 main Thread를 크래시 없이 사용하기 위해선, UI 이외의 작업은 별도의 스레드에서 해야합니다 보통 콜백을 통해서 이런 위험성을 피했는데, 콜백은 '콜.. 2022. 8. 30.
[RxJava] #5 Operators(3) 필터링, 결합 연산자 안녕하세요 Observable에서 발행되는 아이템들을 필터링 및 결합하는 연산자에 대해 알아보겠습니다 필터링 연산자 💡 debounce • 아이템이 발행되고 🕒 동안 다른 아이템이 발행되지 않을 때, 마지막 아이템을 발행 💡 throttleFirst • 일정 시간마다 첫번째 이벤트만 가져옴 • 첫번째 이벤트를 가져오고 나면 🕒 내의 다른이벤트는 무시 💡 throttleLast / sample • 일정 시간마다 가장 최근 이벤트만 가져옴 📌 debounce, throttleFirst, throttleLast는 UI 컨트롤에 유용 ex)브랜디 랩스 (유효성 검사) 안드로이드 이벤트 핸들링 적용하기 Overview labs.brandi.co.kr 💡 elementAt • 특정 인덱스에 해당하는 아이템을 필터링.. 2022. 8. 22.
[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 .. 2022. 8. 14.