자바스크립트 async/await를 이용한 알고리즘 구현
자바스크립트는 비동기 처리를 간편하게 해주는 async/await
문법을 제공합니다. 이를 활용하여 알고리즘을 구현할 수 있습니다. async/await
은 Promise를 기반으로 동작하며 연속적인 비동기 작업을 동기적으로 처리할 수 있도록 도와줍니다. 이번 블로그 포스트에서는 async/await
를 이용하여 간단한 알고리즘을 구현하는 방법을 살펴보겠습니다.
1. 소수 판별 함수 구현
먼저 async/await
를 이용하여 소수 판별 함수를 구현해보겠습니다.
async function isPrime(number) {
if (number <= 1) {
return false;
}
for (let i = 2; i <= Math.sqrt(number); i++) {
await sleep(1000); // 비동기 작업 시뮬레이션을 위한 sleep 함수 호출
if (number % i === 0) {
return false;
}
}
return true;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
위 코드에서는 isPrime
함수가 소수인지 아닌지를 판별합니다. sleep
함수는 비동기 작업 시뮬레이션을 위해 존재하며, 특정 시간(ms) 동안 대기하도록 합니다.
2. 소수 판별 함수 호출
이제 위에서 구현한 소수 판별 함수를 호출해보겠습니다.
async function main() {
const number = 23;
console.log(`Number: ${number}`);
const isPrimeNumber = await isPrime(number);
console.log(`Is prime? ${isPrimeNumber}`);
}
main();
위 코드에서는 main
함수에서 isPrime
함수를 호출하고 결과를 출력합니다. main
함수는 async
키워드로 선언되었으므로, await
키워드를 이용하여 비동기 작업의 완료를 기다립니다.
3. 결과 확인
위 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.
Number: 23
Is prime? true
23은 소수이므로, Is prime? true
가 출력됩니다.
마무리
이번 블로그 포스트에서는 자바스크립트의 async/await
를 활용하여 알고리즘을 구현하는 방법을 알아보았습니다. async/await
는 비동기 작업을 보다 간편하고 직관적으로 처리할 수 있도록 도와줍니다. 알고리즘 구현뿐만 아니라 다양한 비동기 작업에 활용할 수 있으니, async/await
문법을 숙지하고 활용하는 것을 권장합니다.