소프트폰 개발 도중 다음과 같이 콜백 함수를 등록(?)하는 sdk의 함수를 마주했다.
this.agent.addOnActivatedCallback(function (agent) {
console.log('===== Activated =====', agent);
});
this.agent.addOnDeactivatedCallback(function (agent) {
console.log('===== Deactivated ===== ', agent);
});
사실 마주한지 6개월이 넘었지만 지금까지 얼레벌레 써왔답니다~^^
알고 싶지 않았으니까요~^^
하지만 언제까지 이렇게 대충 살 수는 없기에 이참에 내가 헷갈리는 부분을 좀 정리해두려고 한다.
내가 이벤트와 콜백이 헷갈리는 이유는,
어떤 일이 발생하면 -> 이벤트 또는 콜백이 실행된다.
는 매커니즘이 똑같다고 여겨져서다. 물론 이 매커니즘도 내가 얼레벌레 알아서 잘못 이해하고 있는 것임..
function onclick(event) {
sayHi('Lee');
}
챗총각이 알려줌..
콜백은 함수를 다른 함수의 인자로 전달하고, 필요한 시점에 실행하는 것을 의미.
콜백은 비동기 작업에서 주로 사용되며, 특정 작업이 완료되었을 때 그 결과를 처리하거나 다음 단계의 작업을 수행할 수 있다.
(이 비동기 작업의 의미를 모르겠다.)
// 콜백 함수
function callbackFunction() {
// 콜백 함수가 실행될 때 수행할 코드
}
// 다른 함수의 인자로 콜백 함수 전달
someFunction(callbackFunction);```
> 요약하자면, 이벤트 핸들러는 주로 DOM 요소와 관련하여 사용되며 특정 이벤트가 발생했을 때 실행됩니다. 반면에, 콜백은 함수를 다른 함수의 인자로 전달하여 필요한 시점에 실행되는 함수를 지칭하며, 비동기 작업에서 자주 사용됩니다.
```javascript
this.agent.addOnActivatedCallback(function (agent) {
console.log('===== Activated =====', agent);
});
this.agent.addOnDeactivatedCallback(function (agent) {
console.log('===== Deactivated ===== ', agent);
});
activated 이벤트가 발생 -> OnActivated에 등록된 함수(이벤트핸들러 또는 콜백 함수) 실행
agent는 sdk에서 agent를 알아서 세팅해서 파라미터로 전달해주겠다는 뜻인듯..
이벤트핸들러와 콜백은 큰 차이가 없는 것이.. 맞았다!