[Telemetry API Server] 실시간 주행 데이터 수집 파이프라인 구축 및 동적 스키마 아키텍처 전환

2 min read

Spring Boot 및 InfluxDB 기반의 실시간 텔레메트리 데이터 수집 API를 초기 구축했다. 초기에는 정적 데이터 모델을 사용하여 주행 좌표를 수집했으나, 다양한 센서 프로토콜을 수용하기 위해 동적 스키마 기반의 추상화된 데이터 파이프라인으로 아키텍처를 전면 개편했다.

[Spring Boot / Architecture] 단일 도메인에서 다중 텔레메트리 도메인으로 아키텍처 확장

  • 특정 수집 도메인에 종속되었던 비즈니스 로직 및 데이터베이스 계층을 추상화하여, 공통 베이스 계층 기반의 확장 가능한 아키텍처 구조를 도입했다.
  • 템플릿 메서드(Template Method) 패턴을 적용해 중복 파이프라인 처리를 제거하고, 차량 위치뿐만 아니라 이벤트, 객체 인식, 진단 데이터 등으로 수집 도메인을 유연하게 확장할 수 있는 기반을 마련했다.
  • 도메인별 측정 식별자를 동적으로 할당할 수 있도록 구조화하여 데이터 파이프라인의 유지보수성을 극대화했다.

[InfluxDB / Schema] 정적 모델 구조에서 동적 데이터 스키마로 전환

  • 고정된 필드 기반의 데이터 모델을 폐기하고, Tag(필터 및 Group By 용도)와 Field(실제 그래프 렌더링 값)를 가변적인 키-값(Key-Value) 형태로 동적 매핑할 수 있는 스키마리스(Schemaless) 데이터 구조를 도입했다.
  • 애플리케이션 계층에서의 정적 매핑 단계를 제거하고, 수집된 페이로드를 InfluxDB의 네이티브 시계열 포맷으로 직접 직렬화하여 적재함으로써, 신규 데이터 요건 추가 시 서버 재배포 없이 즉시 수용 가능한 파이프라인을 구축했다.

[Security / Middleware] API 보안 및 메트릭 접근 제어 강화

  • 엔드포인트 보안 강화를 위해 진입점 단계에 인증 미들웨어를 구축하여, 인가된 클라이언트 트래픽만 파이프라인 내부로 라우팅되도록 접근 제어(Access Control)를 적용했다.
  • 데이터베이스 접속 토큰 및 시스템 비밀키 등을 환경 변수 기반의 외부 주입 방식으로 전환하여 소스 코드 레벨의 기밀 노출을 차단했다.
  • 외부 포트 스캐닝이나 비정상적인 데이터베이스 상태 탈취를 방지하기 위해, 애플리케이션 모니터링 에이전트(Micrometer)에서 노출되는 InfluxDB 메트릭 익스포트 기능을 프로덕션 레벨에서 완전히 비활성화했다.