SOS 한 건도 놓치지 않도록, 안전 이벤트 패킷

근로자 기기가 안전 이벤트를 고유 번호와 발생 시각을 담은 패킷으로 만들어 보내고, 서버는 같은 이벤트를 한 번만 기록합니다.

event_id
기기가 붙이는 고유 번호로 중복 제거
200건 · 48시간
연결이 끊겼을 때 기기 보관
3단계
서명 확인 결과 (검증됨·실패·미검증)

센스제로의 안전 이벤트 패킷은 SOS·낙상 같은 안전 이벤트를 근로자 기기가 직접 만드는 기록 단위입니다. 기기가 고유 번호(event_id)와 기기 기준 발생 시각을 붙이고, 서버에 닿지 못하면 기기 안에 보관했다가 다시 보냅니다. 서버는 같은 번호의 이벤트를 한 번만 기록하고, 발생부터 수신까지 걸린 시간과 기기 서명 확인 결과를 함께 남깁니다.

전달 흐름

기기가 만들고, 보관하고, 서버가 한 번만 기록합니다

  1. 1이벤트 생성

    • 고유 번호(event_id) 부여
    • 기기 기준 발생 시각 기록
    • 발생 기기 정보 · 기기 서명

    SOS·낙상 같은 안전 이벤트를 근로자 기기가 직접 패킷으로 만듭니다.

  2. 2전송 · 보관

    • 바로 서버로 전송
    • 실패하면 기기 대기열에 보관
    • 재연결 시 오래된 것부터 재전송

    대기열은 최대 200건, 48시간까지 보관합니다.

  3. 3서버 기록

    • 같은 event_id는 한 번만 기록
    • 서명 확인 결과 저장
    • 발생부터 수신까지 걸린 시간 기록

    늦게 도착한 이벤트도 언제 일어났는지 정확히 남습니다.

  4. 4알림 전달

    • 알림 라우터 한 곳을 거침
    • 수신자 그룹별 문구
    • 관제센터 실시간 표시

    모든 안전 알림이 같은 경로로 기록되고 전달됩니다.

핵심 동작

늦게 와도, 여러 번 와도 한 건으로

같은 이벤트는 한 번만 기록합니다

알림 라우터는 이벤트를 만들기 전에 같은 고유 번호가 이미 있는지 확인합니다. 있으면 새로 만들지 않고, 어떤 경로로 다시 들어왔는지만 기존 기록에 덧붙입니다. 재전송이나 중계로 같은 SOS가 여러 번 들어와도 알림은 한 번입니다.

  • event_id 기준 중복 제거
  • 다시 들어온 경로는 기존 기록에 병합
  • 모든 안전 알림이 같은 라우터를 거침
알림·SOS 이력 화면 — 유형별 알림, 처리 상태
알림·SOS 이력 · 데모 데이터

기기 서명으로 변조 여부를 가립니다

근로자 기기는 안드로이드 키 저장소 안에 서명 키를 만들고(가능한 기기는 별도 보안 칩, 아니면 보안 영역), 개인키는 기기 밖으로 나가지 않습니다. 서버는 등록된 공개키로 서명을 확인해 검증됨·실패·미검증으로 표시합니다. 서명 적용 기기를 넓혀 가며 현장 검증을 진행하고 있습니다.

  • ECDSA(P-256) 기기 서명
  • 개인키는 기기 밖으로 나가지 않음
  • 확인 실패도 버리지 않고 표시해 저장
관제센터 긴급 대응 패널 — SOS 근로자, 상황 정보, 직전 생체정보와 지도 위 위치
근로자 앱 SOS 화면
근로자 앱 SOS와 관제센터 긴급 대응 · 데모 데이터

증빙

패킷에 담기는 정보

항목의미
event_id기기가 붙이는 고유 번호 — 중복 제거 기준
발생 기기이벤트를 처음 만든 기기
발생 시각기기 기준 발생 시각 (서버 수신 시각과 따로 기록)
기기 서명패킷 내용에 대한 기기 서명 값
서명 확인 결과검증됨 · 실패 · 미검증
수신 지연발생부터 서버 수신까지 걸린 시간

선택 기능

오프라인 중계 (기본 꺼짐, 현장 검증 중)

서버에 닿지 못하는 기기가 근처의 다른 근로자 기기를 거쳐 패킷을 전달하는 기능입니다. 설정에서 켠 경우에만 동작하며, 현장 검증을 진행하고 있습니다.

  • 설정에서 켠 경우에만 동작 (기본값 꺼짐)
  • 서버 전송이 연속 2회 이상 실패하고 보낼 패킷이 있을 때만 시도
  • 중계 기기는 자기 서명을 붙인 경로 기록을 추가
  • 원래 발신 기기의 서명은 그대로 보존
  • 중계 횟수 한도를 넘으면 더 전달하지 않음
  • 같은 패킷은 중계 기기에서도 한 번만 보관

그 밖의 동작

  • 수신자 그룹별 문구

    같은 SOS라도 관리자에게는 조치 안내, 본인에게는 접수 안내처럼 받는 사람에 따라 다른 문구를 보냅니다.

  • 영어 알림 자동 번역

    관리자는 한국어 문구만 관리하고, 영어를 쓰는 근로자에게는 자동 번역한 문구를 보냅니다. 번역이 어려우면 한국어로 보냅니다.

  • 관제센터 실시간 반영

    기록된 이벤트는 관제센터 이벤트 로그와 긴급 대응 패널에 바로 나타납니다.

현장에서 달라지는 점

  • 중복 없는 기록

    재전송·중계로 여러 번 와도 이벤트는 한 건

  • 끊겨도 남는 기록

    연결이 끊긴 동안의 안전 이벤트를 기기에 보관 후 전송

  • 정확한 발생 시각

    늦게 도착해도 언제 일어났는지 기기 기준으로 기록

자주 묻는 질문

통신이 끊긴 현장에서는 어떻게 되나요?

서버에 닿지 못한 안전 이벤트는 근로자 기기 안 대기열에 최대 200건, 48시간까지 보관됩니다. 연결이 돌아오면 오래된 것부터 다시 보냅니다.

같은 SOS가 여러 번 들어오면 알림도 여러 번 가나요?

아니요. 서버는 기기가 붙인 고유 번호(event_id)로 이미 받은 이벤트인지 확인하고, 같은 이벤트는 새로 만들지 않고 경로 기록만 덧붙입니다.

서명 확인에 실패하면 이벤트가 버려지나요?

버리지 않습니다. 안전 이벤트는 놓치지 않는 것이 우선이라, 확인 결과를 '실패'로 표시해 저장합니다. 서명 기능이 없는 기기의 이벤트는 '미검증'으로 저장됩니다.

오프라인 중계는 기본으로 켜져 있나요?

아니요. 근처 기기를 거쳐 전달하는 오프라인 중계는 선택 기능으로 기본값이 꺼져 있으며, 현장 검증을 진행하고 있습니다.

우리 현장에 맞는 구성이 궁금하신가요?

현장 규모와 관리 목표에 맞춰 장비와 기능 구성을 제안드립니다.