더북(TheBook)

1.1.4 반응형 사고에서 콜백을 사용하지 않아야 할까

아닙니다. 사용자 또는 외부 서비스와의 간단한 상호 작용을 처리할 때는 패러다임을 사용하여 이벤트 기반 또는 비동기 코드를 처리할 필요가 없습니다. 단일 원격 HTTP 요청을 하는 간단한 스크립트 코드를 작성할 때는 RxJS가 다소 과하며, 콜백이 최고의 해결책입니다. 한편, 함수형과 반응형 패러다임이 혼합된 라이브러리는 동적 UI 또는 서비스 조율과 같이 중간 정도의 복잡성을 가진 상태 시스템을 구현할 때 빛을 내기 시작합니다. 예를 들어 페이지 내에서 상호 작용하는 여러 위젯으로 구성된 풍부한 UI 기능 구현이나 여러 마이크로서비스와 데이터 매시업을 소비하는 비즈니스 프로세스들의 실행을 조정하는 데 필요합니다.

다른 원격 서버 측 엔드 포인트에서 클라이언트로 데이터를 불러오는 작업이 있다고 가정해 봅시다. 이들 사이를 조율하려면 그림 1-5에서 보았듯이 각 단계가 다음 단계를 호출하는 과정에서 콜백 본문에 담겨 있는 데이터 처리를 래핑하는 여러 중첩된 AJAX 요청이 필요합니다. 다음 코드는 이를 가능하게 하는 코드로, 동일한 호스트나 다른 호스트에 잠재된 데이터 집합과 그 집합과 연관 있는 메타 정보나 파일들을 함께 로드하려고 작성된 세 개의 콜백 함수를 요청합니다.

ajax('<host1>/items', -- 나타내려는 모든 데이터를 로드합니다.
items => {
  for (let item of items) {
    ajax(`<host2>/items/${item.getId()}/info`, -- 데이터마다 추가 메타 정보를 로드합니다.
      dataInfo => {
        ajax(`<host3>/files/${dataInfo.files}`, -- 메타 레코드마다 관련 파일을 로드합니다.
          processFiles);
    });
  }
});
 
beginUiRendering();
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.