-
Notifications
You must be signed in to change notification settings - Fork 0
마커 최적화
이정건 edited this page Dec 14, 2023
·
1 revision
처음에는 UiState가 업데이트되면 모든 마커를 지우고 다시 새로 그려주도록 로직을 구현하였다. 하지만 그렇게 하면 UiState의 다른 속성이 바뀔 때도 마커가 전부 다시 그려져 불필요한 연산이 많이 수행되게 된다.
그래서 일단 1차적으로 UiState에서 선택된 마커의 인덱스 정보를 분리하여 따로 관리하였다. 그러면 UiState의 다른 속성이 바뀌어도 마커는 다시 그려지지 않아 1차적으로 문제를 해결할 수 있었다.
그 다음으론 선택된 마커가 변경될 때 마커 아이콘도 변경이 필요한데, 이를 이전에 선택된 마커는 지우고 이번에 선택된 마커를 선택된 아이콘으로 다시 그려주는 방법으로 해결하였다.
- 필요한 마커만 다시 그리는 경우: CPU 사용량 최고 16%, 메모리 9MB 증가
- 모든 마커를 다시 그리는 경우: CPU 사용량 최고 47%, 메모리 57MB 증가
클러스터링을 적용하기 전에는 마커를 따로 보관해뒀다가 필요할 때 접근하여 지우는 로직으로 구현하였다가, 클러스터링을 적용하면 모든 아이템을 clusterManager에서 관리하게 되는데 이를 통해 해당 마커에 접근할 수 있게 되서, 마커에 접근하여 아이콘을 변경하는 방식으로 해결하였다.
- [기술 공유] Clean Agile
- [기술 공유] Android 라이브러리 비교
- [기술 공유] Android Project CD 적용
- [기술 공유] Google Maps SDK
- [기술 공유] 마커 렌더링
- [기술 공유] Infrstructure as Code 도구 테라폼
- [기술 공유] Redis란??
- [기술 공유] Redis를 이용한 캐싱
- [기술 공유] NestJS S3 대용량 파일 업로드 (with PreSigned URL, S3 MultiPart Upload)
스크럼
- [2023‐11‐06] 목표 설정
- [2023‐11‐07] 기능 회의
- [2023‐11‐08] 스크럼
- [2023‐11‐09] 스크럼
- [2023‐11‐13] 스크럼 ‐ 이번주 할일
- [2023‐11‐14] 스크럼
- [2023‐11‐16] 스크럼, 회의
- [2023‐11‐20] 스크럼, 이번주 할일
- [2023‐11‐21] 스크럼, 오늘 할일
- [2023‐11‐22] 스크럼 회의
- [2023‐11‐23] 스크럼 회의
- [2023‐11‐27] 스크럼 회의
- [2023‐11‐28] 스크럼 회의
- [2023‐11‐29] 스크럼 회의
- [2023‐11‐30] 스크럼 회의
- [2023‐12‐04] 스크럼
- [2023‐12‐05] 스크럼
- [2023‐12‐06] 스크럼
- [2023‐12‐07] 스크럼
- [2023‐12‐11] 스크럼
- [2023‐12‐12] 스크럼 및 발표 자료 준비
- [2023‐12‐13] 스크럼 및 발표 피드백