실시간 소프트웨어 시티와 히트맵 시각화

실시간 소프트웨어 시티와 히트맵 시각화
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 실시간 트레이스 분석을 기반으로 3D 소프트웨어 시티에 히트맵을 겹쳐 보여주는 방법을 제안한다. 사용자는 실행 중인 애플리케이션의 동적 메트릭을 선택해 즉시 시각화할 수 있으며, 구현은 오픈소스 웹 도구 ExplorViz에 통합되어 AR·VR 환경에서도 활용 가능하다.

상세 분석

이 연구는 기존 정적 분석 중심의 소프트웨어 시티 메타포를 동적 분석과 결합함으로써, 개발자가 실행 시점의 행동을 직관적으로 파악할 수 있게 한다. 핵심 기술은 inspectIT Ocelot Java 에이전트를 이용한 실시간 메서드 호출 수집이며, 수집된 데이터는 구조적 정보와 동적 정보로 분리돼 백엔드에서 전처리된다. 구조적 데이터(패키지·클래스·호스트 등)는 중복을 최소화해 전송량을 절감하고, 동적 데이터(시작·종료 시각)는 트레이스 재구성에 사용된다. 프론트엔드에서는 10초 간격으로 전체 시티와 히트맵을 재렌더링한다. 히트맵은 색상 그라데이션(파란‑빨강)으로 메트릭 점수를 시각화하며, 투명도 조절을 통해 기존 시티 요소와 겹치지 않게 설계되었다. 현재 네 가지 메트릭을 제공한다: 인스턴스 카운트, Import Coupling (ICCD), Export Coupling (ECCD), 그리고 그 합인 Import & Export Coupling. 사용자는 UI 대화상자를 통해 메트릭을 실시간 전환할 수 있다. 또한, 메트릭 계산 로직을 JavaScript 웹 워커 형태로 플러그인화함으로써 사용자 정의 메트릭 추가가 용이하도록 설계되었다. 히트맵 모드는 세 가지 시간 기반 옵션을 제공한다. Snapshot 모드는 현재 스냅샷만 반영해 즉시성을 강조하고, Continuously Aggregated 모드는 이전 스코어의 50%를 가중치로 누적해 장기적인 행동 변화를 드러낸다. Windowed 모드는 현재와 지정된 과거 스냅샷을 비교해 변화량을 양·음수로 표시한다. 이러한 시간 모델은 개발자가 성능 급증, 메모리 누수, 호출 폭주 등 특정 현상을 시점별로 추적하는 데 유용하다. 시각적 인터랙션 측면에서, 클래스나 통신 라인을 클릭·호버하면 팝업으로 상세 통계(예: 객체 생성 수, 호출 횟수)를 제공한다. 히트맵이 활성화된 상태에서도 통신 라인을 강조하거나 흐리게 만들어, 동적 호출 관계와 히트맵 정보를 동시에 탐색할 수 있다. 구현은 Docker 이미지로 배포되며, 웹 기반 UI와 AR/VR 클라이언트가 동일한 데이터 파이프라인을 공유한다. 현재 메트릭 계산은 클라이언트 측에서 수행되지만, 향후 백엔드 서비스로 이전해 성능 향상을 모색한다. 전체적으로 이 논문은 실시간 동적 데이터와 시각적 메타포를 결합한 통합 툴 체인을 제시함으로써, 기존 정적 시티 시각화가 제공하지 못한 ‘시점별 행동 인사이트’를 제공한다는 점에서 의미가 크다.


댓글 및 학술 토론

Loading comments...

의견 남기기