https://github.com/jdk829355/SubwayTracker

nfc태깅 비콘과 실시간 지하철 위치 정보를 이용한 지하철 하차 알림 앱

개인적인 경험때문에 시작했다. 중고 거래를 하러 수인분당선을 타고 신갈역에 가던 날이였다. 지하철을 타고 가는 시간이 심심해 이어폰을 끼고 역에 도착하기를 기다렸다. 작게 “x갈”이라고 하는 걸 들었다. 난 내려야 하나 궁금해서 열차 밖을 보니 역명은 광고에 가려져 보이지 않았다. 그리고 지하철 lcd는 내리는 문 방향을 안내하기 바빴다. 불안했던 나는 급하게 내렸고 그 역은 신갈이 아니라 상갈이였다… 어영부영 택시를 타고 갔지만 약속은 파토났었다… 그 때 나는 스마트폰에서 내려야 할 역에 오면 미리 알림을 주는 앱이 있으면 좋겠다고 생각했다.


사실 안드로이드 앱에선 지하철 하차알림 앱이 이미 있다. 이는 지하철 시간표와 역마다 설치된 AP(access point)정보를 기반으로 사용자가 어느 역에 접근하고 있는지 알려준다. 이러한 앱은 앱을 켜고 목적지를 선택하는 것만으로도 하차알림을 받을 수 있다는 장점이 있지만 역 네트워크 품질에 따라 알림이 뒤늦게 울릴 수 있기 때문에 이것또한 완벽한 방법은 아니다.


그래서 nfc 태깅을 통해 사용자가 어느 역에 진입하는지를 알아낼 것이다. 우선 nfc 스티커를 열차에 부착한다. 그리고 해당 nfc에는 열차 번호를 입력해놓는다. 그럼 사용자가 nfc태그를 했을 때 사용자가 타고 있는 열차의 고유번호가 앱으로 온다. 앱은 해당 열차 번호를 받아 사용자가 지정한 역까지 열차가 어느 역에 있는지를 실시간 지하철 위치 api를 통해 알아낸다.
nfc를 쓰는 방법도 있지만 또 다른 방법으로는 비콘을 활용하는 방법이 있다. 이를 이용하면 사용자가 nfc를 태깅하는 과정이 생략된다. 그리고 추후에 추가할 수 있는 기능이긴 하지만 사용자가 있는 열차칸을 알아내어 지하철 민원이나 신고 시스템을 연동할 수 있다. 아니면 빠른 환승 기능을 좀 더 심화된 기능으로 발전시켜 열차칸 안에서 최적의 환승 경로를 추천해주고 해당 칸으로 안내해주는 기능 또한 생각해볼 수 있다.
(중간보고서 작성 시점) nfc를 이용한 ios개발의 경우 애플 개발자 프로그램 가입이 필수적이므로 flutter로 전향하여 안드로이드 개발을 하려고 했지만 전향 후 비콘의 존재를 알게된 후 비콘으로 방향을 틀었다.