코루틴

    Kotlin 코틀린의 Flow

    Kotlin 코틀린의 Flow

    최근 회사에서 안드로이드 개발을 하면서 Flow와 stateflow를 많이 사용하면서 개발을 진행하고있다. 오늘은 Flow와 Stateflow에 대해서 내가 알고있는것을 자세히 정리하려고한다. 기존에는 코틀린의 LiveData, RxJava, coroutine과 flow, stateflow 사용하기 전까지는 콜백과 리스너를 통해 이벤트 발생 시 특정 동작을 수행하는 역할을 개발해왔다 하지만 리스너를 사용하게 되면 코드가 복잡해지고 가독성이 떨어지며 메모리 누수와 같은 문제가 발생할 수 있었다 이후 LiveData , RxJava와 같은 반응형 프로그래밍 라이브러리들이 나오게 되었고 더 나아가 코루틴과 Flow가 나오게 되면서 이러한 문제들을 해결할 수 있었다. 최근 나같은 경우는 데이터의 변화에 따른 ..

    Kotlin 코틀린의 Coroutine

    Kotlin 코틀린의 Coroutine

    * Coroutine의 개념 코루틴은 1958년 멜빈 콘웨이가 처음 제창했다고 하는 개념으로 현재 여러 프로그래밍 언어에 구현되어 있으며 코틀리만의 고유한 개념은 아니다. 프로그래밍에서 루틴이란 프로그램의 흐름을 추상적으로 일컫는 말이다. 루틴은 크게 메인루틴과 서브루틴으로 나눌수있는데, 예를들어 main함수에 의해 수행되는 프로그램의 흐름을 메인루틴이라고 한다면, main함수 안에서 실행되는 개별 함수들에 의해 수행되는 흐름을 서브루틴이라 비유할 수 있다. 루틴의 한 종류인 함수는 호출을 함으로써 그 내부에 진입하여 내부에서 처리를 수행하고, 처리가 끝나면 함수도 종료되는 구조를 가지고 있기 때문에 보통은 루틴이 일직선적인 흐름을 가지고 있다고 할 수 있다. 그런데 코루틴의 특징은 이 일직선적인 흐름을..