[javascript] 옵저버블이 비동기적으로 동작하는 이유는?
  1. 비동기 작업 처리: 옵저버블은 비동기 작업을 처리하기 위해 사용됩니다. 이는 네트워크 요청, 파일 읽기/쓰기, 데이터베이스 쿼리 등과 같은 작업을 말합니다. 이러한 작업들은 시간이 오래 걸리거나 완료되기를 기다려야 하는 경우가 많으므로, 옵저버블을 사용하여 비동기적으로 처리할 수 있습니다.

  2. 이벤트 기반 프로그래밍: 옵저버블은 이벤트 기반 프로그래밍 모델과 잘 맞습니다. 이벤트가 발생하면 옵저버블은 해당 이벤트에 대한 알림을 옵저버에게 전달합니다. 이렇게 하면 애플리케이션이 다양한 이벤트에 대응하고 비동기적으로 반응할 수 있습니다.

  3. 비동기 코드 흐름 제어: 비동기적으로 동작하는 옵저버블은 코드 흐름을 제어하는 데 도움이 됩니다. 옵저버블은 비동기 작업이 완료되거나 에러가 발생할 때까지 기다리는 것이 아니라, 다른 작업을 수행하면서 동시에 비동기 작업의 결과를 처리할 수 있습니다. 이렇게 함으로써 애플리케이션의 반응성과 효율성을 높일 수 있습니다.

예시 코드:

const observable = new Observable(observer => {
  // 비동기 작업 수행
  setTimeout(() => {
    observer.next('데이터를 가져왔습니다.');
    observer.complete();
  }, 1000);
});

observable.subscribe({
  next(data) {
    console.log(data);
  },
  complete() {
    console.log('작업이 완료되었습니다.');
  }
});

위의 예시 코드에서는 setTimeout 함수를 사용하여 1초 후에 데이터를 가져오는 비동기 작업을 수행합니다. 이때 옵저버블의 next 메서드를 통해 데이터를 전달하고, complete 메서드를 통해 작업이 완료되었음을 알립니다.

참고 자료: