MQTT 기반 차량 텔레매틱스 설계 사례
MQTT 프로토콜을 중심으로 차량 텔레매틱스 아키텍처, 토픽·페이로드 모델, 보안과 운영 고려사항을 실무 관점에서 정리한 기술 문서
목차
개요
이 글은 MQTT를 이용한 차량 텔레매틱스 설계 사례를 단계별로 설명한다. 목적은 실무에서 적용 가능한 아키텍처와 메시지 설계, 보안·운영 고려사항을 한눈에 파악하도록 돕는 것이다. 처음 접하는 독자도 이해할 수 있도록 기본 개념부터 구현 포인트까지 차근히 정리한다.
왜 MQTT인가
차량 텔레매틱스는 대량의 장치가 자주 연결·연결 해제를 반복한다. 이때 MQTT는 경량 프로토콜로 다음과 같은 장점이 있다.
- 저비용 네트워크 사용: 페이로드 오버헤드가 작아 모바일 데이터 비용 절감에 유리하다.
- QoS 지원: 메시지 전달 신뢰도를 선택할 수 있어 위치·경고 등 중요 메시지에 적합하다.
- 연결 유지 기능: 세션과 유지 메시지(retain)로 연결 복구 시 유용하다.
시스템 아키텍처 개요
일반적인 구성은 차량 단말(OBU, Telematics Unit), 게이트웨이(엣지), MQTT 브로커, 백엔드 서비스로 나뉜다. 게이트웨이는 네트워크 변동성을 흡수하고, 브로커는 라우팅과 인증을 담당한다. 백엔드는 수집·분석·알림을 처리한다.
구성 요소별 역할
- 단말: 센서 데이터 수집, 로컬 필터링, MQTT 클라이언트 역할 수행
- 엣지: 배치형 처리, 데이터 축적, 브로커 프록시 역할
- 브로커: 토픽 라우팅, 인증·인가, 메시지 저장(QoS, retained)
- 백엔드: 데이터 저장소, 실시간 처리, 대시보드·알림
토픽 설계 원칙
토픽 구조는 확장성과 권한 관리를 고려해 설계한다. 권장 패턴은 계층적 네임스페이스를 사용하며, 와일드카드를 통해 구독을 효율화한다.
- 기본 구조: fleet/{fleetId}/vehicle/{vehicleId}/{domain}/{event}
- 예시: fleet/alpha/vehicle/VEH123/telemetry/gps
- 주요 설계 기준: 단일 책임 원칙, 최소 권한, 토픽 길이 제한 유의
메시지 모델과 페이로드
페이로드는 경량 JSON 또는 바이너리 프로토콜을 사용한다. JSON은 가독성이 좋아 디버깅에 유리하고, 바이너리는 대역폭 절감에 유리하다. 일관된 스키마를 정의해 파싱 비용과 오류를 줄인다.
예시 페이로드 (JSON)
{
"vehicleId": "VEH123",
"timestamp": 1672531200,
"gps": {"lat": 37.501, "lon": 127.039},
"speed": 72.4,
"status": "running"
}
위 예시는 기본 텔레매틱스 항목만 담았다. 이벤트 타입(진단, 경고)은 별도 토픽이나 필드로 구분한다. 페이로드 크기를 줄이려면 불필요 필드를 제거하고, 숫자 타입을 적절히 선택한다.
QoS, 세션, Retain 전략
QoS 선택은 데이터 중요도에 따라 달라진다. 일반 텔레매트리는 QoS0 또는 QoS1, 중요 알림은 QoS2 고려한다. 세션을 사용하면 재연결 시 메시지 유실을 줄일 수 있다. Retain은 최신 상태 공유에 유용하지만 주제별로 제한적으로 사용한다.
보안 설계
보안은 인증·인가, 전송 암호화, 메시지 무결성으로 나뉜다. TLS 기반 암호화를 기본으로 하고, 클라이언트 인증은 인증서 또는 토큰 기반을 사용한다. 토픽별 권한은 브로커의 ACL로 제어한다.
- TLS로 전송 암호화
- 클라이언트 별 고유 인증서 또는 JWT 발급
- 토픽 ACL로 최소 권한 적용
스케일링과 운영
대규모 차량 군을 운영할 때는 브로커 클러스터링과 메시지 파이프라인을 설계해야 한다. 로드 밸런싱, 파티셔닝, 백프레셔(backpressure) 대응이 필수다. 또한 단말의 펌웨어와 설정 관리를 자동화해 운영 비용을 낮춘다.
모니터링 포인트
- 브로커 연결 수와 메시지 처리율
- 지연 시간(Publish→Subscribe), 재전송 발생률
- 단말 별 업타임과 펌웨어 버전 분포
현장 적용 체크리스트
- 토픽 네임스페이스와 권한 정책 정의
- 페이로드 스키마와 버전 관리 체계 수립
- 보안(인증·TLS·ACL) 테스트 케이스 마련
- 브로커 이중화와 모니터링 지표 설정
- 오프라인 시 데이터 보존과 재전송 로직 구현
간단한 구현 예시
아래는 단말에서 전송하는 최소 메시지 예시와 토픽 구조를 보여준다.
topic: "fleet/alpha/vehicle/VEH123/telemetry/gps"
payload: {
"vehicleId": "VEH123",
"ts": 1672531200,
"lat": 37.501,
"lon": 127.039,
"spd": 72
}
맺음말
MQTT는 차량 텔레매틱스에 적합한 경량 통신 수단이다. 핵심은 명확한 토픽 설계, 일관된 페이로드 스키마, 그리고 보안과 운영 자동화다. 이 설계 사례를 출발점으로 하여 요구사항에 맞춘 상세 아키텍처와 테스트 계획을 수립하면 프로젝트 성공률을 높일 수 있다.