더북(TheBook)
ajax('/data', -- 명시적 반환값이 없습니다.
items => { -- 콜백 함수 선언
  items.forEach(item => {
    // 각 항목 처리 -- 서버에서 데이터를 가져오고 나면 모든 프로그래밍 처리는 콜백 함수 안에서 실행됩니다.
  });
});
 
beginUiRendering(); -- 이 함수는 AJAX가 호출된 후에 시작합니다.

콜백 함수를 사용하면 코드를 비동기적으로 호출할 수 있어 애플리케이션이 나중에 제어권을 반환할 수 있습니다. 이렇게 하면 프로그램이 그동안 다른 작업을 계속할 수 있게 됩니다. 예제 코드에서 HTTP 함수는 백그라운드에서 실행되고 호출자(애플리케이션)에게 즉시 제어권을 반환하여 UI 렌더링을 시작합니다. UI 렌더링은 완전히 로드된 후 items의 내용을 처리합니다. 이 작동 방식은 애플리케이션이 예제처럼 나머지 웹 페이지를 로드하는 등의 다른 작업을 진행하게 하므로 이상적입니다. 비동기 코드는 웹이나 데이터베이스에서 데이터를 가져오는 것과 같은 I/O 바인딩 작업을 위한 좋은 디자인 방식입니다. 이 방식이 가능한 이유는 I/O 프로세스가 일반적으로 다른 유형의 명령 실행보다 그 실행이 매우 느려 프로세스를 완료되기 위해서는 프로세스 주기에 의존하지 않고 백그라운드에서 프로세스를 실행해야 하기 때문입니다.

Note 구문검사

1.1.2의 예제 코드에서 ajax()의 두 번째 매개 변수가 콜백 함수입니다. 이 책에서는 간단명료한 함수 호출 방법을 제공하는 ECMAScript 6 람다 표현식 구문2을 사용합니다. 화살표 함수(arrow function)라고도 하는 람다 표현식은 친숙할 수도 있는 익명 함수 호출 방식과 유사하게 작동합니다. 익명 함수와 화살표 함수의 차이점은 this 키워드가 가리키는 것에 있습니다. 드문 경우지만, this가 가리키는 값이 중요할 때는 그 내용을 알리고 익명 함수 표현식을 사용하겠습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.