본문 바로가기

Kotlin&Java6

[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.
[Kotlin] 안드로이드에서 Coroutine 사용하기 Kotlin Coroutine 이해하기 3부 의존성 추가 Coroutine 사용을 위해 build.gradle(:app) 에 의존성을 추가한다. Kotlin/JS 나 Kotlin/Native를 멀티플랫폼을 위한 설명은 아래 사이트에서 확인할 수 있다. https://github.com/Kotlin/kotlinx.coroutines 코루틴의 일반적인 사용 방법 Coroutine(코루틴)은 Asynchronous/Non-Blocking Programming을 제공하는 Lightweight Thread(경량 스레드)이다. 기본적인 사용 문법은 Context(Job + Dispatcher)로 Scope를 만든 뒤, Builder를 사용하여 Coroutine을 실행하는 것이다. 이 세 가지의 용도는 아래에서 소개.. 2023. 1. 18.
[Kotlin] Coroutine vs Thread Kotlin Coroutine 이해하기 2부 Kotlin Coroutine 개념 기초 Coroutine(코루틴)을 수도없이 사용해왔지만 이게 무슨뜻일지 궁금했다 Co(협력) + Routine(작업)으로 협력형 멀티태스킹이라 말할 수 있다고 한다. (이에 대한 자세한 내용은 하단에 링크 첨부) Android Developer 사이트에서는 아래와 같이 정의하고 있다. 코루틴은 비동기적으로 실행되는 코드를 간소화하기 위해 Android에서 사용할 수 있는 동시 실행 설계 패턴입니다. 코루틴은 Kotlin 버전 1.3에 추가되었으며 다른 언어에서 확립된 개념을 기반으로 합니다. Android에서 코루틴은 기본 스레드를 차단하여 앱이 응답하지 않게 만들 수도 있는 장기 실행 작업을 관리하는 데 도움이 됩니다. 코.. 2023. 1. 18.
[Kotlin] Coroutine(코루틴) Thread란 무엇인가 Kotlin Coroutine 이해하기 1부 안드로이드 컴포즈 모각코에 참여하면서 스터디 그룹에 들어갈 기회가 생겼다. 각 주제별로 나누어 내가 들어간 팀은 5인조로 구성되었고, 처음 만나보는 분들과 정보도 교류하고 학습도 할 수 있는 좋은 기회라고 생각한다. 공통주제로 Kotlin의 Coroutine과 Flow에 대해 포스팅을 작성하고 한 명이 발표하는 것으로 정하였다. Thread 이해 코루틴을 이해하기 앞서 Java를 사용하며 봐왔던 Thread에 대한 이해가 필요하다. OS위에서 메모리 공간을 할당받아 실행중인 소프트웨어/프로그램 이를 Process(프로세스)라 한다. 하나의 프로그램은 1개 이상의 프로세스를 실행하고 프로세스 당 1개의 Heap 메모리를 할당받아 한 가지의 작업을 한다. 그리고 .. 2023. 1. 17.