coroutines (2)


StateFlow는 원래 Hot Stream인데, 왜 shareIn/stateIn을 쓸까?

StateFlow는 원래 Hot Stream인데, 왜 shareIn/stateIn을 쓸까?

1. 오해 바로잡기: StateFlow는 원래 Hot입니다.Flow: Cold Stream (수집자가 없으면 데이터를 생성하지 않음)StateFlow / SharedFlow: Hot Stream (수집자가 있든 없든 데이터를 가지고 있거나 발행함)2. 그럼 stateIn과 shareIn은 왜 존재하나요?우리가 데이터 소스(예: DB, 네트워크)로부터 받아오는 데이터는 보통 일반적인 Cold Flow인 경우가 많습니다.문제 상황: 이 Cold Flow를 UI에서 그대로 사용하면, 화면을 돌리거나 새로운 구독자가 생길 때마다 DB를 다시 조회하거나 네트워크 통신을 처음부터 다시 시작하게 됩니다. (리소스 낭비)해결 방법: 이 Cold Flow를 Hot Flow(StateFlow/SharedFlow)로 "업그..

왜 상태 관리가 중요한가? (State Management)

왜 상태 관리가 중요한가? (State Management)

상태(State)"란 무엇인가? - 특정 시점에 사용자가 화면에서 보고 있는 모든 정보 를 의미합니다. 1. 실생활 예시로 이해하기스마트폰의 배터리 아이콘을 생각해 보세요.배터리가 80%일 때 -> 초록색 아이콘 (상태 A)배터리가 15%일 때 -> 빨간색 아이콘 (상태 B)충전기를 꽂았을 때 -> 번개 모양 아이콘 (상태 C)여기서 배터리 잔량(숫자) 은 데이터이고, 그 데이터에 따라 변하는 아이콘의 모양과 색상이 바로 상태입니다. - StateFlow UI는 상태를 바라보기만 한다: UI는 "상태가 변하면 알려줘, 내가 알아서 바꿀게"라고 선언합니다.데이터의 일관성: 화면을 돌리거나 다른 화면에 갔다가 돌아와도 상태만 잘 보존되어 있다면 UI는 항상 올바른 모습을 유지2. StateFlow의 5가지 ..