[Pilot Test Analysis System] 3D 벡터 연산 최적화 및 공간 도메인 정규화

2 min read

이전 다중 세션 리포트 다운로드 시 발생한 서버 메모리 누수 및 응답 지연 현상을 겪은 후, 실시간 ZIP 아카이브 스트리밍 파이프라인으로 구조를 전환해 최적화한 바 있다. 이 과정에서 대용량 데이터 처리와 분석 파이프라인 전반의 연산 효율 확보가 필수임을 확인했다. 연장선상에서 데이터 분석 전담 모듈 성능을 개선하기 위해 3D 공간 벡터 연산 오버헤드를 줄이고 시계열 데이터베이스 쿼리를 개선하는 동시에, 공간 도메인을 다대다 관계로 정규화해 아키텍처 확장성을 확보했다.

[Rust / Kinematics] 3D 벡터 투영 연산 및 틸트 보정 최적화

  • 기존 복잡한 3D 회전 행렬 연산을 기반 좌표계 연산으로 간소화해 Rust 워커 스레드 연산 오버헤드를 크게 줄였다.
  • 센서 장착 각도 보정에 쓰이던 삼각함수 연산을 벡터 곱셈으로 대체하는 보정 로직을 적용했다.
  • 불필요한 라디안 변환을 제거하고 연산 파이프라인을 수정해 실시간 처리 효율을 개선했다.

[InfluxDB / Database] 시계열 쿼리 고도화 및 파싱 무결성 확보

  • 개별 필드 조회를 위해 다중 필터를 사용하던 비효율적 Flux 쿼리 구조를 전면 변경했다.
  • 기존 피벗 연산 방식에서 정규 표현식 및 명시적 타입 캐스팅 기반 그룹화 방식으로 전환해 쿼리 수행 효율을 높였다.
  • 누락 데이터에 대해 실수형으로 안전하게 변환하는 캐스팅 백업 로직을 추가해 파싱 무결성을 확보했다.

[React / Frontend] 텔레메트리 동적 오버레이 및 프리셋 시스템 구현

  • 개별 uPlot 플러그인들을 단일 오버레이 플러그인으로 묶고, Zustand 기반 전역 상태 트리를 주입받아 조건부 렌더링하도록 레이어를 재설계했다.
  • 경보 수준(warning / danger) 등 다중 조건에 따라 보행자 인식 마커 등을 필터링하는 제어 로직을 구현했다.
  • 가속, 조향, 특정 위험 시나리오별 설정을 일괄 활성화할 수 있는 프리셋 시스템을 도입하고, 렌더링과 무관한 잉여 축 및 그리드 라인을 동적으로 숨겨 시각적 노이즈를 줄였다.

[PostgreSQL / Architecture] 다대다 관계 정규화를 통한 공간 도메인 설계 확장

  • 단일 문자열로 취급하던 자치구 데이터를 독립 엔티티로 변경하고, 하위 도메인이 외래 키로 참조하도록 데이터베이스 스키마를 변경했다.
  • 주행 세션이 여러 자치구를 관통할 수 있는 도메인 특성을 반영해 매핑 테이블을 추가하고, 다대다(N:M) 관계로 아키텍처를 확장했다.
  • 정규화된 스키마에 맞춰 Repository 레벨 조회를 내부 Join 연산 기반으로 일괄 변경하고, DDL에 전용 공간 인덱스를 추가해 검색 성능을 개선했다.