본문 바로가기

Callback

(2)
[Kotlin] 익명객체와 옵저버 패턴 옵저버 : 이벤트가 일어나는 것을 감시하는 감시자 ex. 안드로이드 키의 입력, 터치의 발생, 데이터의 수신 등 함수로 직접 요청하지 않았지만 시스템 또는 루틴에 의해서 발생하게 되는 동작을 ‘이벤트’라고 부르며 이 이벤트가 발생할 때마다 즉각적으로 처리할 수 있도록 만드는 프로그래밍 패턴을 옵저버 패턴이라고 부른다. 옵저버 패턴을 구현할 때는 두 개의 클래스가 필요하다. 이벤트를 수신하는 클래스 (class A) 이벤트를 발생 및 전달하는 클래스 (class B) 어떻게 통신? B에서 이벤트가 발생할 때 A에 있는 이벤트를 처리하는 함수를 호출하여 알려준다. → 문제 : A의 필요에 따라 B의 인스턴스를 생성하여 사용하기 때문에 A는 B를 직접 참조할 수 있지만 B는 A를 참조할 방법이 없다. → 해결..
[Javascript] 프로미스(Promise) 상점에 가서 물건을 주문하는데 그 물건이 나올 때까지 시간이 걸린다고 가정해보자. 언제 완료되는지 알 수 없고, 물건을 만들다가 실패하는 경우도 있다. 이럴 때 소비자는 10초에 한 번씩 "다 됐나요?"라고 물어본다. 판매자는 "아니요" 또는 "다 됐습니다"라고 대답한다. 실패했다고 말하는 경우도 있다. 그러면 물건을 다시 주문해야한다. 이럴 때 상점에 주문을 하고 상품이 준비되었거나 실패되었으면 알려달라고 하면서 전화번호를 주고 나오는 게 낫다. 상품이 준비되는 동안 다른 작업도 할 수 있다. 상점은 이 번호를 기억했다가 작업이 완료되거나 실패하면 소비자에게 알려준다. 이와 같은 상황에서 사용할 수 있는 것이 Promise이다. 프로미스는 다음과 같이 사용한다. const pr = new Promise..