https://dev-cho.tistory.com/63
https://inpa.tistory.com/entry/GOF-💠-싱글톤Singleton-패턴-꼼꼼하게-알아보자#⚠️_멀티_쓰레드_환경에서의_치명적인_문제점
kotlin에서 object를 통해 싱글톤을 구현할 수 있다.
멀티 스레드 환경에서 싱글톤
다행히도 해시 코드 확인 시 하나의 객체만이 만들어지고 있다.
CoroutineScope(Dispatchers.IO).launch {
Log.d("데이터 확인","beacon : ${dataModel.beacon}, sensor: ${dataModel.sensor}, gps : ${dataModel.gps}")
if (dataModel.beacon != null && dataModel.sensor != null && dataModel.gps != null) {
val result = runCatching {
dataModel.let { RetrofitClient.instance.sendUserIgnoreData(it) }
}
result.onSuccess {
if (it.result) {
Log.d("success send data", "성공")
isDataSent = true
}
}
result.onFailure {
Log.d("failed to send data", "${it.message}")
}
}
}
데이터가 유실되어도 괜찮다면 지금처럼 해도 무방
리스크제로 측의 요구에서는 데이터 지연이 발생해도 ㄱㅊ 라고 했으니 현재로서는 추가 로직 필요치 않음