[Telemetry API Server] 실시간 주행 데이터 수집 파이프라인 구축 및 동적 스키마 아키텍처 전환
• 2 min read
Spring Boot 및 InfluxDB 기반 실시간 텔레메트리 데이터 수집 API를 초기 구축했다. 정적 데이터 모델로 주행 좌표를 수집했으나, 다양한 센서 프로토콜을 수용하기 위해 동적 스키마 기반 추상화 데이터 파이프라인으로 아키텍처를 변경했다.
[Spring Boot / Architecture] 단일 도메인에서 다중 텔레메트리 도메인으로 아키텍처 확장
- 특정 수집 도메인에 종속되던 비즈니스 로직과 데이터베이스 계층을 추상화해, 공통 베이스 계층 기반 확장 가능 아키텍처 구조를 적용했다.
- 템플릿 메서드 패턴을 적용해 중복 파이프라인 처리를 제거하고, 차량 위치 외에 이벤트, 객체 인식, 진단 데이터 등으로 수집 도메인을 확장할 구조를 구현했다.
- 도메인별 측정 식별자를 동적으로 할당하도록 구조화해 데이터 파이프라인 유지보수성을 개선했다.
[InfluxDB / Schema] 정적 모델 구조에서 동적 데이터 스키마로 전환
- 고정 필드 기반 데이터 모델을 제거하고, Tag(필터 및 Group By 용도)와 Field(실제 그래프 렌더링 값)를 가변 키-값 형태로 동적 매핑하는 schemaless 데이터 구조를 적용했다.
- 애플리케이션 계층 정적 매핑 단계를 제거하고, 수집한 페이로드를 InfluxDB 네이티브 시계열 포맷으로 직접 직렬화·적재해 신규 데이터 요건 추가 시 서버 재배포 없이 수용하는 파이프라인을 구축했다.
[Security / Middleware] API 보안 및 메트릭 접근 제어 강화
- 엔드포인트 보안 강화를 위해 진입점에 인증 미들웨어를 구축해 인가된 클라이언트 트래픽만 파이프라인 내부로 라우팅하는 접근 제어를 적용했다.
- 데이터베이스 접속 토큰과 시스템 비밀키 등을 환경 변수 기반 외부 주입 방식으로 변경해 소스 코드 레벨 기밀 노출을 방지했다.
- 외부 포트 스캐닝이나 비정상적 데이터베이스 상태 탈취를 방지하기 위해, 애플리케이션 모니터링 에이전트에서 노출하는 InfluxDB 메트릭 내보내기 기능을 프로덕션 레벨에서 비활성화했다.