자바스크립트 async/await를 이용한 이미지 로딩

이미지 로딩은 웹 개발에서 일반적으로 수행되는 작업입니다. 그러나 이미지를 로딩하는 동안 웹 페이지가 멈추거나 느려지는 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 자바스크립트의 async/await를 사용하여 비동기적으로 이미지를 로딩할 수 있습니다. 이번 게시물에서는 자바스크립트 async/await를 사용하여 이미지를 로딩하는 방법을 알아보겠습니다.

1. 비동기 함수 선언

먼저, 이미지를 로딩하는 비동기 함수를 선언해야 합니다. 비동기 함수는 async 키워드로 선언되며, 내부에 await 키워드로 비동기 처리를 기다리는 코드를 작성할 수 있습니다. 이미지를 로딩하기 위해 fetch 함수를 사용할 수 있습니다.

async function loadImage(url) {
  const response = await fetch(url);
  const blob = await response.blob();
  return URL.createObjectURL(blob);
}

위의 코드에서 loadImage 함수는 이미지 URL을 매개변수로 받아와 비동기적으로 해당 이미지를 로딩한 후 URL.createObjectURL로 이미지를 반환합니다.

2. 이미지 로딩

이제 비동기 함수를 사용하여 이미지를 로딩해보겠습니다.

async function displayImage() {
  try {
    const imageUrl = '<이미지 URL>';
    const imageElement = document.createElement('img');
    imageElement.src = await loadImage(imageUrl);
    document.body.appendChild(imageElement);
  } catch (error) {
    console.error(error);
  }
}

displayImage();

위의 코드에서 displayImage 함수는 비동기적으로 이미지를 로딩하여 새로운 img 엘리먼트를 생성하고, 해당 이미지를 문서의 body에 추가합니다. loadImage 함수 호출은 await 키워드로 비동기 처리를 기다리며, 이미지가 로딩되면 imageElement.src에 할당합니다.

try-catch문을 사용하여 예외 처리를 수행하고, 에러가 발생하면 콘솔에 에러를 출력합니다.

3. 실행

위의 예제 코드에서 displayImage 함수를 호출하여 이미지를 로딩할 수 있습니다. <이미지 URL> 부분에 실제 이미지 URL을 입력하고 실행해보세요.

이제 자바스크립트 async/await를 사용하여 이미지를 비동기적으로 로딩하는 방법을 알게되었습니다. 이를 활용하여 웹 페이지의 성능과 사용자 경험을 개선할 수 있습니다.