Skip to content

차량 도난 경보 API 개발자 가이드

서비스 개요

차량 도난 경보 서비스는 무단 침입이나 도난 시도가 발생했을 때 차량의 경보 시스템을 활성화하고, 동시에 앱을 통해 사용자에게 즉각적인 알림을 전송하는 텔레매틱스 서비스입니다.

서비스 특징

  • 차량 침입에 대한 실시간 경보 알림
  • 상세 차량 상태 정보 제공 (침입 유형, 위치 등)
  • 원격 차량 제어 기능 (사이렌, 비상등)
  • 24/7 통합 보안 시스템

법적 요구사항

  • 위치 정보 수집에 대한 사용자 동의 필수
  • 개인정보 보호법 준수
  • 경보 알림은 긴급 상황으로 간주되어 최우선 데이터 처리 대상임

주요 시나리오

시나리오 1: 침입 감지 및 실시간 알림

엔티티별 API 흐름:

🚗 차량 (TCU):

  1. 침입 감지: 도어/기울기 센서를 통해 무단 침입 감지
  2. 현장 대응: 사이렌 및 비상등 자동 활성화
  3. 이벤트 통보: 코어 플랫폼으로 침입 이벤트 전송

📱 앱 (사용자):

  1. 중요 알림: 침입에 대한 높은 우선순위 푸시 알림 수신
  2. 이벤트 스트림: SSE를 통한 실시간 상태 수신
  3. 상태 조회: 현재 차량 보안 상태 확인
  4. 사이렌 제어: 오경보인 경우 원격으로 사이렌 정지
  5. 긴급 통화: 원터치 경찰 신고 서비스 제공

🏢 콜센터:

  1. 이벤트 모니터링: 글로벌 보안 이벤트 모니터링
  2. 이력 감사: 상세 경보 이력 검토
  3. 경찰 출동: 도난 확인 시 사법 기관과 협력하여 출동 조율

시나리오 2: 보안 시스템 설정 및 관리

엔티티별 API 흐름:

📱 앱 (사용자):

  1. 상태 확인: 시스템 경계 상태 확인
  2. 경계 상태: 원격 경계 설정해제
  3. 시스템 테스트: 센서 및 사이렌 기능 작동 확인
  4. 알림 설정: 알림 선호도 구성

🏢 콜센터:

  1. 원격 구성: 사용자의 차량 경계 설정/해제 지원
  2. 운영 히트맵: 보안 패턴 및 공통 침입 지점 분석

시나리오 3: 긴급 대응 및 차량 제어

엔티티별 API 흐름:

🏢 콜센터:

  1. 긴급 상황 평가: 도난 경보의 심각성 평가
  2. 차량 이동 차단: 원격 차량 엔진 구동 차단
  3. 경찰 지원 요청: 긴급 경찰 지원 요청
  4. 차량 추적: 실시간 위치 정보 제공

📱 앱 (사용자):

  1. 긴급 알림 수신: 최우선 긴급 알림 수신
  2. 상태 즉시 조회: 즉각적인 상태 확인
  3. 사이렌 제어: 상황에 따른 사이렌 제어
  4. 위치 확인: 실시간 위치 추적

🚗 차량 (TCU):

  1. 이동 차단 실행: 서버의 이동 차단 명령 수신 및 실행
  2. 위치 정보 전송: 실시간 위치 정보의 지속적인 전송
  3. 상태 정보 제공: 모든 센서 및 시스템 상태 전송
  4. 이동 차단 해제: 차량 회수 시 이동 차단 해제 수행

시나리오 4: 보안 이벤트 관리 및 분석

엔티티별 API 흐름:

🏢 콜센터:

  1. 실시간 모니터링: 모든 차량 보안 이벤트 수신
  2. 이력 조회: 시간 범위별 이벤트 분석
  3. 상세 분석: 특정 이벤트에 대한 심층 분석
  4. 데이터 관리: 이벤트 레코드 관리 및 정리

📱 앱 (사용자):

  1. 개인 이벤트 조회: 내 차량 경보 기록 확인
  2. 상세 정보 확인: 특정 이벤트 상세 정보 확인
  3. 알림 설정 관리: 알림 설정 제어

🚗 차량 (TCU):

  1. 이력 데이터 제공: 차량별 이벤트 기록 전송
  2. 상태 정보 제공: 주기적인 상태 업데이트 전송
  3. 데이터 동기화: 서버와 이력 데이터 동기화

주요 기능

📱 앱 구현 기능

1. 실시간 보안 모니터링

2. 원격 보안 제어

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를 사용하십시오.

배포 고려사항

앱 스토어 등록

  • 긴급 알림 권한 요청
  • 위치 정보 수집에 대한 명확한 설명 제공
  • 개인정보 처리방침 제공

법규 준수

  • 국가별 개인정보 보호법 준수
  • 경보 시스템 관련 규정 확인
  • 긴급 상황 알림 우선 처리 정책 적용

Released under the MIT License.