한컴인스페이스
영상 타일링 API 서버
2024.04 ~ 2025.03
영상 타일링 API 설계 및 개발
GoGDALRedisGeoTIFFMBTilesNginxK8s
자사 솔루션 내 영상 표출 API에서 영상 이미지가 증가함에 따라 응답 속도가 저하되는 문제를 해결했습니다. K8s Replica 설정이 Ingress를 타지 않고 매번 재연결되며 리소스가 누출되었고, WMS 특성상 바운더리 요청마다 영상을 겹쳐 쌓는 방식이라 캐싱이 비효율적이었습니다.
역할별 수행 내용
WMS → WMTS 전환
- 개별 영상 표출 시 WMS를 사용하여 사용성 유지
- 다량 영상 표출 시 WMTS 타입별로 특정 타일을 미리 캐싱하여 조합하는 방식으로 전환
- Go 기반 고루틴 병렬 처리 및 Redis 캐싱
인프라 최적화
- Nginx Ingress 설정으로 로드밸런싱 및 세션 유지 적용
- 세션 연결이 유지된 채 애플리케이션 단에서 로드밸런싱 — Replica 수를 개발자가 신경 쓰지 않아도 되는 확장성 확보
- GDAL 기반 GeoTIFF → PNG/Vector Tile 변환 파이프라인
- MBTiles 벡터 타일링으로 줌 레벨/좌표 기반 폴리곤 선별 렌더링
주요 성과
- WMTS 도입과 이미지 캐싱으로 API 응답 속도 4초 → 0.5초 미만으로 감소
- 서비스 간 세션 경쟁 제거로 안정성 확보 및 락 제거
- 캐시 미스 시 응답 지연 방지를 위한 사전 생성 범위 선정이 운영상 핵심 요소임을 파악