목록 보기
Spatial index를 이용한 웹 어플리케이션 최적화
프론트엔드

Spatial index를 이용한 웹 어플리케이션 최적화

뷰노
뷰노
2020년 5월 18일

두줄요약

병리 슬라이드 뷰어의 대량 Gland Canvas 렌더링 지연을 분석했습니다. Spatial index와 화면별 필터링·그룹화로 렌더링 대상을 줄였습니다.

문제 상황

  • 수십억 픽셀 규모 병리 슬라이드 위 수백 개 Gland와 1만 5천여 점 렌더링에 따른 초기 로딩 및 조작 지연
  • 확대·축소·이동과 Gland 추가·수정·삭제를 동시에 지원해야 하는 HTML5 Canvas 기반 뷰어

해결 방법

  • viewport 범위의 Gland만 조회하는 range query와 확대 비율별 중복 점 제거 적용
  • 수정 불가한 낮은 확대 레벨에서 인접 Gland를 convex hull로 그룹화
  • Gland 수신 시 Spatial index를 구축하고 화면 이벤트마다 렌더링 대상 재계산

구조와 흐름

  • OpenSeadragon의 타일 이미지 로딩과 React 기반 UI 구성
  • rangeQuery로 화면 영역 조회, pruneByZoom으로 점 축소, kNN 기반 merge로 Gland 통합
  • 작은 면적 Gland 우선 힙과 면적 임계값을 이용한 반복 그룹화

성능/운영 포인트

  • Gland 수 62%, 점 수 78% 감소
  • 확대·축소·이동마다 호출되는 getGlands 처리 시간 70ms 미만

다음 읽기

#React 주제를 다룬 다른 회사 글

HTML Canvas로 기가 픽셀 데이터 시각화하기

기가픽셀 병리 슬라이드의 AI 예측 결과를 Canvas 기반으로 시각화한 방식을 소개했습니다.\nTissue 사전 렌더링과 Structure·Cell 공간 인덱싱으로 렌더링 성능을 확보했습니다.

루닛
루닛
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...