javascript
-
Promise.all를 사용하여 네트워크 통신 개선하기Web 2024. 1. 24. 23:20
문제 웹뷰 프로젝트를 진행할 때 로그인 후에 유저에 대한 정보를 서버에서 통신하여 데이터를 받아오고 있었다. 이때 많은 로직을 async/await로 처리하여 불필요한 지연이 발생하였고, 이를 해결하기 위해서 Promise.all 도입이 필수적이었다. Promise.all 이란? javaScript에서 비동기적으로 다수의 Promise를 동시에 처리하고 모든 Promise가 완료될 때까지 기다리는 메서드이다. Promise.all은 배열 Promise들을 인자로 받고, 해당 Promise의 결과를 배열로 반환한다. Promise all은 여러개의 비동기 작업을 병렬적으로 처리할 때 유용하게 사용된다. 즉, 모든 작업이 완료될 때까지 대기할 필요가 없고, 작업들 간의 순서가 서로 연관되지 않은 경우 유용하..
-
Google maps 최적화 작업Web 2023. 11. 26. 02:18
문제 지도 기반 탐방로 하이브이드앱 웹뷰 개발 과정 중 다음과 같은 문제들이 발생하였다. 1. 지도 초기 렌더링이 너무 느림 초기 렌더링 속도는 사용자가 체감이 될 정도의 느린 속도임 실제 렌더링 시간 1700ms (1.7초) 2. 지도 이동 시 버벅거리는 현상이 자주 발생함 (지도 렉) 개발자도구의 performance를 보면 장기 작업 이슈가 발생 지도에서 홀링 후 이동할 때 버벅거림이 존재한다. (랜더링 이슈) 문제 분석 1. 지도 초기 렌더링이 너무 느림 2. 지도 이동 시 버벅거리는 현상이 자주 발생함 (지도 렉) 위 두 문제가 발생하였는다. 1. 우선 첫 번째 문제는 구글 자체에서 제공하는 polyline 등의 용량이 크고 받아오기까지 시간이 오래 걸리게 된다. 따라서 런타임에서 성능 개선하는..