주변 Wi-Fi AP 목록 수집
→CAPSTONE DESIGN · BACKEND / 2024.06 — 2025.06
신호를 위치로,위치를 안전한 길로.
Wi-Fi AP 신호로 GPS가 닿지 않는 실내 위치를 추정하고, 재난 발생 시 가장 가까운 출구까지 대피 경로를 계산하는 안전 안내 서비스입니다.
GPS가 멈추는 순간에도
대피 안내는 계속되어야 합니다.
재난 상황에서 사용자는 낯선 건물 안에서 자신의 정확한 위치와 가장 가까운 출구를 동시에 파악하기 어렵습니다. 기존 GPS는 실내에서 정확도가 크게 떨어지기 때문에 건물에 이미 설치된 Wi-Fi AP를 위치 기준점으로 활용했습니다.
- 01별도 위치 센서 없이 기존 Wi-Fi 인프라 활용
- 02신호 기반 위치와 건물 그래프를 하나의 API에서 처리
- 03사용자 이동 시 반복 측위하여 대피 경로 재탐색
LIVE ALGORITHM WALKTHROUGH / 01
실제 핵심 로직을
단계별로 확인하세요.
실제 Wi-Fi 스캔 대신 샘플 AP 신호를 사용합니다. RSSI 값을 조절하면 원본 FastAPI 서버와 동일한 거리 변환·가중 평균 방식으로 추정 위치가 바뀝니다.
Android 클라이언트가 주변 Wi-Fi의 BSSID와 RSSI 신호 세기를 수집해 서버로 전송합니다.
SYSTEM PIPELINE / 02
Android에서 출구까지,
하나의 요청 흐름입니다.
클라이언트가 수집한 Wi-Fi 목록을 FastAPI 서버로 보내면, 서버는 위치 측위와 경로 탐색을 연속해서 수행하고 좌표가 포함된 JSON 경로를 반환합니다.
Pydantic 요청 검증 및 전처리
→거리 역수 기반 가중 좌표 계산
→층별 가장 가까운 복도 노드 매핑
→모든 출구 경로 비교 후 최단 경로 선택
→층별 좌표와 단계별 방향 안내
신호가 강할수록
더 높은 좌표 가중치
distance = 10 ** ((A - rssi) / (10 * n))
weight = 1 / (distance + 1e-6)
x = Σ(ap.x × weight) / Σ(weight)
y = Σ(ap.y × weight) / Σ(weight)
z = Σ(ap.z × weight) / Σ(weight)실내 그래프에서
가장 가까운 출구 탐색
start = closest_hallway(estimated_xyz)
for exit_node in emergency_exits:
path = a_star(start, exit_node)
shortest = min(shortest, path)
return estimated_xyz, floor, shortestAPPLICATION EXPERIENCE / 03
계산 결과가 실제
사용자 경험으로 이어집니다.
영상 대신 기획·설계 화면을 기능 흐름대로 구성했습니다. 재난 감지부터 실내 경로 안내, 대피 완료, 그룹 안전 공유까지 서비스 전체 맥락을 확인할 수 있습니다.

SAFE·DANGER·CHECKING 상태에 따라 대피소와 경로 안내 기능을 활성화합니다.

위치 측위, 최적 경로 계산, 층별 지도 안내의 전체 진행 상태를 시각화했습니다.

대피 완료 후 그룹원에게 자신의 안전 상태를 공유할 수 있습니다.

가족과 지인의 위치 공유 요청, 위험 지역 진입 알림, 잘못된 알림 정정 흐름입니다.

현재 위치와 재난 유형을 기준으로 가까운 대피소를 우선 안내합니다.

재난 개요, 위험 요소, 행동 요령과 관련 자료를 한 화면에서 제공합니다.
TROUBLESHOOTING / 04
실시간성과 응답 지연을현장에서 개선했습니다.
Wi-Fi 스캔 주기 단축
Android 기본 Wi-Fi 스캔 제한으로 층 이동 후 위치가 늦게 갱신되는 문제를 확인했습니다. 개발자 모드 설정과 클라이언트 로직을 조정해 약 7~8초 주기로 데이터를 수신하도록 개선했습니다.
GCP 서울 리전 이전
싱가포르 리전 테스트 서버에서 발생한 통신 지연을 줄이기 위해 서버를 GCP 서울 리전으로 이전하여 국내 Android 클라이언트의 API 응답 안정성을 높였습니다.
FastAPI REST API · RSSI 측위 알고리즘 · A* 경로 탐색 · GCP 배포 및 운영