본문 바로가기

Kotlin&Java/Reactive Programming3

[Kotlin][Android] Compose에서 Flow 활용하기 Subject 반응형 프로그래밍을 Kotlin에서 구현할 때, 사용하는 라이브러리 중 대표적인 것으로 Flow가 있습니다. 이번 파트에서는 Flow의 구조와 Android에서의 기본적인 사용 방법에 대해 기록하고자 합니다. 또한 Xml을 위한 DataBinding의 KSP 미지원 등의 제약이 생김에 따라 추세에 맞추어 권장사항인 Compose를 기반하여 작성합니다. Kotlin Flow Flow는 Coroutine을 기반으로 동작하는 비동기 데이터 스트림입니다. Flow는 Sequence(Collection의 상위 클래스)를 생성하는 Iterator(Collection에 저장된 요소를 순회하기 위한 인터페이스)와 비슷하지만, Suspend(정지 함수)를 사용하여 비동기적으로 생성하고 소비합니다. 이로인해.. 2023. 3. 15.
[Reactive Programming] 비동기 데이터 스트림 ReactiveX 개념 정리 Subject 지난 글에서 언급한 반응형 프로그래밍(Reactive Programming)을 구현하기 위해선 Flow, RxJava 등의 비동기 데이터 스트림 라이브러리는 현대에서 필수불가결한 요소입니다. 그중 대표적인 ReactiveX API에 대해 알아보고자 합니다. ReactiveX (RxJava, RxSwift,...) Rx의 의미가 무엇일까? ReactiveX의 줄임말로, "비동기 프로그래밍을 위한 관찰 가능한 Stream API"라는 의미를 갖고 있으며, Observer 패턴, Iterator 패턴, Functional Programming(함수형 프로그래밍)의 구현에 최적화되어있다고 합니다. 공식 홈페이지에서는 ReactiveX를 활용하여 Observer 패턴을 구현하는 방법을 3 단계로 표.. 2023. 3. 1.
[Reactive Programming] 반응형 프로그래밍 이해하기 Subject RxJava, Flow, LiveData 등은 비동기 데이터 스트림을 위해 만들어진 라이브러리들입니다. 이러한 라이브러리는 반응형 프로그래밍(Reactive Programming) 구현을 위해 사용되는데, 이곳에서는 반응형 프로그래밍의 의미에 대해 살펴보고자 합니다. 반응형 프로그래밍 (What is Reactive Programming?) 리액티브 프로그래밍이 무엇일까? Wikipedia나 Stackoverflow에서는 매우 복잡한 이론인 듯 장황하게 설명되어 있습니다. Reactive programming is programming with asynchronous data streams. 리액티브 프로그래밍이란 비동기 데이터 스트림과 함께하는 것이다. 여러 곳을 둘러보니 위와 같은 @a.. 2023. 2. 28.