728x90
Trouble Shooting
지도 사용성 개선
문제 : 너무 많은 마커의 양 때문에 속도가 느려짐
맵을 축소했을 때 여러 개의 마커가 겹쳐서 시인성이 떨어짐
과정: 클러스터링을 적용하고 화면 안에 마커만 나오게 하기로 결정
적용하고 나니 화면을 움직이고 난 뒤에 클러스터링하는 속도가 느림
해결 : 데이터를 정렬, Coroutine 영역에 async, await으로 for문을 나눠서 처리하여 속도를 개선
(카메라 이동 시 처리 시간 약 800ms → 약 500ms)
좌표 검색 방식 변경
문제 : 파이어스토어에 2개의 필드를 중첩하여 검색할 수 없음
과정 : 모두 불러온 뒤 비교하는 방법은 비용 문제 때문에 배제
Geohash 적용 (정확도가 높지 않아서 오차가 크다는 단점이 있음)
해결: 매 호출마다 Geohash값으로 변환하는 것은 비효율적이라 판단 -> Geohash값을 db에 추가
CustomScrollView 사용
문제 : ScrollView 안에 맵뷰에서 위 아래로 터치가 먹지 않음
원인 : 터치 이벤트가 ScrollView에서 소비되어 MapView까지 전달되지 못함
해결 : CustomScrollView를 만들어 MapView에서 터치이벤트를 인터셉트하도록 구현
Decision
리스트 형태의 field를 평탄화
문제 : 태그에 따라 검색이 불가 원인 : Firestore는 field에 저장되어있는 값이 정확히 일치해야지만 검색이 가능 해결 : 보통은 데이터를 전부 가져와서 필터링. 비용적인 문제로 각각의 태그를 세분화해서 저장
유저 데이터 암호화에 AES알고리즘 사용
문제 : 유저 데이터가 firestore에 그대로 노출 과정 : DES 알고리즘을 적용했지만 키길이가 56비트 밖에 되지 않아 보안성이 취약 해결 : DES를 보완한 AES 사용. 256비트 키 길이로 보안성 강화
728x90
반응형
'개발' 카테고리의 다른 글
!!! FAILED BINDER TRANSACTION !!! 에러 (0) | 2024.05.16 |
---|---|
map의 검색속도는 정말 array보다 빠를까? (1) | 2024.05.01 |
[네이버맵 api] pointf 좌표 (0) | 2024.04.10 |
[코틀린] coroutine async await 사용 (0) | 2024.04.08 |
[안드로이드 코틀린] leakcanary(리크카나리)를 써보자 (1) | 2024.03.26 |
댓글