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