문제정의 및 원인 파악 글
https://hyorish03.tistory.com/22
[React] Geolocation API의 느린 문제 (1) - 문제정의
😫 문제 현상 설명Geolocation의 Watchposition 훅을 사용해 위치 변화가 감지될 때마다 현 위치를 새로 받아와 보여주는데새로고침을 하거나 초기 접속 시 파란 빈 화면이 5초 이상 나타났습니다. •
hyorish03.tistory.com
원인
- Geolocation API + React + 크로미움 브라우저 ⇒ 5초 이상의 지연이 발생.
- Geolocation API의 watchPostion + 바닐라 JS (브라우저 상관X) ⇒ 5초 이상의 지연이 발생.
해결방안
1. 눈 속임을 한다.
- 파란 화면이 나오는 이유는 지도의 최초 center 위도 경도 값을 0으로 초기화했기 때문이었습니다. (그래서 바다가 찍혔던 것..)
- 초기 위치를 서울과학기술대학교 미래관으로 찍어두고, Geolocation API를 통해 현 위치를 받아오는 5초간 보여지는 화면이 빈 화면처럼 느껴지지 않도록 수정해보았습니다.
변경 전 (빈 파란화면이 5초이상 지속됨) 변경 후 (초기 화면이 파란화면이 아님)
2. RN에서 현 위치를 메시지로 받는다
- RN에서 로그인할 경우 JWT토큰을 웹뷰로 메시지를 보냅니다.
- 이를 활용해 현 위치를 accessToken과 함께 웹뷰로 보내는 방식도 있었습니다.
- 그러나 이와 같은 방식이 웹에서 현 위치를 받는 방식과 속도면에서 큰 차이가 있지 않아 선택하지 않았습니다.
- /* DB 복구시 추가예정*/
3. 로그인 화면에서부터 현 위치를 조회한다 (⭐️NEW !) - 최종선택
- 프로젝트는 웹뷰 기반 expo 앱이었습니다.
- 따라서 로그인과 마이페이지는 RN으로, 기타 기능은 모두 웹뷰로 구현했습니다.
- 그러나 프로젝트 진행을 하며 로그인 또한 웹에서 진행하자는 의견이 나왔고, 이를 활용해 Geolocation API가 느린 문제를 해결할 수 있었습니다.
- 로그인 페이지에서 현 위치 조회한다면, 유저가 로그인하는동안 Geolocation의 5초 지연 시간이 흐르기 때문에 유저가 메인 화면에 들어갈때쯤엔 정확한 위치를 지도에 그릴 수 있었습니다.
- /* DB 복구시 추가예정*/
'React' 카테고리의 다른 글
[React] Geolocation API의 느린 문제 (1) - 문제정의 (1) | 2024.06.17 |
---|---|
[React] useMemo를 이용한 결과 값 최적화 (1) | 2024.06.13 |
[React/Vite] VITE의 기본 margin 없애기 (1) | 2024.06.13 |
[JS] ISO 8601 표준시를 12시간제로 바꾸기 (2) | 2024.06.13 |
[React]Javascript로 잡코리아 채용공고 크롤링하기 (0) | 2024.06.13 |