influxdbspring-boottelemetryarchitectureapi-security
[Telemetry API Server] 실시간 텔레메트리 파이프라인 구축 및 동적 스키마 아키텍처 전환
• 1 min read
차량 위치 수집을 위한 기본 파이프라인을 구축하고, 다양한 센서 데이터 수용을 위해 동적 스키마 기반으로 데이터 모델을 전면 개편함. 이벤트, 감지, 진단 도메인으로의 확장을 위해 추상화 계층을 도입하여 코드 중복을 제거하고 확장성을 확보함.
[InfluxDB / Schema] TSDB 도입 및 동적 스키마(Map<String, Object>) 적용
- 정적 데이터 모델(
DrivingRecordDto)의 한계를 극복하기 위해Map<String, Object>형태의 동적 스키마 구조로 리팩토링함. - 기존 RDBMS에서 발생하던 사전 컬럼 정의 제약을 해소하기 위해 InfluxDB를 도입하고, Tag(필터링/그룹핑 용도)와 Field(실제 그래프용 수치 데이터)를 명확히 분리하여 유연한 구조를 마련함.
DrivingBatchRequest등의 DTO를BatchRequest,RecordDto로 범용 명명하여 단일 인터페이스로 다중 도메인 데이터를 수용하는 아키텍처로 변경함.
[Java / Architecture] 다중 텔레메트리 도메인 수용을 위한 추상화 계층 도입
Event,Detection,Diagnostics등 신규 텔레메트리 도메인을 추가함.AbstractTelemetryController,AbstractTelemetryService,AbstractTelemetryRepository등 추상 계층을 도입하여 반복적인 데이터 저장 및 처리 파이프라인(Template Method Pattern)을 일원화함.- 테스트 코드 또한 추상화된 베이스 클래스로 추출하여 테스트 보일러플레이트를 대폭 감소시킴.
[Spring / Security] API 엔드포인트 보안 강화 및 설정 변수 외부화
- API Key 기반 인증을 위해
ApiKeyInterceptor를 구현하여 엔드포인트 보안을 강화함. - 하드코딩된 API Key 및 TSDB 설정값을 외부 설정으로 분리하여 보안 위험을 제거함.