zero-wiki Help

09장-비동기-프로그래밍-패턴

비동기 자바스크립트 프로그래밍은 브라우저가 이벤트에 응답하여 다른 코드를 실행하는 동안, 백그라운드에서 오랜 시간이 걸리는 작업을 수행하게 해줍니다.

9.1 비동기 프로그래밍

동기 코드는 블로킹 방식으로 실행됩니다. 이는 코드가 순서대로 한 문장씩 실행되는 것을 의미합니다.

반면에 비동기 코드는 논블로킹 방식으로 실행됩니다. 자바스크립트 엔진은 현재 실행 중인 코드가 다른 작업을 기다리는 동안 백그라운드에서 해당 비동기 코드를 실행할 수 있습니다.

비동기 코드는 일반적으로 코드의 나머지 부분을 차단하지 않고 오래 실행되는 작업을 수행할 때 유용합니다.

9.3 프로미스 패턴

프로미스는 자바스크립트에서 비동기 작업을 처리하는 최신 방법입니다.

function request(url){ return new Promise((resolve, reject) => { fetch(url) .then(res => res.json()) .then(data => resolve(data)) .catch(error => reject(error)) }) } request('http://example.com')

프로미스를 사용하면 콜백으로 사용할 때보다 체계적이며 가독성이 높은 방법으로 비동기 작업을 처리할 수 있습니다.

9.3.7 프로미스 재시도

프로미스 재시도 패턴을 사용하면 프로미스가 실패할 때 다시 시도할 수 있습니다.

function makeRequestWithRetry(url, count){ let attempts = 0; const request = (url) => { return new Promise((resolve, reject) => { fetch(url) .then(res => res.json()) .then(data => resolve(data)) .catch(error => reject(error)) }) } const retry = (error) => { attempts++; if (attempts >= count) { throw new Error(`Request failed after ${count} attempts`) } return request() } return request().catch(retry) }
Last modified: 02 April 2025