본문 바로가기

개발일지

callback 함수는 callback 함수다. (callback 함수는 비동기가 아니다.(2))

날짜 : 2018. 02. 20(화)

callback 함수는 callback 함수다. (callback 함수는 비동기가 아니다.(2))

이전글에서 정리한 것과는 다른 시각에서 정리를 해보았습니다. 

한줄정리

callback은 synchronous 한것도 있으며 asynchronous 한것도 있다. 사용하는 함수의 공식문서를 잘 읽어 보아야 한다.

내용

  1. 생각을 하게 된 계기

    • 이전 글에서 정리한 내용이 머리에 남아 있지 않았다.
    • callback은 비동기 함수 인것 같다;;;;;;;
    • Array.prototype.forEach( callback1 ) 와 setInterval(callback2, delay)는 다르게 동작한다;;;;;
  2. callback 함수의 의미

    In computer programming, a callback is any executable code that is passed as an argument to other code, which is expected to call back (execute) the argument at a given time. - Wikipedia(en)

    "실행가능한 코드를 다른 코드에 전달하여 주어진 시간에 실행되는 것을 의미 한다. - 위키피디아" 에서 나온 말인데 결국은 함수에게 함수를 전달하여 서브루틴을 실행한다는 것을 의미한다.

  3. callback의 종류

    1. synchronous callback (blocking callback) : 외부의 함수가 종료되기 전에 내부함수(서브루틴)이 종료 된다.
    2. asynchronous callback (deferred callback) : 외부의 함수가 종료된 후에 내부함수(서브루틴)이 종료된다.
  4. javascript 에서 어느 것이 asynchronous 한 것인가?

    • Ajax 통신 및 이벤트 처리가 비동기로 처리가 된다.

후기

  1. 이번글을 정리하면서 이전글을 삭제 하고 싶지만 반면교사를 삼기 위해서 삭제 하지 않으려 한다. ㅜㅜ
  2. 공식 문서와 스펙문서, 영문 위키피디아를 잘 해석한다면 다 해결되는 것 같다.

참고자료

  1. [wikipedia - callback function](https://en.wikipedia.org/wiki/Callback_(computer_programming)
20180220