[Telemetry API Server] 세션 기반 텔레메트리 집계 API 및 쿼리 파이프라인 최적화
• 2 min read
수집된 방대한 시계열 데이터를 바탕으로 차량 평균/최대 속도, 급가/감속 횟수, 브레이크 조작 횟수, 객체 감지 빈도 등 주행 통계 리포트를 산출하는 집계 시스템을 구축했다. 그러나 여러 클라이언트가 동시다발적으로 분석을 요청할 때 애플리케이션 계층에 심각한 메모리 부하가 유발되었다. 이를 해결하기 위해 데이터베이스 엔진 단에서 대규모 연산을 직접 수행하도록 아키텍처를 전면 재설계했다.
[InfluxDB / Query Engine] 데이터베이스 내부 집계 최적화 및 타입 충돌 해결
- 평균, 최대값, 빈도수 등 대규모 연산 데이터를 애플리케이션 메모리에 올리는 대신 데이터베이스 엔진 단에서 병렬 수행한 뒤 다중 쿼리 결과를 단일 스트림으로 병합하도록 데이터 처리 파이프라인을 최적화했다.
- 연산 함수 반환형(정수 및 부동소수점) 혼재 병합 시 발생하는 스키마 충돌을 방지하기 위해, 쿼리 파이프라인 내 모든 연산 결과 데이터 타입을 실수형으로 강제 캐스팅하는 추상화 레이어를 적용했다.
- 1시간 단위 적분 연산을 시계열 쿼리에 통합해 텔레메트리 기반 총 주행 거리를 역산하고, 이를 세션 지속 시간과 결합해 포괄적 통계 리포트를 산출했다.
[Spring Boot / Infrastructure] 타임스탬프 스키마 정합성 및 네트워크 타임아웃 튜닝
- 쿼리 엔진에 원시 타임스탬프를 직접 주입할 때 윈도우 스캔 범위가 잘못 인식되어 전체 샤드를 풀스캔하는 성능 버그를 식별했다. 입력 타임스탬프를 애플리케이션 단에서 국제 표준 포맷(ISO-8601)으로 사전 변환 후 주입해 디스크 I/O 리소스 낭비를 방지했다.
- 방대한 데이터 세트 병합 연산 도중 발생하는 소켓 연결 단절 현상을 해결하기 위해, 데이터베이스 클라이언트 HTTP 커넥션 풀 설정을 오버라이드하고 타임아웃 임계값을 크게 높여 배치 분석 안정성을 확보했다.
- 무분별한 분석 요청이 초래하는 시스템 부하를 제한하기 위해 관리자 계정 인증 레이어를 추가해 쿼리 접근을 엄격히 제어했다.
[Algorithm / Aggregation] 다중 채널 비전 센서 집계 고도화
- 복수 카메라 채널에서 비동기 수집되는 객체 인식 데이터를 단일 차량 식별자 기준으로 동기화·취합하는 다중 채널 병렬 쿼리와 결과 합산 알고리즘을 구현했다.
- 탐지 객체 유형(보행자, 이륜차 등)과 전방 위험도 단계(Warning, Danger)를 척도로 시계열 데이터를 그룹화해 집계 리포트 해상도를 향상시켰다.