plzy의 개발 블로그

flow에 대해 알아보자 #1. flow 개념알기 본문

Android

flow에 대해 알아보자 #1. flow 개념알기

plzyhappy 2022. 5. 6. 19:47

나는 기존 프로젝트에 LiveData를 중점적으로 썼었다. 이로 인해 여러 에러 사항이 많았는데

특히 A의 activity에 데이터를 호출 한 후 B의 Activity로 이동했다가 다시 돌아오면 기존에 있던 observe가 남아 있어 다시 호출되는 현상이 있었다.

이를 해결하기 위해 SingleLiveData, EventLiveData 등 여러 해결책이 있었지만, 각각 해결책마다 또 다른 이슈가 있어

이번 기회에 flow에 대해 공부하고 정리한다.

 

flow를 알기 전에 먼저 리액티브 프로그래밍의 개념부터 알아야 한다.

왜냐하면 flow는 기존 중단 함수와 달리 여러 값을 순차적으로 내보낼 수 있다.

리액티브 프로그래밍의 개념을 다시 짚어보자면

리액티브 프로그래밍이란?

리액티브 프로그래밍이란 함수형 프로그래밍으로 데이터가 변동사항이 있으면 이벤트를 발생시켜 데이터를 전달하는 것이다.
데이터를 발행해주는 역할, 갱신해주는 역할이 각각 있다.
발행한 순간부터 갱신할 때까지의 주기를 데이터 스트림이라고 한다.

Flow란 무엇일까?

flow란 coroutine에서 리액티브 프로그래밍을 사용하기 위해 만들어진 것이다.

기존 리액티브 프로그래밍은 Rx가 있었는데, 이에 대안하기 위해 만들어졌다.

마무리

자신의 개발 상황에 맞게 LiveData와 flow 중 무엇을 선택해야 할지 잘 선택해야할 것 같다.
다음 글은 flow 함수를 어떻게 써야 하는지 포스팅해야겠다.