동기(Synchronus)
동기식 처리 모델(Synchronous processing model)은 직렬적으로 태스크(task)를 수행한다.
태스크는 순차적으로 실행되며 어떤 작업이 수행 중이면 다음 작업은 대기하게 된다.
예를 들어 서버에서 데이터를 가져와서 화면에 표시하는 작업을 수행할 때, 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후 태스크들은 블로킹(blocking, 작업 중단)된다.
비동기(Asynchronous)
비동기식 처리 모델(Asynchronous processing model) 또는 Non-Blocking processing model)은 병렬적으로 태스크를 수행한다.
즉, 동기와는 반대로 태스크가 종료되지 않은 상태라 하더라도 대기하지 않고 다음 태스크를 실행한다.
예를 들어 서버에서 데이터를 가져와서 화면에 표시하는 태스크를 수행할 때, 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고(Non-Blocking) 즉시 다음 태스크를 수행한다. 이후 서버로부터 데이터가 응답되면 이벤트가 발생하고 이벤트 핸들러가 데이터를 가지고 수행할 태스크를 계속해 수행한다.
대표적으로 비동기처리로
비동기식 처리 모델로 동작하는데 위의 예시는 따로 정리 하고자 한다.
콜백함수 (callback function)
CallBack 함수란 이름 그대로 나중에 호출되는 함수를 말한다.
어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출하는 함수를 말한다.
즉 콜백함수는 콜백함수라는 유니크한 문법적 특징을 가지고 있는 것이 아니라, 호출방식에 의한 구분이다.