차량 도난 경보 API 개발자 가이드
서비스 개요
차량 도난 경보 서비스는 무단 침입이나 도난 시도가 발생했을 때 차량의 경보 시스템을 활성화하고, 동시에 앱을 통해 사용자에게 즉각적인 알림을 전송하는 텔레매틱스 서비스입니다.
서비스 특징
- 차량 침입에 대한 실시간 경보 알림
- 상세 차량 상태 정보 제공 (침입 유형, 위치 등)
- 원격 차량 제어 기능 (사이렌, 비상등)
- 24/7 통합 보안 시스템
법적 요구사항
- 위치 정보 수집에 대한 사용자 동의 필수
- 개인정보 보호법 준수
- 경보 알림은 긴급 상황으로 간주되어 최우선 데이터 처리 대상임
주요 시나리오
시나리오 1: 침입 감지 및 실시간 알림
엔티티별 API 흐름:
🚗 차량 (TCU):
- 침입 감지: 도어/기울기 센서를 통해 무단 침입 감지
- 현장 대응: 사이렌 및 비상등 자동 활성화
- 이벤트 통보: 코어 플랫폼으로 침입 이벤트 전송
📱 앱 (사용자):
- 중요 알림: 침입에 대한 높은 우선순위 푸시 알림 수신
- 이벤트 스트림: SSE를 통한 실시간 상태 수신
- 상태 조회: 현재 차량 보안 상태 확인
- 사이렌 제어: 오경보인 경우 원격으로 사이렌 정지
- 긴급 통화: 원터치 경찰 신고 서비스 제공
🏢 콜센터:
- 이벤트 모니터링: 글로벌 보안 이벤트 모니터링
- 이력 감사: 상세 경보 이력 검토
- 경찰 출동: 도난 확인 시 사법 기관과 협력하여 출동 조율
시나리오 2: 보안 시스템 설정 및 관리
엔티티별 API 흐름:
📱 앱 (사용자):
- 상태 확인: 시스템 경계 상태 확인
- 경계 상태: 원격 경계 설정 및 해제
- 시스템 테스트: 센서 및 사이렌 기능 작동 확인
- 알림 설정: 알림 선호도 구성
🏢 콜센터:
- 원격 구성: 사용자의 차량 경계 설정/해제 지원
- 운영 히트맵: 보안 패턴 및 공통 침입 지점 분석
시나리오 3: 긴급 대응 및 차량 제어
엔티티별 API 흐름:
🏢 콜센터:
- 긴급 상황 평가: 도난 경보의 심각성 평가
- 차량 이동 차단: 원격 차량 엔진 구동 차단
- 경찰 지원 요청: 긴급 경찰 지원 요청
- 차량 추적: 실시간 위치 정보 제공
📱 앱 (사용자):
- 긴급 알림 수신: 최우선 긴급 알림 수신
- 상태 즉시 조회: 즉각적인 상태 확인
- 사이렌 제어: 상황에 따른 사이렌 제어
- 위치 확인: 실시간 위치 추적
🚗 차량 (TCU):
- 이동 차단 실행: 서버의 이동 차단 명령 수신 및 실행
- 위치 정보 전송: 실시간 위치 정보의 지속적인 전송
- 상태 정보 제공: 모든 센서 및 시스템 상태 전송
- 이동 차단 해제: 차량 회수 시 이동 차단 해제 수행
시나리오 4: 보안 이벤트 관리 및 분석
엔티티별 API 흐름:
🏢 콜센터:
- 실시간 모니터링: 모든 차량 보안 이벤트 수신
- 이력 조회: 시간 범위별 이벤트 분석
- 상세 분석: 특정 이벤트에 대한 심층 분석
- 데이터 관리: 이벤트 레코드 관리 및 정리
📱 앱 (사용자):
- 개인 이벤트 조회: 내 차량 경보 기록 확인
- 상세 정보 확인: 특정 이벤트 상세 정보 확인
- 알림 설정 관리: 알림 설정 제어
🚗 차량 (TCU):
- 이력 데이터 제공: 차량별 이벤트 기록 전송
- 상태 정보 제공: 주기적인 상태 업데이트 전송
- 데이터 동기화: 서버와 이력 데이터 동기화
주요 기능
📱 앱 구현 기능
1. 실시간 보안 모니터링
- 침입 알림: 감지된 위협에 대한 높은 우선순위 푸시 알림 수신
- 이벤트 스트림: 실시간 이벤트 업데이트 연결
- 보안 허브: 경계 상태 및 센서 상태의 통합 보너스
- 경보 이력: 과거 보안 이벤트 감사
2. 원격 보안 제어
- 사이렌 제어: 즉각적인 경보 시스템 묵음 처리
- 시스템 경계 설정: 민감도 설정을 포함한 원격 경계 설정
- 시스템 경계 해제: PIN/생체 인증을 통한 안전한 경계 해제
- 검증 테스트: 시스템 유효성 검사를 위한 테스트 경보 트리거
3. 지원 및 신고
- 경찰 직통 전화: 긴급 서비스로의 즉시 연결
- 알림 매니저: 사용자 정의 알림 임계값 및 채널 설정
- 감사 로그: 모든 보안 상호작용에 대한 검색 가능한 아카이브 제공
🏢 콜센터 구현 기능
1. 글로벌 보안 사건 관리
- 보안 모니터링: 모든 차량 보안 이벤트 모니터링
- 이력 분석: 과거 사건 검색 및 필터링
- 상세 감사: 특정 보안 침해 사례에 대한 심층 분석
- 경찰 조율: 사법 기관과의 공조 수행
2. 차량 보호 및 회수
- 도난차량 이동 차단: 도난 차량에 대한 원격 엔진 구동 차단
- 회수 후 해제: 회수 후 차량 기능 정상 복구
- 시스템 구성: 고객의 경계 설정 프로토콜 지원
- 운영 상태: 전체 차량의 시스템 헬스 모니터링
시퀀스 다이어그램
도난 경보 시스템 흐름

API 엔드포인트
헤더, 응답 코드 및 에러 형식은 공통 API 사양을 참조하십시오.
도난 경보 (Burglar Alarm)
도난 경보 이력 조회
bash
curl -X GET "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/burglar-alarm/history?timeRange=LAST_WEEK" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"경보 상태 조회
bash
curl -X GET "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/burglar-alarm/status" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"사이렌 정지
bash
curl -X POST "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/burglar-siren/off" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{"reason": "FALSE_ALARM", "userId": "user123"}'보안 시스템 (Security System)
보안 시스템 상태 조회
bash
curl -X GET "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/antitheft/status" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"보안 시스템 활성화
bash
curl -X POST "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/antitheft/enable" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{"sensitivity": "HIGH", "notifications": true}'보안 시스템 비활성화
bash
curl -X POST "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/antitheft/disable" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{"reason": "User request", "pin": "1234"}'보안 경보 트리거
bash
curl -X POST "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/antitheft/trigger" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{"triggerType": "MANUAL", "reason": "Test alarm"}'보안 이력 (Security History)
보안 이벤트 목록 조회
bash
curl -X GET "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/history" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"이벤트 상세 정보 조회
bash
curl -X GET "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/history/event_001" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"이력에서 이벤트 삭제
bash
curl -X DELETE "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/history/event_001" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"알림 설정 (Notification Settings)
알림 설정 조회
bash
curl -X GET "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/alerts/settings" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d"알림 설정 업데이트
bash
curl -X PUT "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/alerts/settings" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{
"notifications": {
"push": true,
"sms": false,
"email": true
},
"alertTypes": ["BURGLAR", "TOWING", "IMMOBILIZATION"]
}'원격 제어 (Remote Control)
원격 차량 이동 차단
bash
curl -X POST "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/immobilize" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{
"reason": "Theft detected",
"pin": "1234",
"notifyOwner": true
}'이동 차단 해제
bash
curl -X POST "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/release" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{
"reason": "Vehicle recovered",
"pin": "1234"
}'긴급 서비스 (Emergency Services)
경찰 지원 요청
bash
curl -X POST "https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/burglar-police/call" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
-H "Content-Type: application/json" \
-d '{
"emergencyType": "BURGLARY",
"userLocation": {
"latitude": 37.5665,
"longitude": 126.9780
},
"contactNumber": "+82-10-1234-5678",
"description": "차량 후드가 강제로 열렸으며 사이렌이 작동 중입니다."
}'도난 경보 실시간 이벤트 수신 (SSE)
참고: 브라우저를 통해 접속하거나 전용 SSE 클라이언트 사용을 권장합니다.
bash
curl -N -H "Accept: text/event-stream" \
-H "Authorization: Bearer sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d" \
"https://api.ecarus.run/api/v1/security/vehicles/KMHSH81C7LU123456/burglar-alarm/events/stream"데이터 모델
도난 경보 이력 응답 (Anti-theft Alarm History Response)
json
{
"vin": "KMHSH81C7LU123456",
"timeRange": "LAST_WEEK",
"events": [
{
"eventId": "BA-20260311-001",
"eventType": "INTRUSION",
"trigger": "DOOR_OPEN",
"timestamp": "2026-03-11T14:30:00Z",
"location": {
"latitude": 37.5665,
"longitude": 126.9780,
"address": "서울시 강남구 테헤란로"
},
"severity": "HIGH",
"status": "CLEARED",
"details": {
"door": "FRONT_LEFT",
"forcedEntry": true,
"sirenActivated": true
}
}
],
"total": 1
}도난 경보 상태 응답 (Anti-theft Alarm Status Response)
json
{
"vin": "KMHSH81C7LU123456",
"alarmStatus": "ARMED",
"armedTime": "2026-03-11T22:30:00Z",
"sensitivity": "HIGH",
"sensorStatus": {
"doors": {
"frontLeft": "LOCKED",
"frontRight": "LOCKED",
"rearLeft": "LOCKED",
"rearRight": "LOCKED"
},
"trunk": "LOCKED",
"hood": "LOCKED"
},
"lastEvent": {
"eventId": "BA-20260311-001",
"timestamp": "2026-03-11T22:30:00Z",
"type": "ARMED"
}
}사이렌 정지 요청 (Siren Off Request)
json
{
"reason": "FALSE_ALARM",
"userId": "user123"
}사이렌 정지 응답
json
{
"vin": "KMHSH81C7LU123456",
"commandId": "CMD-20260311-001",
"status": "EXECUTED",
"timestamp": "2026-03-11T14:35:00Z",
"sirenStatus": "OFF"
}보안 시스템 상태 응답 (Security System Status Response)
json
{
"vin": "KMHSH81C7LU123456",
"status": "ENABLED",
"enabledTime": "2026-03-11T22:30:00Z",
"sensitivity": "HIGH",
"notifications": true,
"activeFeatures": {
"doorSensors": true,
"motionSensor": true,
"tiltSensor": true,
"batteryDisconnect": true
},
"lastTrigger": {
"timestamp": "2026-03-10T15:20:00Z",
"triggerType": "MANUAL"
}
}보안 시스템 활성화 요청
json
{
"sensitivity": "HIGH",
"notifications": true
}보안 시스템 비활성화 요청
json
{
"reason": "User request",
"pin": "1234"
}보안 경보 트리거 요청
json
{
"triggerType": "MANUAL",
"reason": "Test alarm"
}보안 이력 목록 응답 (Security History List Response)
json
{
"vin": "KMHSH81C7LU123456",
"events": [
{
"eventId": "SEC-20260311-001",
"eventType": "INTRUSION",
"timestamp": "2026-03-11T14:30:00Z",
"severity": "HIGH",
"status": "CLEARED",
"description": "Front door forced entry detected",
"location": {
"latitude": 37.5665,
"longitude": 126.9780,
"address": "서울시 강남구 테헤란로"
}
}
],
"total": 1
}보안 이벤트 상세 응답 (Security Event Detail Response)
json
{
"eventId": "SEC-20260311-001",
"vin": "KMHSH81C7LU123456",
"eventType": "INTRUSION",
"timestamp": "2026-03-11T14:30:00Z",
"severity": "HIGH",
"status": "CLEARED",
"location": {
"latitude": 37.5665,
"longitude": 126.9780,
"address": "서울시 강남구 테헤란로"
},
"description": "Front door forced entry detected",
"details": {
"trigger": "DOOR_OPEN",
"door": "FRONT_LEFT",
"forcedEntry": true,
"sirenActivated": true
}
}알림 설정 응답 (Notification Settings Response)
json
{
"vin": "KMHSH81C7LU123456",
"settings": {
"notifications": {
"push": true,
"sms": false,
"email": true
},
"alertTypes": ["BURGLAR", "TOWING", "IMMOBILIZATION"],
"quietHours": {
"enabled": true,
"startTime": "22:00",
"endTime": "07:00"
}
}
}알림 설정 업데이트 요청
json
{
"notifications": {
"push": true,
"sms": false,
"email": true
},
"alertTypes": ["BURGLAR", "TOWING", "IMMOBILIZATION"],
"quietHours": {
"enabled": false,
"startTime": "22:00",
"endTime": "07:00"
}
}원격 차량 이동 차단 요청 (Remote Vehicle Immobilization Request)
json
{
"reason": "Theft detected",
"pin": "1234",
"notifyOwner": true
}원격 차량 이동 차단 응답
json
{
"vin": "KMHSH81C7LU123456",
"commandId": "IMMOB-20260311-001",
"status": "EXECUTED",
"timestamp": "2026-03-11T14:40:00Z",
"immobilizationStatus": "ACTIVE"
}이동 차단 해제 요청
json
{
"reason": "Vehicle recovered",
"pin": "1234"
}이동 차단 해제 응답
json
{
"vin": "KMHSH81C7LU123456",
"commandId": "RELEASE-20260311-001",
"status": "EXECUTED",
"timestamp": "2026-03-11T14:45:00Z",
"immobilizationStatus": "RELEASED"
}경찰 지원 요청 (Police Support Request)
json
{
"emergencyType": "BURGLARY",
"userLocation": {
"latitude": 37.5665,
"longitude": 126.9780
},
"contactNumber": "+82-10-1234-5678",
"description": "차량 후드가 강제로 열렸으며 사이렌이 작동 중입니다."
}경찰 지원 응답
json
{
"vin": "KMHSH81C7LU123456",
"requestId": "POLICE-20260311-001",
"status": "DISPATCHED",
"timestamp": "2026-03-11T14:50:00Z",
"estimatedArrival": "2026-03-11T15:10:00Z",
"officerId": "OFFICER_123"
}도난 경보 실시간 이벤트 (SSE)
json
{
"eventId": "EVT_001",
"type": "INTRUSION_DETECTED",
"timestamp": "2026-03-11T14:30:00Z",
"priority": "HIGH",
"data": {
"eventId": "BA-20260311-001",
"vin": "KMHSH81C7LU123456",
"trigger": "DOOR_OPEN",
"severity": "HIGH",
"location": {
"latitude": 37.5665,
"longitude": 126.9780,
"address": "서울시 강남구 테헤란로"
},
"details": {
"door": "FRONT_LEFT",
"forcedEntry": true,
"sirenActivated": true
}
}
}보안 및 프라이버시
인증 및 권한 부여
- 사용자 인증 토큰 필요 (JWT/OAuth2)
- 차량 접근 권한 확인
- 경보 알림 수신 동의 확인
데이터 보안
- 모든 API 통신은 HTTPS/TLS 암호화
- 위치 정보 전송을 위한 추가 보안 조치 적용
- 민감 정보는 서버측에만 저장
프라이버시 보호
- 위치 정보 수집 목적 명시
- 알림 수신에 대한 명시적 동의
- 데이터 보존 기간 정책 준수
- 사용자 요청 시 데이터 삭제 권리 보장
접근 제어
- VIN 기반 차량 접근 권한 확인
- 다인 가족 사용 시 권한 분리 관리
- 외부 기관 접근을 위한 별도 인증 절차 적용
예외 처리
네트워크 관련
- 연결 실패: 오프라인 모드 지원, 마지막 상태 캐싱
- 응답 지연: 로딩 인디케이터, 타임아웃 처리
- 서버 다운: 에러 메시지 표시, 재시도 제안
차량 상태 관련
- 차량 오프라인: 마지막 상태 정보 표시, 오프라인 상태 알림
- 배터리 부족: 저전력 모드 안내, 기능 제한 알림
- 센서 오류: 센서 상태 오류 표시, 정비 안내
알림 관련
- 푸시 실패: SMS 대체 알림 시도
- 중복 알림: 중복 알림 필터링 처리
- 알림 지연: 지연 사유 표시 및 재전송 요청
테스트 설정
Base URL: https://api.ecarus.run/api/v1/security
인증 토큰: sk_4f9c7b8e2d1a6c0f3e7a9b5d8c1e4f2a7c6d9e0b3f5a8c1d4e7f9b2c6a1e3d
샘플 VIN: KMHSH81C7LU123456
대화형 API 테스트를 위해 Swagger UI를 사용하십시오.
배포 고려사항
앱 스토어 등록
- 긴급 알림 권한 요청
- 위치 정보 수집에 대한 명확한 설명 제공
- 개인정보 처리방침 제공
법규 준수
- 국가별 개인정보 보호법 준수
- 경보 시스템 관련 규정 확인
- 긴급 상황 알림 우선 처리 정책 적용