wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

Android/Issue Handling 2

순서보장 비동기 작업에 대한 고찰

상황Node.js 프레임워크로 돌아가는 서버WebRTC 구축을 위해 MediaSoup을 사용통신을 위해 socket.io 를 사용하고 있다.문제점socket.io 에서, 클라이언트에서 이벤트를 emit 하면 callback으로 응답을 주는 API의 경우callback으로 응답 된 데이터를 바로 다음에 사용해되는 경우callback이 호출될때까지 대기해야함 → 즉 순서가 보장되어야한다. 시도한 방법0. 고전적인 방법 : Callback Hellcallback안에 다음으로 실행할 코드를 적으면 되긴하지만 콜백지옥을 불러오고 싶지는 않음심미적으로 불편 1. 단순하게 동기로 받아오기(socket.on의 람다 식이 callback의 listener)소비 시점에 따라 res가 할당 되어 있을지, emptyStrin..

💡 launchIn(Scope) vs Scope.launch 의 차이 | flow terminal operation

개요 얼마전 안드로이드 개발 중 대략 난감한 상황에 처했다. 상황은 이러하다. 뷰모델에서 서버 api로 데이터를 받아오는 usecase를 실행시켜 값을 받아오는 간단한 함수를 작성 중 이였다. 코루틴 스코프에서 flow를 실행 시키기위해서 viewModelScope.launch{ flow.onEach { ... } } 와 같은 코드를 작성하였다. 음 아무런 문제가 없어보인다. flow가 발행하는 하나하나 소비할 것이라고 생각했다. 하지만 이게 왠걸.. 반환되는 데이터가 전부 null 값이지 않은가.. 해결 그렇게 한참을 헤매다 해결책을 찾았다. 내가 쓴 코드의 단축어와 같은 Flow.launchIn(Scope) 를 사용하니 정상적으로 돌아가는 것이 아닌가... WHY? 이유는 간단했다. 소비한다고 생각했..

728x90