나만의 안전신문고는 안전신문고에 이미 접수한 내 신고를 모아 보고, 답변과 처분 내용을 정리하는 프로그램입니다. PC에서는 웹 화면으로, Android에서는 앱으로 사용합니다. 앱만 따로 쓰거나 내 PC 서버에 연결할 수 있습니다. 새 신고를 접수하는 기능은 없습니다. 정부기관을 대표하는 공식 앱도 아니므로, 신고 접수와 원문 확인·실제 민원 처리는 안전신문고 공식 서비스에서 해주세요.

이 글은 2026년 10월 5일 배포 직전 dev 버전의 화면과 동작을 설명합니다. 현재 공개 릴리스인 PC v2.5.3 / 앱 v1.3.5와는 다릅니다. 사진에 표시된 PC v3.0.0.0 / 앱 v2.0.0은 이 설명 대상의 버전이며, 해당 정식 설치 파일이 이미 공개됐다는 뜻은 아닙니다.

사진 속 차량번호·담당자 이름·전화번호는 바꾼 값입니다. 계정과 서버 주소도 설명용이므로 그대로 입력하지 마세요.

필요한 부분으로 바로 이동하려면 PC 버전, Android 앱, PC와 앱 사이에 자료 옮기기를 선택하면 됩니다.

먼저 알아 둘 계정과 공유

설정 과정에서 계정이 세 종류 나옵니다. 이름이 비슷해도 쓰는 곳이 다릅니다.

계정쓰는 곳용도
PC 관리자 계정PC 최초 실행에서 만들고 로그인할 때 사용내 PC 웹 화면에 들어가는 계정
안전신문고 계정PC 앱 설정 / 앱 Standalone 로그인공식 사이트에서 내 신고를 수집하는 계정
카카오 계정PC와 앱의 필수 설정신고 자료의 주인을 확인하고 커뮤니티 공유를 연결하는 계정

설명 대상 버전은 카카오 인증과 신고내용 공유 동의를 모두 마쳐야 사용할 수 있습니다. 카카오 로그인만 했다고 공유에 동의한 것은 아닙니다. 같은 카카오 계정으로 다른 기기에서 한 동의는 이어지지만, 그것만으로 PC와 휴대폰의 신고 DB가 자동 동기화되지는 않습니다.

공유에 동의하면 답변 완료 신고의 주소, 처리기관·담당자명, 차량번호 원문, 위반법규, 신고일·완료일, 처리상태와 처분, 확정 금액·벌점, 좌표, 별점 등이 커뮤니티 서버로 전송됩니다. 공개 지도에는 이 중 일부가 표시되며 차량번호 일부 가림 등이 적용됩니다. 서버로 보내는 항목과 지도에 공개되는 항목은 다릅니다. 동의 화면의 개인정보 처리 안내를 읽고 진행해 주세요. 직접 수정한 개인 데이터는 공유하지 않습니다.

따라서 모든 정보가 내 기기 안에만 남는 프로그램은 아닙니다. 신고 수집·별점 제출·첨부 열람에는 안전신문고, 공유에는 커뮤니티 서버, 지도 표시에는 OpenStreetMap을 사용합니다. 텔레그램과 구글 시트는 별도로 설정했을 때 연결됩니다. 앱의 GPS 위치는 지도에서 현재 위치를 표시하는 용도로 쓰며 외부로 보내지 않습니다.

카카오 로그아웃은 해당 기기 또는 서버의 신고 내역을 지우는 동작입니다. 확인창의 ‘로그아웃하고 신고 내역 지우기’를 가볍게 누르지 마세요. PC 관리자 계정의 로그아웃은 자료를 지우지 않으므로, 단순히 웹 화면에서 나가려면 사이드바 맨 아래 로그아웃을 쓰면 됩니다.

PC 버전

설치 파일 실행과 Docker

PC 릴리스 페이지에서 배포 버전과 운영체제에 맞는 파일을 고릅니다. 앞서 적은 것처럼 현재 공개판을 받으면 이 글의 dev 화면과 차이가 있습니다. 릴리스에 없는 파일이나 기능은 해당 버전 배포 여부부터 확인해 주세요.

환경파일과 실행 방법
Windowsmysafetyreport-win.zip을 풀고 mysafetyreport.exe 실행
Linuxmysafetyreport-linux.zip을 풀고 아래 명령 실행
Intel Macmysafetyreport-macos-x64.zip을 풀고 run.command 실행
Apple Silicon Macmysafetyreport-macos-arm64.zip을 풀고 run.command 실행

Linux에서는 압축을 푼 폴더에서 실행 권한을 줍니다. Linux arm64 실행 파일은 현재 빌드 대상에 없습니다.

chmod +x run.sh
./run.sh

macOS는 chmod +x run.command mysafetyreport로 실행 권한을 준 뒤 run.command를 엽니다. 처음 실행이 차단되면 내려받은 파일의 출처를 확인하고 macOS의 개인정보 보호 및 보안 설정에서 허용해 주세요.

실행하면 웹서버가 켜지고 브라우저가 http://127.0.0.1:6819로 열립니다. 자동으로 열리지 않으면 직접 접속하면 됩니다. 같은 네트워크의 다른 기기에서는 http://PC의-IP:6819를 사용합니다. 데이터는 실행 폴더 아래 data/에 쌓입니다.

Docker와 Compose가 설치된 서버라면, 작업 폴더에 다음 내용을 docker-compose.yml로 저장하고 실행할 수 있습니다. 아래 latest도 현재 공개 이미지이므로 이 글의 dev 버전을 지정하는 태그는 아닙니다.

services:
  mysafetyreport:
    image: ghcr.io/fentanest/safetyreport:latest
    ports:
      - "6819:6819"
    environment:
      TZ: Asia/Seoul
    volumes:
      - ./data:/app/data
    restart: unless-stopped
docker compose up -d

접속 주소는 http://서버의-IP:6819입니다. ./data:/app/data 연결은 유지해 주세요. 컨테이너를 교체해도 신고 자료를 남기는 경로입니다.

Docker 구성은 크로미움이 들어 있는 기본 구성과 Selenium Hub·Chrome을 별도로 띄우는 구성으로 나뉩니다. 기본 구성에서는 앱 설정의 크롬 구동 방식을 로컬 데스크톱 크롬, Headless 모드 켬으로 맞춥니다. Selenium Hub를 쓰는 경우 저장소의 설치 안내에 있는 구성을 사용하고 Hub 주소를 지정합니다. 현재 수집은 직접 로그인을 먼저 시도하고, 막혔을 때 설정한 크롬 방식을 사용합니다.

시작할 때 업데이트도 확인합니다. 실행 파일은 콘솔 창에서 y/n으로 업데이트 여부를 묻고, Docker는 이미지 pull, 소스 실행은 git pull 안내가 나옵니다. 웹 사이드바 상단에서도 버전과 확인 결과를 볼 수 있습니다. 업데이트 전에는 뒤의 백업 절부터 확인해 주세요.

관리자 생성, 카카오 연결, 안전신문고 계정 저장

처음 접속하면 관리자 계정을 만듭니다. 원하는 아이디, 4자 이상 비밀번호와 확인 값을 넣고 관리자 계정 생성을 누르세요. 다음 로그인 화면에 방금 만든 값을 입력합니다. 여기에는 안전신문고 아이디를 넣을 필요가 없습니다.

아이디와 비밀번호 확인 칸 아래 관리자 계정 생성 버튼이 있는 PC 최초 설정

로그인 뒤에는 필수 설정이 열립니다. 카카오 계정으로 연결을 누르고 기기 비교코드를 확인한 뒤 중앙 연결 페이지 열기로 이동합니다. 카카오 로그인을 마치고 연결할 계정을 확인해 이 계정으로 연결을 누릅니다. 링크를 다른 브라우저에서 열려면 링크 복사를 쓰고, 만료됐거나 다시 시작해야 하면 요청 취소 또는 새 링크로 다시 시작을 사용하세요.

카카오 인증과 신고내용 공유 동의가 각각 필수로 표시된 PC 설정

인증이 끝나면 동의 문서 보기를 펼쳐 읽고 체크한 뒤 동의하고 계속을 누릅니다. 화면 전환이 늦으면 상태 다시 확인을 눌러 확인합니다. 나중에 동의문 버전이 바뀌면 다시 동의하는 화면이 나올 수 있습니다.

이제 사이드바 앱 설정 → 1. 시스템 및 서버 설정에서 안전신문고 아이디·비밀번호와 휴대폰번호를 입력합니다. 휴대폰번호는 만족도 조사 제출·조회에 쓰입니다. 페이지 아래 위 폼 전체 설정 저장을 눌러야 저장됩니다.

안전신문고 로그인 계정과 휴대폰번호, 취하 숨기기 및 중복 대표건 스위치가 있는 설정

같은 설정에 취하 데이터 숨기기와 중복 신고 대표건만 반영이 있습니다. 기본은 둘 다 켬입니다. 취하 숨기기를 끄면 목록·통계에 취하가 포함되고, 대표건 반영을 끄면 중복 확정 그룹의 신고도 원본 건수대로 셉니다. 대표건 설정은 같은 차량을 모두 한 건으로 줄이는 기능이 아닙니다.

로그인 세션 유지시간은 기본 10,800초, 즉 3시간입니다. 변경하면 다음 로그인부터 적용됩니다. 리버스 프록시를 운영한다면 신뢰할 프록시 IP를 지정할 수 있으며, 이 항목은 서버 재시작이 필요합니다. 안전신문고 계정을 바꾸면 기존 로그인 토큰은 폐기됩니다.

초기화 크롤링 안내가 뜰 때

상단에 초기화 크롤링 안내가 있다면 안전신문고 계정을 먼저 저장한 뒤 초기화 크롤링 화면으로 들어갑니다. 공유에 쓸 원본 사본을 만들기 위해 전체 신고 상세를 다시 읽는 과정입니다.

백업하고 초기화 크롤링 시작을 누르면 data/backups/에 먼저 백업합니다. 화면에서 진행 상태를 보고, 필요하면 일시 중지 후 이어서 진행을 선택합니다. 읽지 못한 신고가 남았을 때의 읽지 못한 신고를 빼고 완료는 누락을 인정하고 끝내는 선택이므로 실패 내역을 먼저 확인하세요. 진행 중에는 일반 수동·예약 크롤링이 막힙니다.

이전 버전 DB를 새 구조로 옮기는 과정에서는 기존 신고 자료를 백업한 뒤 비웁니다. 감시목록과 지도 좌표 캐시는 남지만, 예전에 직접 수정한 값·중복 판단·메모는 자동으로 옮겨지지 않습니다. 이전 버전 DB를 그대로 가져와 해결할 수도 없습니다. 업데이트 전에 별도 백업을 보관하고 필요한 수정 내용은 따로 남겨 주세요.

신고 수집과 예약 실행

사이드바 크롤링 제어를 열고 전체 크롤링을 고른 뒤 크롤링 시작을 누릅니다. 신고 목록을 읽고 신규·미종결·상태가 바뀐 신고 등의 상세를 수집해 DB에 반영합니다. ‘전체’라고 해서 매번 모든 완료 신고의 상세까지 다시 읽는 것은 아닙니다.

전체 크롤링과 DB 초기화 선택, 신고번호 큐, 수동 내보내기, 로그 창을 갖춘 PC 크롤링 제어

특정 신고만 다시 확인할 때는 **큐(Queue)**에 SPP-… 신고번호나 내부 ID를 한 줄에 하나씩 넣고 시작합니다. 이 경우 입력한 목록을 대상으로 다시 수집합니다. 목록 화면에서 신고를 체크해 선택건 크롤링을 눌러도 됩니다. 이미 수집 중이면 대기열에 들어갑니다.

오른쪽 로그 창에서 진행 내용을 확인합니다. 최신 로그 따라가기를 누르면 새로 추가되는 로그를 볼 수 있습니다. 이전·원본 로그 확인으로 파일 브라우저를 열었는데 결과 파일이 보이면 로그 파일 탭을 직접 선택하세요. 설명 대상 버전에서는 링크가 로그 탭을 자동 선택하지 않습니다.

강제 중지는 진행 중인 자료가 저장되지 않을 수 있는 종료입니다. 일반 크롤링 화면에는 이어서 재개하는 버튼이 없으므로, 중지 확인창을 읽고 선택하세요.

자료를 비우고 다시 수집해야 할 때만 DB 초기화를 사용합니다. 확인창에 DB 초기화를 직접 입력해야 시작됩니다. 이 동작은 수집한 원본·목록·병합 자료를 지우지만 개인 수정값·중복 판단·감시목록·설정은 남깁니다. 앞의 구버전 DB 전환 때 옮겨지지 않는 항목과 구분해 주세요.

수집하지 않고 파일만 만들려면 현재 DB 엑셀 저장을 누릅니다. data/results/에 .xlsx가 생성됩니다. 구글 시트에 업로드는 외부 연동 설정을 마쳐야 사용할 수 있습니다.

크롬 구동 방식과 자동 저장, 재시도 간격, 로그 수준 및 스케줄러 스위치

예약 수집은 앱 설정 → 2. 크롤링 설정 → 크롤링 자동 스케줄러에서 켭니다. 주기적 반복에서는 시작 시각(HH:MM)과 몇 시간마다 실행할지를 입력합니다. 특정 시각 지정은 09:00, 15:30처럼 쉼표로 구분해 최대 10개까지 넣고 전체 설정을 저장합니다. 서버가 실행 중이어야 예약도 작동하며, 필수 설정이나 초기화 크롤링이 미완료라면 예약 수집도 시작되지 않습니다.

같은 화면에서 수집 후 엑셀 자동 저장·구글 시트 자동 업로드를 켜고 끌 수 있습니다. 실패 시 재시도 간격과 최대 횟수, 로그 출력 중요도도 조절합니다. 평소에는 로그를 보고 필요한 항목만 바꾸면 됩니다. 크롬 대체 로그인 방식은 Selenium Hub, 로컬 데스크톱 크롬, 원격 디버깅 크롬 중 환경에 맞게 고릅니다. 창이 없는 서버에서 로컬 크롬을 쓴다면 Headless를 켜주세요.

대시보드에서 답변 찾기

대시보드의 처리 상태 카드를 누르면 해당 상태로 좁힌 신고 목록이 열립니다. 보완 요청을 눌러 추가 응답이 필요한 신고를 찾거나, 처리 중을 눌러 아직 끝나지 않은 신고를 볼 때 사용합니다.

상단 총 신고에는 취하가 포함되며 ‘취하 N건 포함’으로 표시됩니다. 취하 숨기기가 켜져 있으면 취하 카드가 제외 상태로 보입니다. 처리상태 비율 막대의 분모는 막대에 실제로 그린 구간의 합입니다. 세부 상태가 없는 답변완료 등 제외된 건수는 별도 안내를 확인해 주세요.

아래 교통위반 처분 상태는 과태료 부과, 경고장/범칙금 발부, 불수용/기타, 과태료 미확인으로 나뉩니다. 이 카드도 누르면 해당 교통위반 목록으로 이동합니다. 수용은 처리상태이고 과태료는 처분이므로 두 숫자가 같을 필요는 없습니다.

더 내려가면 감시 목록과 최근 3일 내 답변 완료된 건이 있습니다. 신고번호를 누르면 상세 창이 열립니다. 최근 3일 표는 오늘에서 3일 전까지의 날짜를 포함합니다. 상단 전국 안전신고 현황 링크는 통계 화면 아래의 공개 통계로 이동합니다.

신고내역 검색, 선택, 상세 보기

사이드바 데이터 조회에서 전체 신고 내역, 교통위반 내역, 주정차위반 내역, 기타 위반 조회를 고릅니다. 기본은 한 페이지 50행이며, 페이지당 줄 수와 열 정렬을 바꿀 수 있습니다. 표가 넓으면 가로로 이동해 뒤쪽 열을 확인합니다.

오른쪽 아래 상세 검색 및 도구를 누르면 조건 입력창이 열립니다.

교통위반 목록 오른쪽에 차량번호·신고번호·처리기관·담당자 검색 패널을 연 상태

차량번호나 신고번호로 한 건을 찾을 수도 있고, 처리기관·담당자·처리상태·범칙금/과태료로 결과를 좁힐 수도 있습니다. 별점과 별점사유, 만족도 조사 여부, 신고명·위반법규명·위반장소, 신고내용·처리내용, 보완횟수, 내부 ID도 조건으로 씁니다. 신고일·발생일·답변일은 기간으로, 발생시간은 시각으로 지정합니다.

조건을 넣고 검색 실행을 누르면 일치하는 신고가 남습니다. 검색어의 &는 모두 포함(AND), 쉼표 ,는 하나라도 포함(OR)입니다. 예를 들어 처리내용에서 경고&계도는 두 표현을 모두 포함한 건을, 경고,계도는 둘 중 하나가 있는 건을 찾습니다. 필터 초기화로 조건을 지웁니다.

경찰기관 제외와 경찰기관만 포함은 기관명에 ‘경찰’이 들어가는지로 나눕니다. 둘을 동시에 켤 수는 없습니다.

신고 세 행을 체크한 목록 위에 선택건 크롤링, 감시목록 추가, 번호 복사와 엑셀 다운로드 버튼이 표시됨

첫 열의 체크박스로 일괄 작업 대상을 고릅니다. 머리글 체크박스는 현재 페이지만 선택하고, 이미 선택한 행은 페이지를 넘겨도 유지됩니다.

  • 선택 복사는 고른 신고번호, 페이지 복사는 현재 페이지의 신고번호를 복사합니다. 전체 복사는 검색 조건에 맞는 전체 행의 신고번호를 복사합니다.
  • 엑셀 다운로드는 현재 검색 결과를 **CSV 파일 safetyreport_data.csv**로 내려받습니다. 크롤링 화면의 .xlsx 저장과는 형식이 다릅니다.
  • 선택건 크롤링은 선택한 신고를 다시 수집하고, 감시목록 추가는 관심 신고로 모아 둡니다.

신고번호를 누르면 상세 창이 열립니다. 기본 정보 아래에서 신고내용·처리내용, 보완 요청 이력과 첨부를 확인합니다. 담당자·차량번호·위반법규·위반장소 링크를 누르면 같은 값으로 검색한 목록으로 넘어갑니다. 표에서 길어서 잘린 내용은 셀을 더블클릭해 펼쳐 볼 수도 있습니다.

신고 상세 창에 차량번호와 위반장소 링크, 신고내용 및 첨부된 위치 지도가 표시됨

첨부 사진·동영상·파일은 상세 창에서 열거나 다운로드합니다. 6개월을 넘긴 첨부는 만료로 표시됩니다. 하단 안전신문고 앱에서 보기는 공식 앱을 열고, 열 수 없는 환경에서는 공식 웹으로 이동합니다.

중복차량 내역은 세 분류를 합쳐 같은 차량번호가 두 건 이상인 신고를 모읍니다. 중복횟수 열이 추가되며 검색·선택·상세 조작은 일반 목록처럼 사용합니다. 같은 원문을 여러 번 접수한 것을 정리하는 아래의 ‘중복 신고 관리’와는 다른 기준입니다.

감시목록, 중복 신고, 데이터 수정

자주 다시 열 신고는 감시 목록 관리에 모읍니다. DB에 있는 신고번호를 여러 줄 입력하고 입력된 번호 추가를 누르거나, 신고 목록에서 선택해 추가합니다. 뺄 때는 표에서 체크한 뒤 선택 항목 제거를 누릅니다. 감시목록 등록 자체에 상태 변화 자동 알림이나 우선 수집 기능이 붙는 것은 아닙니다.

신고번호를 여러 줄 넣는 감시목록 입력칸과 현재 관리 중인 신고 표

중복 신고 관리는 같은 원문으로 여러 번 접수된 신고 묶음을 검토하는 곳입니다. 검토 필요·중복 확정·중복 아님 탭으로 대상을 좁히고 묶음을 펼쳐 신고 내용을 비교합니다. 중복 상태와 대표건 선정 방식을 정하고 설정 저장을 누릅니다. 자동 선정 대신 특정 신고를 대표로 유지하려면 수동 고정을 선택하고 대표건을 지정하세요. 비고도 남길 수 있습니다.

중복 신고 묶음을 펼쳐 상태, 대표건 선정 방식, 비고와 대표 신고를 고르는 PC 화면

여러 그룹의 상태·선정 방식을 바꿀 때는 체크한 뒤 선택 그룹 적용을 사용합니다. 어느 신고를 대표로 삼을지는 각 그룹에서 저장합니다. 중복군 재생성은 묶음을 다시 계산하는 버튼이며 저장한 사용자 판단은 유지됩니다.

잘못 읽힌 값 등을 개인적으로 고쳐 보고 싶다면 기타 → 데이터 수정에서 분류를 고르고 신고 행을 엽니다. 필요한 필드를 수정하고 저장을 누르면 ‘수정됨’ 표시와 원본 값을 함께 확인할 수 있습니다. 원본으로 되돌리기로 취소할 수 있고, 다시 크롤링해도 수정값은 유지됩니다. 안전신문고 원문을 바꾸는 기능이 아니며 이 수정값은 커뮤니티에 공유하지 않습니다.

교통위반·주정차위반·기타위반 탭 아래 수정할 신고를 고르는 데이터 수정 목록

자동 별점 주기

답변을 읽고 만족도 조사에 참여하려면 사이드바 자동 별점 주기를 엽니다. 먼저 앱 설정에 안전신문고 휴대폰번호를 저장해야 합니다.

대상 표에서 행을 고르거나 검색 결과 자동 입력으로 신고번호를 채웁니다. 번호·ID를 직접 여러 줄 넣는 방법도 있습니다. 1~5점 중 점수를 정하고 필요하면 공통 사유를 1,000자 이내로 씁니다. 사유를 쓰면 선택한 모든 신고에 같은 내용으로 제출됩니다.

대상 신고번호, 1~5점 선택과 공통 사유 입력칸 아래 별점 처리 시작 버튼이 있는 화면

선택 건 별점 처리 시작을 누르고 확인하면 실제 안전신문고 만족도 조사에 제출합니다. 제출한 별점은 되돌릴 수 없습니다. 참여 완료·참여 불가·취하·답변 대기·처리중 신고는 제외되며 크롤링과 동시에 실행할 수 없습니다. 실행 뒤에는 아래 실시간 로그에서 처리 결과를 확인합니다.

통계 조건과 숫자 읽기

사이드바 통계에서 분류, 답변 연도, 위반법규를 고릅니다. 더 좁히려면 상세 조건에 처리기관(정확히 일치 옵션 포함), 신고명, 위반장소, 경찰기관 포함·제외, 기간·시간 조건을 넣고 통계 재산출을 누릅니다. 적용된 조건은 위쪽 칩에서 하나씩 해제하거나 조건 초기화로 지웁니다.

답변 연도와 분류 조건 아래 총 건수, 답변 완료, 처분 건수와 확정 과태료를 표시한 PC 통계

상단의 ‘답변일 기준’, ‘취하 제외/포함’, ‘대표건/원본’ 표시를 먼저 확인하세요. 취하·대표건 기준은 앱 설정에서 바꿉니다. 숫자를 비교할 때 이 기준이 다르면 결과도 달라집니다.

요약은 총 건수, 답변 완료, 과태료 건수, 경고·범칙금 건수, 평균 처리기간, 확정 과태료로 구성됩니다. 다음 구분을 알아 두면 표를 잘못 읽는 일을 줄일 수 있습니다.

  • 처리상태와 처분은 다릅니다. 목록의 ‘원본 상태’는 사이트의 원래 값이고, 앱의 처리상태는 표시·검색용으로 정리한 값입니다. 수용됐다고 반드시 과태료인 것은 아닙니다.
  • 처분은 답변의 범칙금/과태료 문구로 분류합니다. 한 신고에 과태료와 경고 등 여러 처분이 함께 적히면 중복으로 셀 수 있습니다. 처분 표시가 실제 납부 완료를 뜻하지는 않습니다.
  • 확정 과태료는 답변에 적힌 금액의 합, 추정 과태료는 금액이 확인되지 않은 건에 법정 최저 기준을 적용한 계산값입니다. 둘을 합쳐 확정 금액처럼 읽지 마세요.
  • 평균 처리기간은 완료 신고의 답변일에서 신고일을 뺀 값입니다. 처분 분포와 기관·담당자·법규 집계는 답변 완료 신고를 기준으로 하며, 답변 전 신고는 제외 안내를 확인합니다.

아래 월별 처리 추이는 답변일 기준입니다. 이번 달은 아직 ‘집계 중’이고, 답변일 없는 건은 이 추이에 들어가지 않습니다. 처리결과·처분 분포와 위반법규별 현황도 이어서 볼 수 있습니다. 법규를 누르면 해당 신고 목록, 작은 지도의 전체 지도 열기를 누르면 신고 지도로 이동합니다.

월별 답변 건수 막대와 그중 과태료 건수 선, 이번 달 집계 중 표시가 있는 차트

상세 통계는 기관별, 담당자별, 경찰 기관, 경찰 담당자, 비경찰 기관, 비경찰 담당자의 여섯 가지 보기입니다. 검색·정렬·행 수·표 열 선택으로 필요한 열을 남길 수 있습니다. 경찰 구분은 기관명에 ‘경찰’이 있는지를 기준으로 합니다.

상세 통계에서 기관 행을 눌러 처분 비율과 평균 처리기간, 확정·추정 금액을 펼친 패널

행을 누르면 오른쪽에 상세 패널이 열립니다. 해당 신고 내역 보기로 집계에 들어간 신고를 읽거나 지도에서 보기로 위치를 확인합니다. CSV 내보내기는 검색·정렬을 적용한 모든 페이지의 표를 저장합니다. 이 순서는 정렬 결과이지 기관이나 담당자의 평가 순위가 아닙니다. 숫자만으로 담당자의 의도나 처리기간 차이의 원인을 판단할 수는 없습니다.

맨 아래 전국 안전신고 현황은 안전신문고가 공개한 행정구역별 상위 5곳 자료입니다. 내 신고 통계와 출처가 다르고 위에서 고른 개인 통계 조건도 적용되지 않습니다. 일시정지·이전·다음으로 항목을 바꾸고 CSV 다운로드로 받을 수 있습니다. 외부 자료 수집이 끝나지 않으면 ‘수집 중’으로 보일 수 있습니다.

신고 지도와 커뮤니티 공유

사이드바 신고 지도를 열고 답변 연도·분류를 선택합니다. 핀 기준을 위도·경도로 두면 공식 좌표 기준으로, 주소로 바꾸면 같은 주소의 신고를 한 핀으로 묶어 봅니다. 주소 기준 핀은 그 주소의 신고에서 가장 많이 나온 공식 좌표에 놓입니다. 외부 주소 변환으로 새 좌표를 만드는 기능은 아닙니다.

핀 기준에서 주소를 선택해 같은 주소의 신고를 묶은 PC 지도

핀이나 묶음을 열면 신고 수와 처리상태·분류 비중을 확인할 수 있습니다. 여러 주소가 묶였으면 ‘대표 주소 외 N곳’으로 표시되며, 리스트 보기에서 개별 신고로 들어갑니다. 지도에 나타나지 않은 건은 위쪽 좌표 없는 신고를 눌러 주소 그룹을 펼쳐 확인합니다.

지도 위 커뮤니티 공유 패널에는 전송 대기·확인 필요·마지막 저장 확인 등의 상태가 표시됩니다. 지금 업로드로 전송을 요청합니다. 자동 업로드는 매일 00:00 한국 시간과 크롤링 전후에 이루어지며, 서버가 꺼져 있었다면 다음 시작 때 보충합니다. 이전 공유 자료가 밀려 있어 새 크롤링이 막힌 경우에는 이 패널의 상태부터 확인하세요.

지금 업로드 버튼과 매일 00시 자동 업로드, 수정한 개인 데이터는 공유하지 않는다는 안내

동의를 철회했다가 다시 동의한 경우 예전 자료가 자동으로 다시 공개되지는 않습니다. 원하는 경우 이전 수집 사본 다시 공유(N건)을 눌러 확인 후 보냅니다. 제목 줄이나 패널의 커뮤니티 지도를 누르면 여러 사용자가 공유한 지도가 새 창으로 열립니다. 내 신고 지도와 공개 커뮤니티 지도를 구분해서 보세요.

텔레그램과 구글 시트 연결

앱 설정 → 3. 외부 연동 키 설정에서 연결합니다. 텔레그램은 Bot Token과 Chat ID를 모두 입력하고 저장합니다. 봇은 서버 시작 시 실행되므로 값을 바꾼 뒤 서버를 재시작합니다. 허가된 대화방에서 봇에 /start를 보내면 인사와 메뉴 호출 안내가 나옵니다. 이어 /h 또는 /ㅇ를 보내면 크롤링 시작, 차량검색, 신고번호 검색, 엑셀만 저장하기 메뉴가 열립니다. 검색 메뉴를 고르고 조회할 값을 보내면 저장된 신고를 찾아 응답하며, 수집 단계 알림과 결과 요약도 이 대화방으로 전달됩니다.

텔레그램 Bot Token·Chat ID와 구글 시트 주소, 인증 JSON 업로드를 설정하는 입력칸

구글 시트에는 Sheet URL 또는 ID를 입력하고 해당 시트에 접근할 수 있는 서비스 계정의 인증 JSON을 업로드합니다. ‘인증 파일 있음’ 표시를 확인하고 전체 설정을 저장합니다. 이후 크롤링 제어의 구글 시트에 업로드로 현재 DB를 보내거나, 크롤링 설정에서 자동 업로드를 켭니다. 설정한 외부 서비스로 신고 자료가 전달되는 기능이므로 내 대화방과 내 시트가 맞는지 확인해 주세요.

Android 앱 연결 준비

사이드바 기기 연동에서 ‘내 폰’처럼 알아볼 이름을 넣고 키 생성을 누릅니다. 전체 API 키는 생성 직후 한 번만 표시되므로 그때 복사해서 앱에 입력하세요. 앱은 서버 주소와 API 키로 연결하며 QR 연결 방식은 없습니다. 이 PC 버전과 연결하려면 Android 앱 v2.0.0 이상이 필요합니다.

모바일 앱 API 키를 만들고 삭제하는 표와 현재 연결된 기기를 확인하는 PC 화면

오른쪽 현재 연결된 기기에서 새로고침을 누르면 기기·연결 방식·IP·시각을 확인합니다. 더 쓰지 않는 키는 삭제할 수 있으며, 그 키로 연결한 앱의 연결도 끊깁니다.

앱에서 서버의 카카오 연결까지 관리하려면 앱 설정 → 4. 커뮤니티 계정 → 모바일 앱의 커뮤니티 계정 관리 권한에서 해당 키를 체크하고 권한 저장을 누릅니다. 권한 없이 Client 앱에서 초기화 상태를 확인할 때 HTTP 403이 나올 수 있으니, 서버가 정상인데 이 오류가 뜨면 해당 항목을 확인하세요.

연결된 카카오 계정 아래 모바일 API 키의 커뮤니티 계정 관리 허용 체크와 권한 저장 버튼

백업, 파일 정리와 나머지 설정

자료를 옮기거나 업데이트하기 전에는 사이드바 데이터 백업/복원 → DB 다운로드로 .db 파일을 보관합니다. 복원할 때는 같은 화면에서 파일을 선택하고 복원 시작을 누릅니다. 현재 DB를 덮어쓰며 복원 직전 사본은 서버의 data/backups/에 자동 백업됩니다.

DB 다운로드와 복원 파일 선택, 복원 시작 버튼을 나란히 배치한 PC 백업 화면

서버 DB와 모바일 DB를 자동 구분하고, 모바일 DB라면 서버 형식으로 변환합니다. 같은 카카오 계정 소유의 자료만 가져올 수 있습니다. 복원 후에는 서버를 재시작하고, 초기화 크롤링 안내가 다시 나오면 해당 절차를 진행합니다.

파일 브라우저는 data/results의 결과 파일과 data/logs의 로그 파일을 다룹니다. 탭을 선택한 뒤 개별 파일을 내려받거나, 체크해서 선택 다운로드로 ZIP을 받습니다. 선택 삭제와 결과·로그 파일 일괄 삭제도 있으므로 필요한 파일은 먼저 내려받으세요. 현재 쓰고 있는 로그는 삭제할 수 없습니다.

관리자 아이디나 비밀번호를 바꾸려면 관리자 계정 변경에서 새 아이디, 현재 비밀번호, 새 비밀번호를 입력하고 변경을 누릅니다. 안전신문고·카카오 계정은 이 메뉴에서 바뀌지 않습니다. 사이드바 아래에서는 시스템·라이트·다크 테마를 고르고, 깃허브 저장소와 제작자 블로그를 열 수 있습니다. 업데이트 뒤 화면 하단에 사진 촬영 시각 읽기 같은 작업 진행 바가 나타나면 완료 여부를 그곳에서 확인합니다.

공유 기기 변경과 철회는 앱 설정 → 5. 신고내용 공유 동의에 있습니다. 이 서버로 업로드 전환을 누르면 이 서버가 공유 업로드를 맡고 이전 기기의 업로드는 멈춥니다. 신고 DB를 기기 사이에 복사하는 버튼은 아닙니다. 동의 철회를 확인하면 해당 동의로 보낸 자료가 공개 지도에서 빠지고 필수 설정 화면으로 돌아갑니다.

공유 동의 설정에 다른 기기가 업로드 중이라는 안내와 이 서버로 업로드 전환, 동의 철회 버튼

커뮤니티 계정에 문제가 생기면 상황에 따라 보이는 버튼을 구분하세요.

  • 다른 계정으로 연결하려면 다른 계정으로 다시 연결을 사용합니다. DB 주인이 다르다는 안내에서는 신고 내역 지우고 이 계정으로 시작 또는 로그아웃(신고 내역 유지) 중 선택합니다. 지우는 쪽은 되돌릴 수 없습니다.
  • 로그인 파일을 읽을 수 없다는 안내의 초기화는 손상된 로그인 상태를 정리하고 다시 연결하기 위한 것으로, 신고 자료를 지우는 DB 초기화와 다릅니다.
  • 정상 연결 상태의 카카오 로그아웃은 이 서버의 신고 자료를 삭제합니다. 관리자·API 키·감시목록·지도 좌표 캐시는 남습니다.

고급 설정(운영 설정값)은 커뮤니티 서버 주소 등을 별도 운영하는 경우의 항목입니다. 일반 사용자는 기본값을 그대로 두면 됩니다.

Android 앱

설치와 사용 방식 선택

Android 7.0 이상에서 Google Play 또는 앱 릴리스 페이지의 APK로 설치합니다. 현재 공개판 v1.3.5와 아래 dev 화면은 다르므로 다운로드할 버전을 확인해 주세요.

처음 실행하면 연결 방식을 고릅니다.

  • Client 모드: 내 PC 서버의 DB를 조회하고 수집도 서버에 요청합니다. PC·NAS 서버를 운영하면서 휴대폰에서도 같은 자료를 볼 때 고릅니다.
  • Standalone 모드: 휴대폰에 DB를 두고 안전신문고에 직접 접속합니다. PC 서버 없이 앱만 쓸 때 고릅니다.
  • Demo 보기: 가상 신고 100건으로 화면을 탐색합니다. 계정 자료를 수집하기 전에 앱 구성을 둘러볼 때 사용합니다.
Client 모드와 Standalone 모드 카드 아래 Demo 보기 링크가 있는 앱 첫 화면

Demo에서는 동기화·별점 제출·커뮤니티 업로드를 실행할 수 없습니다. 실제 사용 모드는 나중에 설정의 연결 방식 → 변경에서 전환할 수 있습니다.

카카오 인증과 권한 설정

Client와 Standalone 모두 모드를 고른 뒤 서비스 이용을 위한 필수 설정으로 넘어갑니다. 카카오 계정으로 연결을 누르면 외부 브라우저가 열립니다. 로그인을 마친 뒤 앱으로 돌아와 계정을 확인하고 이 계정으로 연결을 누르세요. 다음으로 동의문 전문 보기를 읽고 체크한 뒤 동의하고 계속, 다음 순서로 진행합니다.

앱의 필수 카카오 인증과 신고내용 공유 동의, 다음 버튼 및 개인정보 처리 안내

같은 카카오 계정으로 다른 기기에서 동의했다면 동의 상태가 이어집니다. 동의문이 바뀌면 재동의가 필요합니다. 연결에 실패하면 재시도, 다른 계정이면 계정 변경을 사용합니다. 위쪽 도움말과 아래 개인정보 처리 안내에서 설명을 열 수 있고, 진행하지 않으려면 앱 종료를 선택합니다.

‘이 기기의 신고 내역은 다른 카카오 계정의 것입니다’라는 안내가 나오면 자료 주인을 먼저 확인하세요. 신고 내역 지우고 이 계정으로 시작은 기기의 신고 내역을 삭제하고 새로 시작합니다. 보관하려면 그 화면의 로그아웃(신고 내역 유지)를 선택합니다. 정상 계정에서 하는 카카오 로그아웃은 신고 내역 삭제를 동반하므로 확인창 내용을 꼭 구분해 주세요.

권한 화면에서는 버튼을 눌러 Android 시스템 설정으로 이동해 허용하고 돌아옵니다.

알림 접근, 배터리 최적화 제외, 알림 표시와 선택 사항인 위치 권한을 안내하는 앱 화면
  • 알림 접근: 카카오톡·안전신문고 알림에서 신고번호를 읽습니다.
  • 배터리 최적화 제외: 백그라운드 알림 감지·연결을 사용하기 위한 설정입니다.
  • 알림 표시: 앱의 수집 진행과 결과 알림을 표시합니다.
  • 위치: 신고 지도에서 현재 위치를 표시할 때만 쓰는 선택 권한입니다.

모든 권한 한 번에 허용하기에도 위치는 포함되지 않습니다. 개별 설정 후 권한 상태 새로고침으로 확인하고 완료하거나 나중에 설정하기로 넘어갈 수 있습니다. 이후 설정 → 권한 → 권한 설정에서 다시 열면 됩니다.

Client 모드: PC 서버 주소와 키 넣기

권한 다음 화면에서 서버 URL과 API Key를 입력합니다. PC의 기기 연동에서 만든 키를 사용하세요. 같은 와이파이에서는 http://PC의-IP:6819처럼 적고 연결 확인 후 시작하기를 누릅니다. 휴대폰에서 127.0.0.1은 PC가 아니라 휴대폰 자신을 가리키므로 PC 접속 주소를 그대로 복사하면 안 됩니다.

서버 URL과 API Key를 입력하고 연결 확인 후 시작하기를 누르는 Client 설정

사진의 서버 주소는 설명용입니다. 자신의 PC 서버 주소를 입력하세요.

밖에서도 연결하려면 휴대폰에서 접근할 수 있는 서버 주소가 필요합니다. Cloudflare Tunnel 등의 구성을 이미 쓰고 있다면 그 주소를 입력합니다. 외부 접속을 구성한 적이 없다면 마지막의 예전 라즈베리파이 글을 참고하되, 당시 버전 기준이라는 점을 감안해 주세요.

연결 정보를 바꿀 때는 톱니바퀴 설정 → 서버 연결에서 URL·키를 수정하고 연결 테스트 후 저장합니다. 성공 메시지의 조회 건수와 위쪽 서버 버전 카드를 확인합니다. 시작·복귀 시 PC 서버 연결 확인 화면에 멈췄다면 서버가 켜져 있는지 확인한 뒤 다시 확인 또는 서버 주소 또는 API 키 변경을 선택합니다.

Client 설정의 서버 버전, 연결 테스트와 저장 버튼, 서버의 커뮤니티 계정 카드

서버의 커뮤니티 계정 카드는 PC 서버 쪽 카카오 연결을 다룹니다. 앱에서 연결하려면 PC 설정에서 해당 API 키의 커뮤니티 계정 관리 권한을 허용해야 합니다. 비교코드를 확인하고 브라우저에서 연결을 마치면 로그인 상태는 서버에 보관됩니다. 앱과 서버의 카카오 계정이 다르면 불일치 안내가 나옵니다. 서버 카카오 로그아웃은 PC 관리자 화면에서만 합니다.

서버 이벤트를 백그라운드에서도 받으려면 설정의 백그라운드 서버 연결에서 서비스 시작을 누릅니다. 실행 중 표시와 Android의 지속 알림을 확인하세요. 서비스 중지로 끌 수 있으며, 권한 화면에서도 연결 상태를 확인할 수 있습니다. 서버가 꺼져 있으면 이 서비스를 켜 놓아도 서버 수집은 진행되지 않습니다.

Standalone 모드: 로그인과 동기화

Standalone은 서버 URL 대신 안전신문고 로그인 화면이 나옵니다. 공식 계정의 아이디·비밀번호·휴대폰번호를 입력하고 로그인을 누릅니다. 휴대폰번호는 별점 사유 조회 등에 필요합니다. 비밀번호는 암호화해 안전신문고로 보내며 재로그인을 위해 기기의 보안 저장소에 보관합니다.

안전신문고 아이디·비밀번호·휴대폰번호를 넣는 Standalone 로그인과 보안 저장 안내

신고가 없는 새 설치라면 대시보드에서 동기화 아이콘이나 상태 카드를 눌러 데이터 동기화로 들어갑니다. 동기화는 새 신고와 변경 대상을 수집합니다. 마지막 동기화 시각과 저장된 신고 수를 보고, 실행 중에는 상세 조회 진행량과 아래 로그를 확인합니다.

마지막 동기화 시각과 저장된 신고 수 아래 동기화·전체 재동기화 버튼이 있는 화면

모든 상세를 다시 읽어야 할 때는 전체 재동기화를 누르고 확인합니다. 개인 수정값과 감시 목록, 이미 커뮤니티에 보낸 자료는 유지됩니다. 동기화 중지로 멈출 수 있으며, 동기화 중 뒤로가기로 앱을 종료하려 하면 종료가 제한됩니다. 완료 후 변경 결과에서 어떤 신고가 새로 들어왔거나 바뀌었는지 확인합니다.

Standalone에는 일정 간격으로 전체 신고를 가져오는 정기 자동 동기화가 없습니다. 직접 동기화를 누르거나 알림 감지 대기열을 앱 열기·복귀 시 처리합니다. 하루 한 번 하는 로그인 점검은 수집 예약과 다릅니다. 로그인 정보가 없거나 거부되면 재로그인 알림이 나옵니다.

대시보드나 동기화 화면에 안전신문고 재로그인이 필요합니다가 뜨면 재로그인을 누릅니다. 설정의 안전신문고 계정 → 재로그인 / 휴대폰번호 갱신에서도 계정·전화번호를 고칠 수 있습니다. 마지막 로그인 결과를 확인하고 다시 시도하세요. 일시적인 네트워크 오류와 계정 정보 오류는 구분해서 표시됩니다.

기존 신고가 들어 있는 DB를 복원한 뒤에는 초기화 크롤링을 요구할 수 있습니다. 화면의 백업 안내를 읽고 확인 — 초기화 크롤링 시작을 누르면 전체 신고 확인·상세 수집·새 저장 구조 반영 순서로 진행합니다. 일시정지 상태라면 일시정지된 초기화 계속으로 이어 갑니다. 누락 N건을 확인하고 계속은 누락 내용을 확인한 뒤 선택하세요.

이전 DB 백업과 옮겨지지 않는 수정값을 안내하고 초기화 크롤링의 다섯 단계를 표시한 화면

초기화 중에는 일반 동기화가 막힙니다. 구버전 DB 전환에서는 예전 수정값·중복 판단·메모가 옮겨지지 않습니다. 일반 전체 재동기화와 같은 동작으로 생각하면 안 됩니다.

Standalone의 설정 → 커뮤니티 계정 / 신고내용 공유에서는 카카오 연결·재로그인, 동의 상태·정책 버전·연결 기기를 확인합니다. 이 기기로 업로드 전환은 휴대폰이 공유 업로드를 맡게 하는 버튼입니다. 동의 철회를 확인하면 공개 지도에서 자료가 빠지고 필수 설정으로 돌아갑니다. 카카오 로그아웃을 할 때는 기기의 신고 내역 삭제 안내를 확인하세요.

대시보드와 알림 읽기

메인 하단에는 대시보드 / 신고내역 / 신고관리 / 통계 / 알림 탭이 있습니다. 톱니바퀴는 설정, 검색·필터 아이콘은 조건 입력입니다. 대시보드의 수집 아이콘과 상태 카드는 Standalone에서는 동기화, Client에서는 서버 크롤링 화면을 엽니다.

Client 대시보드의 처리 상태 카드, 크롤링 상태, 교통위반 처분 숫자와 하단 다섯 탭

처리 상태 숫자를 누르면 해당 신고 목록으로 이동합니다. 0건인 카드는 누를 수 없습니다. 전체에는 취하 포함 건수가 표시되고, 아래 교통위반 처리 현황의 과태료·경고/범칙금·불수용·과태료 미확인 숫자도 목록으로 연결됩니다. 도넛 차트는 비율을 보여 주는 부분이라 눌러서 이동하지 않습니다. 새 자료를 확인하려면 화면을 아래로 당겨 새로고침합니다.

아래 감시 목록의 신고를 누르면 상세가 열리고 관리 또는 더 보기로 신고관리의 감시 목록에 들어갑니다. **최근 답변 완료(3일)**는 카드에서 상세를, 모두 보기에서 목록을 엽니다. Client에서는 이 목록에 ‘미리보기’ 표시가 있을 수 있습니다.

수집이나 서버 변경 뒤에는 변경 결과 N건에서 신규·처리변경·개별 확인·중복 변경을 확인합니다. 신고 카드는 상세로, 중복 변경 카드는 해당 그룹으로 들어갑니다. 앱으로 돌아왔을 때 아래쪽에 나타나는 상세 보기나 알림 보기를 눌러도 결과를 열 수 있습니다.

알림의 신고 결과 탭에 변경된 신고와 읽지 않은 건수, 모두 읽음 버튼이 표시됨

알림 탭은 크롤링 현황·신고 결과·별점 주기로 나뉩니다. 항목을 눌러 내용을 읽고 신고 결과 보기로 들어갑니다. 별점 결과에는 성공·스킵·실패와 실패한 신고번호가 표시됩니다. 모두 읽음은 읽지 않은 표시를 없애고, 모두 비우기는 기록을 삭제합니다. 알림 이력은 최대 200건이며 지운 기록은 되돌릴 수 없습니다.

업데이트 후 하단 탭 위에 주정차 사진 촬영 시각 읽기 등의 진행 바가 잠깐 나올 수 있습니다. 신고 수집과 별개인 자료 정비 작업이며 완료 후 사라집니다.

신고내역 검색과 여러 건 선택

신고내역에서 교통위반·주정차·기타위반·중복차량 탭을 고릅니다. 신고번호 내림차순, 페이지당 200건이며 정렬을 바꾸는 UI는 없습니다. 이전·다음으로 페이지를 이동하고 카드를 누르면 상세가 열립니다. 중복차량은 같은 차량번호로 묶은 신고이며 같은 내용의 중복 접수와는 다릅니다.

상단 검색·필터를 열어 차량번호·신고번호·처리상태·처리기관을 넣습니다. 조건 더 보기에는 ID, 담당자, 과태료/범칙금, 별점, 신고명, 위반법규·장소, 신고내용·처리내용, 보완횟수, 만족도 조사 여부, 별점사유와 경찰기관 조건이 있습니다. 아래에서 신고일·발생일·답변일·발생시각도 지정합니다.

앱 상세 검색의 추가 조건을 펼쳐 담당자·과태료·법규·본문과 경찰기관 조건을 표시한 상태

검색 적용을 누르면 위쪽에 조건 칩이 붙습니다. 칩의 ×로 하나를 해제하거나 전체 초기화로 지웁니다. 검색어는 &로 모두 포함, ,로 하나라도 포함을 지정합니다. 예를 들어 처리내용에 경고,계도를 넣으면 둘 중 하나가 적힌 신고를 찾습니다.

Client 모드의 필터는 현재 불러온 페이지 안에서만 적용됩니다. ‘전체 대상 N · 1페이지에서 조건에 맞는 M’ 같은 안내를 확인해 주세요. 첫 페이지 결과가 0건이어도 서버 전체에 해당 신고가 없다는 뜻은 아닙니다. 다른 페이지를 확인하거나 PC 웹의 전체 목록에서 검색해야 합니다.

여러 신고를 다루려면 카드를 길게 누릅니다. 선택 상태가 된 뒤 다른 카드를 눌러 더 고르고, 현재 페이지를 모두 고를 때는 현재 페이지 일괄 선택을 사용합니다. Client의 중복차량 목록에는 일괄 선택이 표시됩니다.

앱에서 신고 세 건을 선택해 번호 복사·크롤링·별점 주기·감시 추가 막대가 나타난 상태

하단 번호 복사는 신고번호를 클립보드에 넣습니다. Client의 크롤링은 서버에, Standalone의 동기화는 앱의 개별 수집 대기열에 선택한 신고를 보냅니다. 별점 주기는 만족도 조사 창을, 감시 추가는 관심 신고 목록 등록을 실행합니다. 감시 목록에서는 감시 해제를 쓸 수 있습니다. 뒤로가기를 누르면 먼저 선택이 해제됩니다.

상세 내용, 보완 요청과 첨부

신고 카드를 눌러 열린 상세 시트는 위로 끌어 더 크게 펼칩니다. 신고번호·내부 ID·신고일·답변일, 기관·담당자, 과태료/범칙금·벌점, 차량번호·법규·장소, 별점과 사유를 확인합니다. 밑줄 친 담당자·차량번호·위반법규·위반장소를 누르면 그 값으로 좁힌 신고 목록이 열립니다.

신고내용과 처리내용은 길게 눌러 복사합니다. 보완 요청이 있으면 요청자·요청 시각·완료 시각·신고자 의견, 미응답 또는 응답 완료 표시를 확인하세요. 처리내용에서 찾은 전화번호의 전화걸기를 누르면 전화 앱이 열립니다.

신고 상세 시트 아래쪽에 신고내용과 처리기관의 답변 본문을 펼쳐 놓은 모습

첨부 사진·동영상·파일은 상세 아래에서 확인합니다. 동영상은 재생·전체화면으로 보고, 다른 앱으로 열기는 파일을 받아 외부 앱에 넘깁니다. 열 앱이 없다면 해당 안내가 나오고, 실패하면 재시도를 사용할 수 있습니다. 신고일에서 6개월 지난 첨부는 숨겨집니다.

안전신문고 앱에서 보기는 설치된 공식 앱을 엽니다. 앱이 없다는 안내가 나오면 별도의 안전신문고 공식 사이트 열기로 웹에 접속해 주세요. PC와 달리 이 버튼에서 자동으로 같은 신고의 웹 상세가 열린다고 생각하면 안 됩니다. 이 상세 화면에는 신고 공유 버튼이 없습니다.

신고관리: 별점, 감시 목록, 중복, 수정

하단 신고관리에는 네 개의 하위 탭이 있습니다. 검색·필터는 별점과 데이터 수정 탭에서 사용합니다.

별점 탭에서 신고를 길게 눌러 고른 뒤 별점 주기를 누릅니다. 1~5점과 선택 사항인 공통 사유를 입력하고, ‘진행 가능 N건, 자동 스킵 M건’을 확인한 뒤 제출합니다. 사유는 1,000자까지이며 여러 건에 똑같이 들어갑니다. 만족도 조사 참여 완료·참여 불가·취하·답변 대기·처리중 신고는 건너뜁니다.

Standalone은 휴대폰번호를 이용해 안전신문고에 직접 제출하고, Client는 서버에 작업을 요청합니다. Client의 공통 사유 전송은 서버가 해당 기능을 지원해야 합니다. 결과는 알림에서 성공·스킵·실패로 확인합니다. 실제 만족도 조사 제출이므로 되돌릴 수 없습니다. Demo에서는 제출할 수 없습니다.

감시 목록은 선택 막대의 감시 추가로 등록한 신고를 모아 보는 곳입니다. 카드를 눌러 내용을 읽고 감시 해제로 한 건씩 빼거나 전체 해제를 확인해 비웁니다. 감시 등록 자체로 자동 상태 알림이 오는 기능은 없습니다.

신고관리의 감시 목록 탭에 관심 신고와 감시 해제·전체 해제 버튼이 표시됨

중복 신고에서는 전체·검토 필요·중복 확정·중복 아님으로 그룹을 고릅니다. 그룹을 눌러 중복 상태, 대표건 선정(자동 선정/수동 고정), 대표 후보, 비고를 정한 뒤 저장합니다. 상세 보기로 원문을 비교하고 이전·다음 그룹으로 이동할 수 있습니다. 대표 후보가 많으면 50건씩 넘겨 봅니다. 같은 차량을 모은 ‘중복차량’ 목록과는 목적이 다릅니다.

중복 확정 필터 아래 대표 신고번호와 멤버 수를 표시한 앱의 중복 신고 그룹 목록

데이터 수정에서는 분류를 고르고 신고를 눌러 편집합니다. 원본 값을 확인하면서 필요한 항목을 바꾸고 저장하면 ‘수정됨’ 표시가 붙습니다. 원본으로 되돌리기도 저장해야 적용됩니다. 전체 재동기화 뒤에도 수정값은 남으며 커뮤니티에는 공유하지 않습니다. Standalone에서는 기기 DB를, Client에서는 서버의 개인 수정값을 바꿉니다.

앱 데이터 수정 탭에서 분류와 검색으로 편집할 신고를 고르는 목록

통계 보기

하단 통계에서 연도와 분류를 고르고 위반법규를 눌러 전체·없음·특정 법규를 선택합니다. 법규 이름으로 찾을 수도 있습니다. 연도는 신고한 해가 아니라 답변 연도입니다. 선택하면 요약과 상세 통계가 함께 바뀝니다.

앱 통계의 답변 연도·분류·위반법규 조건과 여섯 요약 카드, 월별 처리 추이

요약 카드에서 건수와 평균 처리기간을 보고, 월별 처리 추이를 아래로 내려 확인합니다. 처분 분포·위반 유형 펼치기로 차트를 더 열거나 요약 접기로 표까지 이동할 수 있습니다. 이번 달은 집계 중입니다. Client에서 ‘미지원’으로 나오면 연결한 서버 버전이 해당 요약 기능을 지원하는지 확인하세요.

앱에서도 확정 과태료와 추정 과태료를 따로 읽어야 합니다. 수용은 과태료와 같은 뜻이 아니고, 처분 표시는 납부 확인이 아닙니다. 답변 완료 기준·분모·평균 처리기간의 의미는 앞의 통계 숫자 설명을 참고해 주세요.

상세 통계는 기관별·담당자별·경찰 기관·경찰 담당자·비경찰 기관·비경찰 담당자 중 하나를 고릅니다. 이름 검색과 함께 총 건수순, 과태료 건수순, 확정 과태료순, 처리기간 짧은순, 별점 높은순, 이름순으로 정렬할 수 있습니다.

기관별 상세 통계의 여섯 보기와 정렬 선택, 기관 카드의 처분 비율 및 확정·추정 금액

카드를 누르면 그 기관·담당자의 해당 신고 목록으로 이동합니다. 순서는 정렬 결과이며 평가 순위가 아닙니다. 내가 접수한 신고의 구성과 표본이 다르므로, 이 숫자로 기관이나 담당자의 의도를 해석하지 마세요.

맨 아래 전국 안전신고 현황은 별도의 공개 통계입니다. 대분류·소분류가 자동 전환되며 새로고침으로 갱신합니다. 전일 기준 안내를 확인하고, 위에서 선택한 내 신고 조건은 이 자료에 적용되지 않는다는 점에 주의하세요. Standalone은 공식 공개 통계를 직접 가져오고 Client는 서버 자료를 읽습니다.

신고 지도와 공유 업로드

통계 오른쪽 위 → 지도로 엽니다. 통계의 연도·분류는 이어받지만 위반법규 조건은 지도에 적용되지 않습니다. 지도 필터에서 연도와 전체·교통·주정차·기타를 다시 고를 수 있습니다.

앱 신고 지도의 연도·분류와 핀 기준, 공유 업로드 패널 및 지도 위 커뮤니티 지도 버튼

핀 기준에서 위도·경도 또는 주소를 선택합니다. 주소를 고르면 같은 주소의 신고를 묶어 그 주소에서 가장 많이 나온 공식 좌표에 표시합니다. 구버전 서버에 연결해 주소 기준 미지원 안내가 나오면 서버 업데이트가 필요합니다.

핀이나 묶음을 누르면 묶음 신고 지점 시트가 열립니다. 리스트 보기로 신고 목록을 확인합니다. 지도 위 과태료율 범례를 펼쳐 색상 기준을 읽고, 요약의 전체·좌표화·좌표 없음·처리기관 수도 확인합니다. 좌표는 안전신문고의 공식 응답을 사용합니다.

공식 좌표가 없는 신고는 상단 목록 아이콘으로 엽니다. 주소별 최근 10건이 표시되며 Standalone에서는 이 주소의 전체 신고 보기로 더 볼 수 있습니다. 오른쪽 아래 현재 위치 버튼은 위치 권한과 위치 서비스가 필요합니다. 영구 거부 상태라면 안내의 설정에서 권한을 바꿉니다. GPS 위치는 외부로 보내지 않습니다.

지도 필터 아래 공유 카드를 펼치면 모드별로 다음 버튼이 나옵니다.

  • Standalone: 공유 업로드에서 전송 대기 건수를 확인하고 지금 업로드를 누릅니다. 이전 자료를 다시 공개하려면 이전 수집 사본 다시 공유(N건)을 확인 후 실행합니다. 자동 전송과 매일 00:00 한국 시간의 전송, 미전송 자료를 다시 확인하는 주기 작업도 있습니다.
  • Client: 공유 업로드(서버)에서 서버에서 업로드를 누릅니다. 실제 업로드는 연결된 PC 서버가 담당합니다.

지도 영역 오른쪽 위 커뮤니티 지도 버튼은 휴대폰 기본 브라우저에서 공개 지도를 엽니다. 좁은 화면에서는 아이콘만 보일 수 있습니다. 앱 안의 내 신고 지도와 별개 화면입니다.

Client 크롤링 제어와 알림 자동 감지

Client에서는 대시보드의 수집 아이콘이나 크롤링 화면을 눌러 서버 작업을 제어합니다. 범위를 전체 크롤링으로 두고 시작하거나, 특정 신고만 읽으려면 큐에 신고번호를 줄마다 입력합니다. 실행 중에는 아래에서 서버 로그와 상태를 보고, 처리하지 못한 신고번호가 있으면 확인합니다.

Client의 전체 크롤링·DB 초기화 범위 선택과 큐 입력, 시작·강제 중지 및 로그 영역

DB 초기화 후 새로 크롤링은 확인창을 거쳐 서버의 수집 자료를 다시 만듭니다. 개인 수정값·중복 판단·감시목록·설정은 유지되는 서버의 일반 DB 초기화 동작입니다. 구버전 자료 전환용 초기화와 구분해 주세요. 강제 중지 시 진행 중 자료는 저장되지 않을 수 있습니다. 정기 수집 시각은 앱에서 별도로 예약하지 않고 PC 서버의 스케줄러에서 정합니다.

Android 홈 화면의 앱 아이콘을 길게 누르면 동기화 / 크롤링 바로가기를 사용할 수 있습니다. 현재 모드에 맞는 수집 화면을 열면서 실행하므로, 단순히 현황만 보려면 앱 안의 상태 카드로 들어가세요.

알림 자동 감지는 권한 설정에서 알림 접근을 허용해야 작동합니다. 카카오톡·안전신문고 알림의 SPP-… 신고번호를 읽어 처리합니다. Standalone은 대기열에 저장했다가 앱을 열거나 돌아왔을 때 해당 신고를 동기화하며, DB에 없는 신고라면 증분 수집을 한 번 수행합니다. Client는 서버 대기열로 보냅니다. 카카오 인증·동의가 필요한 상태라면 먼저 필수 설정을 마쳐야 합니다.

DB 백업·복원과 파일 관리

톱니바퀴 설정 → 데이터 관리에서 DB 백업(다운로드)을 누릅니다. Standalone은 휴대폰 DB를, Client는 서버 DB를 휴대폰으로 내려받습니다. Client 다운로드 중에는 진행률을 보고 취소할 수도 있습니다. 완료 후 저장 위치 열기로 파일을 확인해 주세요.

Client 데이터 관리의 서버 파일 관리·DB 백업·DB 복원과 크롤링 자동 저장, 화면 테마 설정

설명 대상 버전은 화면에 Documents/mysafetyreport/라고 적혀 있지만, **Android 10 이상에서 DB 백업의 실제 저장 위치는 Download/mysafetyreport/**입니다. Android 7~9는 시스템 저장 위치 선택을 사용합니다. 화면 문구만 보고 파일이 없다고 판단하지 말고 저장 위치 열기를 사용하세요.

복원은 DB 복원(업로드)에서 .db 파일을 고르고 확인 후 복원 시작을 누릅니다. 서버·모바일 형식을 자동 판별합니다. 실행 중인 DB를 직접 복사한 파일에 -wal·-shm 파일이 있다면 함께 필요할 수 있으므로, 가급적 앱이나 PC의 DB 백업/다운로드 기능으로 만든 파일을 사용하세요.

Standalone은 모바일 DB를 복원하거나 서버 DB를 앱 형식으로 변환하며 직전 사본을 보관합니다. 문제가 생겼을 때 직전 DB로 되돌리기가 표시되면 이전 사본으로 되돌릴 수 있습니다. Client의 복원은 휴대폰이 아니라 연결된 서버 DB를 교체합니다. 서버가 복원 직전 자동 백업을 만들지만, 적용 대상을 확인한 뒤 실행해 주세요. 다른 카카오 계정의 DB와 이전 버전 형식 DB는 가져올 수 없습니다.

파일 관리도 모드에 따라 다릅니다.

  • Standalone: 내보낸 파일 폴더를 탐색합니다. Excel 내보내기로 .xlsx를 만들고 진행률을 확인하거나 취소합니다. 취하 숨기기 설정이 반영됩니다. 파일을 눌러 열거나 공유·삭제하고, 길게 눌러 여러 파일을 선택할 수 있습니다. 열 앱이 없으면 공유 시트로 이어집니다.
  • Client: 파일 관리(서버 파일)에서 서버 폴더와 파일을 고르고 정보 시트의 다운로드를 누릅니다. 길게 눌러 여러 파일을 내려받거나 삭제할 수 있습니다. 삭제는 서버 파일을 지우며 되돌릴 수 없습니다.

Client의 데이터 관리 아래 크롤링 자동 저장에서는 엑셀 자동 저장과 구글 스프레드시트 자동 업로드를 켜고 끕니다. 이것은 서버 설정이며 실제 내보내기도 서버가 합니다. Standalone에는 이 카드가 없습니다.

사용 모드 바꾸기

설정 → 연결 방식 → 변경에서 전환합니다. Client에서 Standalone으로 바꿀 때는 자료를 어떻게 시작할지 고릅니다.

Standalone 전환 창에서 서버 DB 받아 변환, 백업 파일 선택, 처음부터 시작 중 고르는 모습

서버 DB 받아 변환은 지금 연결된 서버의 DB를 받아 앱 형식으로 바꾸고, 백업 파일 선택은 보관한 파일을 사용합니다. 처음부터 시작은 빈 DB에서 안전신문고 로그인 후 첫 동기화로 수집합니다. 서버 DB를 받다가 취소하면 기존 모드가 유지됩니다. 로그인 후 가져오기가 실패했다면 다시 시도하거나, 자료 없이 시작하려는 경우에만 버리고 빈 DB로 시작을 고릅니다.

반대로 Standalone에서 Client로 바꾸면 기기 DB를 자동 백업한 뒤 초기화합니다. 이때 Standalone 자료가 서버로 자동 업로드되지는 않습니다. 서버에 옮기려면 미리 DB를 백업하고 PC 또는 Client의 DB 복원으로 파일을 넣어야 합니다.

표시 기준, 도움말과 시작 오류

설정 → 표시 → 화면 테마에서 시스템·라이트·다크를 선택합니다. 목록·통계 기준의 취하 데이터 숨기기와 중복 신고 대표건만 반영은 기본 켬이며 목록·대시보드·통계·지도 계산에 영향을 줍니다. Client에서는 서버 설정도 함께 바뀌므로 PC 웹 화면의 숫자까지 달라질 수 있습니다.

설정 위쪽 도움·문의에는 버그 제보하기, 기능 요청, 사용 가이드, Play 스토어에서 평가하기가 있습니다. 제보·요청은 GitHub 양식을 열며 앱 버전·모드·OS가 채워집니다. 공개 게시판이므로 비밀번호·API 키·서버 주소·차량번호를 글이나 첨부에 넣지 마세요. 신고 상세를 닫은 뒤 사용 기간 등의 조건에 따라 Play 평가 요청 창이 나올 수도 있습니다.

맨 아래 앱 정보에서 앱 버전과 공식 출처를 확인하고 안전신문고 공식 사이트 열기, 홈페이지 바로가기로 이동합니다. 권한을 다시 설정할 때도 이 근처의 권한 설정을 사용합니다.

앱 설정 아래의 권한 설정과 앱 버전, 안전신문고 공식 출처 및 비공식 도구 안내

시작할 때 ‘저장된 로그인 정보를 준비하지 못했습니다’가 나오면 안내의 앱 종료(다시 열어 재시도)로 종료한 뒤 다시 엽니다. 계속 실패해 재설치가 필요하더라도 먼저 보관된 백업이 있는지 확인해 주세요. Client의 서버 연결 실패는 서버 주소·키를 확인하고, Standalone의 안전신문고 로그인 거부는 재로그인 메뉴에서 계정 정보를 고쳐야 합니다.

PC와 앱 사이에 자료 옮기기

계속 같은 서버 자료를 보려면 Client 연결을 사용합니다. PC에서 수집한 결과를 앱이 서버에서 읽으므로 PC·앱에서 각각 DB를 관리할 필요가 없습니다. PC 서버는 앱이 접속할 수 있게 실행되어 있어야 합니다.

PC 없이 쓸 Standalone으로 옮기려면 DB 파일 복원을 사용합니다. PC에서 받은 DB 다운로드 파일은 앱의 DB 복원에서 선택하면 앱 형식으로 변환됩니다. 반대 방향은 앱에서 DB를 백업한 뒤 PC의 DB 복원으로 불러오면 됩니다. Client에서 Standalone으로 전환할 때의 서버 DB 받아 변환도 같은 목적입니다.

어느 방향이든 같은 카카오 계정의 자료여야 합니다. 파일을 옮긴 뒤 두 DB가 계속 자동으로 맞춰지는 것은 아닙니다. 이후에도 PC·앱에서 같은 자료를 보고 싶다면 Client, 서버 없이 독립적으로 수집하려면 Standalone을 고르세요.

아래 세 글은 예전 버전 기준으로 남겨 둡니다. 현재 메뉴나 계정 설정과 섞어 따라 하지 마세요.