전체 글
-
Dependency Injection And Service LocationAndroid 2023. 3. 3. 23:27
안녕하세요. 안드로이드 10기 이진성입니다. 본 포스팅은 Dependecy Injection and Service Location 글을 번역 및 정리한 것입니다. Dependecy Injection DI는 항상 안드로이드 커뮤니티에 오르고 내린 주제였다. 개인적으로 그렇게 어려운 개념은 아니지만 안드로이드 개발자들은 여전히 클린 한 방법에 대해 논쟁하고 싸우고 있습니다. 커뮤니티에서 활발한 논쟁을 하고 있음에도 이 문제에 대해 만족스러운 대답을 도출하지 못했습니다. 이 논쟁에 대한 가장 큰 장벽은 Activity와 Fragment의 Constructor은 파라미터를 갖지 못하는 것입니다. 그리고 이러한 컴포넌트들은 생성과 파괴를 애플리케이션 라이프사이클에 맞춰 이뤄집니다. 이러한 요소들이 안드로이드에서 ..
-
코루틴(Coroutine) 취소와 타임아웃Kotlin 2023. 2. 26. 15:09
Cancellation and Timeouts 이번 게시글에서는 코루틴의 취소와 timeout 처리에 대해 알아보자. ※ IntelliJ나 Android Studio가 설치되어 있지 않다면 Kotlin 공식 사이트에서 지원하는 온라인 IDE(Kotlin Playground)를 사용하여 아래 코드를 실행할 수 있다. Cancelling coroutine execution launch에서 반환되는 job 객체는 코루틴을 취소할 수 있는 기능을 제공해 준다. fun main() = runBlocking { val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // delay a ..
-
Reactive - 결합 연산자RxJava 2023. 2. 26. 14:42
Reactive 결합 연산자 리액티브 연산자 생성연산자: Observable로 데이터 흐름을 만든다 변환연산자, 필터 연산자: 데이터 흐름을 원하는 방식으로 변형 결합연산자: 1개의 Observer이 아니라 여러 개의 Observable을 조합할 수 있도록 해준다 생성 연산자 just(), fromXXX(), create(), interval(), range(), timer(), intervalRange(), defer(), repeat() 변환 연산자 map(), flatMap(), concatMap(), switchMap), groupBy(), scan(), buffer(), window() 필터 연산자 filter(), take(), skip(), distinct() 결합 연산자 zip(), com..
-
Reactive - 생성 연산자RxJava 2023. 2. 26. 14:15
Reactive - 생성 연산자 리액티브 연산자 생성연산자: Observable로 데이터 흐름을 만든다 변환연산자, 필터 연산자: 데이터 흐름을 원하는 방식으로 변형 결합연산자: 1개의 Observer이 아니라 여러 개의 Observable을 조합할 수 있도록 해준다 생성 연산자 just(), fromXXX(), create(), interval(), range(), timer(), intervalRange(), defer(), repeat() 변환 연산자 map(), flatMap(), concatMap(), switchMap), groupBy(), scan(), buffer(), window() 필터 연산자 filter(), take(), skip(), distinct() 결합 연산자 zip(), c..
-
Reactive - 조건 연산자RxJava 2023. 2. 26. 01:02
Reactive 조건 연산자 리액티브 연산자 생성연산자: Observable로 데이터 흐름을 만든다 변환연산자, 필터 연산자: 데이터 흐름을 원하는 방식으로 변형 결합연산자: 1개의 Observer이 아니라 여러 개의 Observable을 조합할 수 있도록 해준다 생성 연산자 just(), fromXXX(), create(), interval(), range(), timer(), intervalRange(), defer(), repeat() 변환 연산자 map(), flatMap(), concatMap(), switchMap), groupBy(), scan(), buffer(), window() 필터 연산자 filter(), take(), skip(), distinct() 결합 연산자 zip(), com..
-
Reactive - 변환 연산자RxJava 2023. 2. 26. 00:54
Reactive 변환 연산자 리액티브 연산자 생성연산자: Observable로 데이터 흐름을 만든다 변환연산자, 필터 연산자: 데이터 흐름을 원하는 방식으로 변형 결합연산자: 1개의 Observer이 아니라 여러 개의 Observable을 조합할 수 있도록 해준다 생성 연산자 just(), fromXXX(), create(), interval(), range(), timer(), intervalRange(), defer(), repeat() 변환 연산자 map(), flatMap(), concatMap(), switchMap), groupBy(), scan(), buffer(), window() 필터 연산자 filter(), take(), skip(), distinct() 결합 연산자 zip(), com..
-
RxJava 리액티브 연산자 입문RxJava 2023. 2. 25. 15:50
RxJava 리액티브 연산자 입문 ReactiveX 문서의 연산자 부분을 살펴보면 다양한 연산자(operator) 함수가 존재합니다. 리액티브 연산자의 특징은 언어 특성과 크게 연관이 없다는 것입니다. ReactiveX는 자바뿐만 아니라 자바스크립트, 닷넷, 스칼라, 클로저, 스위프트의 리액티브 연산자 목록을 함께 제공하기 때문입니다. 리액티브 연산자 분류 연산자 생성(Creating) 연산자 : Observable, Single 클래스 등으로 데이터의 흐름을 만들어내는 함수. 변환(Transforming) 연산자 : 어떤 입력을 받아서 원하는 출력 결과를 내는 전통적인 의미의 함수. 필터(Filter) 연산자 : 입력 데이터 중에 원하는 데이터만 걸러내는 함수. 합성(Combining) 연산자 : 생성..
-
Sync, Async, Blocking, NonBlocking카테고리 없음 2023. 2. 25. 15:49
안녕하세요. 안드로이드 10기 이진성입니다. 본 포스팅은 코드스피츠 88 - async, await의 개념 설명 부분만을 정리한 내용입니다. Synchronous Sync는 동기적으로 처리한다는 것을 의미합니다. 이를 정확히 짚기 위해서 Sync Flow Control에 대해 알아보자. Sync Flow 란? 메모리에 적재된 명령이 순차적으로 실행됩니다. 우리는 적재된 명령이 순차적으로 소비되는 것에 관여할 수 없습니다. Sync Flow Control 란? 명령이 시작되면 우리는 순서에 관여할 수 없습니다. 하지만 Sync Flow Control를 이용해서 처음에 명령을 만들 때부터 다른 위치에 명령이 실행될 수 있도록 미리 짜놓을 수 있습니다. 우리가 코드에서 If와 For문을 사용해 미리 프로그래밍..