현장에 부착하는 위치 비콘, 안전모와 안전대에 부착하는 착용 비콘 세 종류가 BLE 신호를 끊임없이 방출합니다. 전용 회로 설계로 한 번 설치하면 약 3,000시간을 동작합니다.
비콘이 100밀리초 간격으로 광고 패킷을 뿌리면 작업자 폰은 백그라운드 스캔으로 이를 받아 RSSI로 거리를 추정합니다. 일시적으로 연결이 끊긴 패킷은 오프라인 큐에 담겼다가 다음 사이클에 그대로 복원됩니다.
Flutter 기반 앱이 백그라운드에서 BLE 스캔과 헬스 데이터 수집을 동시에 수행합니다. Galaxy Watch가 페어링되어 있으면 Wear OS 채널로 1초 단위 심박수가 폰에 함께 들어오고, 카카오·네이버·구글·애플 소셜 로그인과 생체 인증으로 진입이 보호됩니다.
Nginx가 SSL을 끊고 PM2가 NestJS 프로세스를 관리합니다. REST와 WebSocket이 같은 게이트웨이로 들어와 Cloud SQL Auth Proxy를 거쳐 PostgreSQL 16에 닿습니다. Firebase Admin·GCS·Cloud Functions가 옆에서 푸시·문서·예약 작업을 떠받칩니다.
PostgreSQL 16 위에 비콘·근로자·구역·근태·급여·알림·ESG·건강이 단일 스키마로 묶여 있습니다. 외래키와 RLS 정책이 회사별 데이터 격리를 강제하고, TypeORM 마이그레이션 51개가 스키마 변경 이력을 그대로 보존합니다.
가능성과 심각도를 각각 1에서 5로 점수화한 뒤 곱한 값이 그 위험의 점수입니다. 허용 · 관리 · 개선 · 작업중지 네 단계 임계값이 자동으로 분류되고, 4M (Man · Machine · Method · Material) 분석과 TBM 세션, 출석 기록까지 산업안전보건법 정식 양식 흐름으로 이어집니다.
사진 · 비콘 · 작업정보로 위험요인을 평가하고, 작업 전 근로자 확인 · 조치 · 보고서까지 자동 기록합니다.
KMA·KOSHA Steadman 공식에 풍속 냉각을 더해 실제 체감온도를 계산합니다. 앱이 5분 주기로 위치 기반 날씨를 호출하고, 임계 도달 시 출근 후 ~ 퇴근 전 작업자에게만 자동 경보가 갑니다. 같은 현장 같은 단계의 반복은 1시간 동안 한 번으로 묶이며, 작업 중단·휴식 권고와 TBM 체크리스트가 함께 발송됩니다.
안전모 비콘과 안전대 비콘이 작업자 폰과 얼마나 가까이 있는지로 착용 상태를 추정합니다. 미착용이 감지되면 즉시 위반 기록이 생성되고, 대시보드의 use-workers 훅이 실시간으로 작업자 카드 색상을 갱신합니다.
건강 위험 · 이상 징후 예측 · 환경 위험 · SOS · 낙상 · PPE 미착용 여섯 사건이 같은 코어로 모입니다. FCM 푸시와 WebSocket 룸 브로드캐스트, alerts 테이블 기록, 앱 배너 오버레이가 동시에 작동하고, 모든 대응(확인 · 조치 · 해결)은 alert_actions 로그에 그대로 남습니다.
비콘 출퇴근이 attendance_daily에 자동 기록되어 기본·연장·야간·휴일 4분할 수당이 즉시 계산됩니다. 4대보험과 소득세 세액표를 공제한 월별 PDF 명세서가 자동 발행되고, 전자근로계약 서명과 SAP·더존 ERP 매핑까지 한 흐름으로 이어집니다.
작업자의 건강 상태와 8축의 행동 신호를 60분 롤링 윈도우로 합산해 위험을 예측합니다. 임계 도달 시 자동 정밀 분석이 작동하고, 1시간 주기 재평가가 위험 등급을 갱신합니다. 영양 · 수분 · 생활 · 즉시 조치 권고가 함께 발행됩니다.
평가 문항은 예 / 부분적 / 아니오 세 단계로 응답합니다. 각각 3·2·1점이 누적되어 100점 만점으로 환산되고, 90·80·70·60·50 경계선을 기준으로 A에서 F까지의 등급이 자동 부여됩니다. 환경·사회·지배구조·작업안전·건강 다섯 카테고리가 함께 분해됩니다.