Promise가 그리울때 이벤트 기반으로 통신하는 프로토콜을 구현중에, JS의 Promise나 Dart의 Completer와 비슷한 역할을 하는 Kotlin 친구가 없을까하다 찾게되었다. 완벽한 대체재다! CompletableDeferred는 public function을 이용해 완료하거나 취소할 수 있는 Deferred이다. 이를 활용하면 내가 원하는 시점까지 기다렸다가 값을 받을 수 있다. 그럼 SuspendableCoroutine이랑 뭐가 다르냐? 라는 생각이 들 수 있다. SuspentableCoroutine은 해당 블록 안에서만 complete/cancel을 제어할 수 있지만, CompletableDeferred는 그런 제약이 없다. CompletableDeferred : Functions ab..