그제 LiveData를 활용해 UI에서 실시간으로 랜더링하려고했는데, 도대체 안돼서 100ms마다 UseCase를 호출하는 희대의 개병신짓을 함

당시에는 원래 이렇게 쓰는가보다하고 넘어갔지만, 오늘 다시 생각해보니 아무리봐도 개병신같은 코드라는걸 느낌 (LiveData인데 왜 데이터변화를 알아서 감지하지않고 직접 제어해야하지?)

그래서 구글링을 해봤지만 LiveData VS StateFlow만 나오길래 고치는 김에 아예 StateFlow로 사용하기로 함

결국 해답은 gpt랑 짝짝궁해서 찾음 회사 플젝은 db사용안하고 하드웨어 신호 받아서 파싱 후 UI에 뿌려주는데, 파싱한 후에 데이터를 담고 데이터가 이전과 달라졌다라는걸 viewmodel에 알려줘야한다는걸 몰랐었음 (room같은 경우는 따로 필요없는걸로 앎 그래서 더 찾기 어려웠음)

그래서 하드웨어 신호를 response로 바꿔서 저장해놓은 service와 viewmodel에 있는 변수들을 stateflow로 감싸준 뒤 viewmodel에서 init블럭안에 수신설정해놓으니 그제서야 제대로 코드가 돌음

지금은 별차이가 없는 것 같지만 나중에 데이터 많아지면 아마 UI스레드에 부하가 덜하지 않을까 생각함