[javascript] 이벤트 루프와 동시성 활용 예시

JavaScript는 단일 스레드 언어이지만, 이벤트 루프와 비동기 동작을 통해 동시성을 관리할 수 있습니다. 아래의 예시에서는 비동기 동작을 통해 이벤트 루프와 동시성을 활용하는 방법을 살펴보겠습니다.

비동기 동작과 콜백 함수

function asyncOperation(callback) {
  setTimeout(function () {
    callback('비동기 동작 완료');
  }, 1000);
}

console.log('시작');
asyncOperation(function (result) {
  console.log(result);
});
console.log('');

위의 예시에서 asyncOperation 함수는 콜백 함수를 인자로 받아 비동기 동작을 수행합니다. 이 함수는 setTimeout을 사용하여 1초 후에 콜백 함수를 실행하고, 그 후에 ‘비동기 동작 완료’를 출력합니다.

Promise를 통한 비동기 동작 관리

function asyncOperation() {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      resolve('비동기 동작 완료');
    }, 1000);
  });
}

console.log('시작');
asyncOperation().then(function (result) {
  console.log(result);
});
console.log('');

Promise를 활용한 예시에서는 asyncOperation 함수가 Promise 객체를 반환하고, 그 후에 then 메서드를 사용하여 비동기 동작이 완료되면 처리 결과를 받아옵니다.

이처럼 JavaScript에서는 이벤트 루프를 통해 비동기 동작을 관리하고, Promise를 활용하여 동시성을 다룰 수 있습니다.

더 자세한 내용은 MDN web docs를 참고해 주세요.