Rendering Performance · 2024.10 ~ 2025.02
DMAP 지도 썸네일 최적화
“구글 지도 18개를 동시에 띄우면 어떤 일이 벌어질까?”
이동 경로를 지도 위에 남기고 SNS 피드로 공유하는 DMAP에서 프로필 3×3 지도 그리드를 최적화했습니다. 18개 동적 Google Map이 만들던 WebGL 크래시와 월 $70 과금을 정적 썸네일 + 전역 동적 지도 1개 구조로 해결했습니다.
역할
프로필 기능 전담, 렌더링 최적화 및 지도 구조 개선 주도
팀
FE 2명, BE 2명
기여
기여도 90%
README assets
프로젝트 화면
0건
렌더링 실패
$0
월 API 비용
18개
지도 썸네일
01 · Problem
문제
프로필에서 3×3 썸네일을 여러 묶음으로 보여주면 한 화면에 최대 18개의 Google Maps 인스턴스가 필요했습니다. 벡터 지도는 WebGL 컨텍스트를 사용해 브라우저 한계에 닿으면 지도 일부가 사라졌습니다.
02 · Role
역할
프로필 기능 전담, 렌더링 최적화 및 지도 구조 개선 주도 · FE 2명, BE 2명 · 기여도 90%
ReactJavaScriptGoogle Maps APIStatic Maps APIReact Portal
03 · Approach
해결 과정
- 1 WebGL 해제, key 리렌더링, 스켈레톤, 캡처, 인스턴스 재사용 등 6가지 방식을 실험해 실패 원인을 좁혔습니다.
- 2 목록은 정적 지도 이미지로, 상세 확인은 전역 동적 지도 1개로 처리하는 하이브리드 구조를 선택했습니다.
- 3 Google Maps 과금 구조와 호출량을 확인하고 알림을 설정해 기술 해결이 운영 비용 절감으로 이어지게 했습니다.
- 4 코드 컨벤션, API 호출, 무한 스크롤 구현 차이를 조율하며 팀 전체 속도를 해치지 않는 방향으로 합의했습니다.
04 · Demo
동작 데모
05 · Results
성과
지도 타입
벡터 WebGL 지도→ 정적 + 전역 동적 1개
메모리 사용량 감소
렌더링 성능
크래시 발생→ 렌더링 실패 0건
안정성 확보
API 비용
월 $70 과금→ $0
비용 100% 감소
로딩 속도
18개 동적 지도→ 이미지 + 지도 1개
사용자 경험 개선
06 · Records
관련 기록
다음 프로젝트