-
[ETC] Promise.all로 성능 개선하기ETC 2022. 11. 10. 16:30
기존 로직
const a = await updateA(); const b = await updateB(); const c = await updateC(); return { a, b, c }
updateA, updateB, updateC 로직이 끝난 후 return문에서 값을 반환해야 하기 때문에 3개의 로직은 동기적으로 처리되어 있다.
여기서 놓친 포인트가 있었는데 3개의 로직이 다 끝난 후에 return문을 거쳐야 하는 것은 맞지만 3개의 로직이 동시에 처리될 필요는 없었다.
그렇기 때문에 아래와 같이 개선할 수 있었다.
개선된 로직
const [a, b, c] = await Promise.all([ updateA(), updateB(), updateC(), ]); return { a, b, c }
위에서 말했듯이 3개의 로직이 다 끝난 후에 return문을 거쳐야 하는 것은 맞지만 3개의 로직이 동시에 처리될 필요는 없다. 따라서 로직들을 Promise.all로 감싸 3개의 로직은 비동기적으로 실행되고, 전체 로직은 동기적으로 처리되게 개선하였다.
이 개선으로 3배에 가깝게 로직이 소요되는 시간을 줄일 수 있었다.
'ETC' 카테고리의 다른 글
[ETC] API url에 /api/v1를 붙이는 이유 (0) 2022.12.03 [ETC] CDN(콘텐츠 전송 네트워크) (0) 2022.11.15 [ETC] Webpack 이란? (0) 2022.07.17 [ETC] npm, yarn의 차이는? (0) 2022.07.17 [ETC] ESLint, Prettier란? (0) 2022.07.17