목록으로
생활 속 AI 활용
내 걸음과 신호 대기를 배워 지각하지 않는 출발 시각을 알려주는 AI, 지각그만
내 걸음과 신호 대기를 기록해, 지각하지 않는 출발 시각을 3단계로 알려주는 AI 앱
🤖 활용 AI 도구
XGBoost 분위수 회귀(소요시간 예측), ST-DBSCAN(멈춘 곳 자동 탐지, 직접 구현), LSTM(PyTorch, 비교 검증용), Visual Studio Code와 Claude CLI로 앱 개발
① 어떤 상황에서 AI를 활용했나요?
저는 매일 아침 지도 앱이 알려주는 예상 시간을 믿고 집을 나섰다가 결국 뛰어가는 일이 많았습니다.
이유를 따져 보니 세 가지 문제가 있었습니다.
첫째, 지도 앱은 평균 소요시간 하나만 알려줍니다. 그런데 지각은 평균적인 날이 아니라
엘리베이터가 늦게 오거나 신호에 연달아 걸리는 날에 생깁니다.
둘째, 지도 앱의 걷는 속도는 보통 사람 기준입니다. 제 걸음 속도와 제가 매일 걸리는 신호는
반영되지 않습니다.
셋째, 몇 분 걸리는지만 알려줍니다. 몇 시에 나가야 하는지는 제가 직접 거꾸로 계산해야 합니다.
그래서 제가 실제로 걸은 기록을 AI가 배워서, 늦는 날까지 대비한 출발 시각을 알려주는 앱을 만들기로
했습니다.
② 어떤 AI를 어떻게 활용했나요?
앱이 출발 시각을 알려주기까지는 네 단계를 거칩니다.
1단계 기록: 스마트폰 앱이 5m를 움직일 때마다 GPS 위치를 저장합니다. 멈춰 있을 때도 15초마다
위치를 남기는데, 이렇게 해야 신호를 기다린 시간을 놓치지 않습니다.
2단계 멈춘 곳 찾기: ST-DBSCAN이라는 군집 알고리즘을 직접 구현했습니다. 반경 15m, 60초 안에
위치 점이 3개 이상 모이고 10초 이상 머문 곳을 '멈춘 곳'으로 찾아냅니다. 정확도가 50m보다 나쁜
점과 순간속도가 초속 15m를 넘는 점은 잘못 찍힌 값으로 보고 지웁니다. 찾은 곳은 사용자가 신호등,
엘리베이터, 기타 중에서 고르고, 신호등을 고르면 경찰청 교차로 데이터와 연결해 그 신호의 주기를
대기시간 계산에 씁니다.
3단계 소요시간 예측: XGBoost 분위수 회귀 모델이 소요시간을 하나가 아니라 세 개로 예측합니다.
빨리 간 날(하위 10%), 평소(50%), 늦은 날(90%)의 시간입니다. 거리, 출발 시각, 요일, 과거 평균
속도, 데이터 출처, 평균 정지 횟수 6가지를 입력으로 쓰고, 실제로 걸린 시간을 정답으로 학습합니다.
4단계 출발 시각 계산: 목표 도착 시각에서 세 예측값을 빼서 출발 시각 3개를 만듭니다. '절대 안
늦어요'는 늦은 날 기준으로 가장 일찍 나가는 시각, '이때까진 가야해요'는 평소 시간에 맞춘 시각,
'늦을 수도 있어요'는 가장 빨랐던 날 기준의 마지노선입니다. 이동하는 동안에는 30초마다 제시간에
도착할 확률을 다시 계산해서, 늦을 위험이 커지면 진동으로 알려줍니다.
기록이 적을 때는 규칙으로 계산합니다. 거리를 초속 1.2m로 나누고 멈춘 횟수마다 20초를 더하며, 신호
주기를 아는 곳은 주기의 절반을 기다린다고 봅니다. 그래서 한 번만 기록해도 바로 쓸 수 있고, 완료된
기록이 20건 쌓이면 XGBoost가 제 기록으로 학습을 시작합니다.
신호 주기는 경찰청 교차로 데이터, 도로 상황은 서울 열린데이터광장 TOPIS 실시간 정보, 걷는 길
안내는 T맵 보행자 경로와 네이버 지도를 사용했습니다. 앱은 Flutter, 서버는 FastAPI와
PostgreSQL(PostGIS)로 만들었습니다.
③ 활용 결과 어떤 변화가 있었나요?
가장 큰 변화는 '몇 분 걸려요'라는 숫자 하나 대신 언제 나가야 하는지 세 가지 시각을 바로 받게 된
것입니다. 시험처럼 중요한 날에는 '절대 안 늦어요', 평소에는 '이때까진 가야해요'를 고르면 됩니다.
출발 시각을 제가 거꾸로 계산할 필요도 없어졌습니다.
예측에는 제 걸음 속도와 제가 실제로 기다린 신호, 엘리베이터 시간이 들어갑니다. 그리고 화면에 어떤
방식(학습 모델 또는 규칙)으로 기록 몇 건을 써서 계산했는지 함께 보여줘서, 결과를 믿고 쓸 수
있습니다.
제가 직접 학교 가는길에 사용하고있는데, 알람이 제때 울려줘서 뛰어가는일이 없어졌습니다. 예측과
실제 소요시간에 차이는 1분도 되지 않았습니다.
④ 나만의 방식 또는 개선 포인트는 무엇인가요?
1. 예측값 하나 대신 세 개: AI가 시간 하나 대신 하위 10%, 50%, 90% 세 값을 동시에 예측하고,
값마다 알람 하나를 연결했습니다. 평균만 보면 운 나쁜 날에 늦기 때문에, 늦는 날을 따로 계산하는
것이 핵심입니다.
2. 멈춰 있을 때도 기록: 움직일 때만 기록하면 신호를 기다리는 동안 점이 찍히지 않아 멈춘 곳을
찾을 수 없습니다. 그래서 멈춰 있을 때도 15초마다 위치를 남기게 했습니다.
3. 사람이 알려준 정보를 AI에 연결: AI가 찾은 멈춘 곳을 사용자가 신호등이나 엘리베이터로
구분하면, 그 정보가 다음 학습의 입력값이 됩니다.
4. 믿을 수 있는 예측: 기록이 적을 때 '빠른 날' 예측이 '평소'보다 길게 나오는 역전을 막으려고 결과를
크기순으로 정렬합니다. 어떤 모델로 기록 몇 건을 썼는지도 화면에 보여주고, 성능 평가는
날짜순으로 나눠 실제로 쓰는 상황과 같게 했습니다.
5. 다른 모델과 비교: 이동 경로 전체를 순서대로 학습하는 LSTM 모델도 만들어, 요약값만 쓰는
XGBoost로 충분한지 비교할 수 있게 했습니다.
앞으로 개선할 점도 있습니다. 다음 작업은 휴대폰 알림으로 알람이 울리게 하는 것으로, 지금은 출발
시각 계산과 화면 표시까지 완성했습니다. 신호 주기 데이터가 서울에만 있어서 다른 지역으로 넓히는
것도 과제입니다. 또 출발한 뒤 지금까지 걸은 경로를 LSTM에 넣으면 도착 시각을 다시 예측하는 데 쓸
수 있습니다.
⑤ 다른 사람도 따라 할 수 있나요?
네. 쓰는 방법은 간단합니다.
1. 앱에서 경로 이름(예: 학교 가는 길)을 정하고 '기록 시작하기'를 누릅니다.
2. 평소처럼 걸어가고, 도착하면 기록을 끝냅니다.
3. AI가 찾은 멈춘 곳이 신호등인지 엘리베이터인지 고릅니다.
4. 목표 도착 시각을 넣으면 출발 시각 3개가 나옵니다.
한 번만 기록해도 바로 쓸 수 있고, 같은 길을 여러 번 기록할수록 내 걸음에 맞게 정확해집니다.
등굣길뿐 아니라 학원 가는 길, 출퇴근길, 버스 정류장까지 가는 길처럼 매일 같은 길을 다니는
사람이라면 누구나 쓸 수 있습니다.
직접 만들어 보고 싶은 사람도 같은 방법을 쓸 수 있습니다. 스마트폰 GPS 기록, 경찰청 교차로·신호
정보 같은 공공데이터, 오픈소스인 XGBoost의 분위수 회귀를 쓰면 됩니다. 기록이 적을 때는 '거리 ÷
걷는 속도 + 멈춘 횟수 × 대기시간' 규칙으로 시작하면 됩니다.
다만 신호 주기 데이터는 현재 서울만 제공되어, 다른 지역에서는 신호 대기를 20초로 가정해
계산합니다.
첨부영상은 용량 문제로 아래 사이트 확인 부탁드립니다
https://youtube.com/shorts/8ia4_IHHLZ0?feature=share
감사합니다
저는 매일 아침 지도 앱이 알려주는 예상 시간을 믿고 집을 나섰다가 결국 뛰어가는 일이 많았습니다.
이유를 따져 보니 세 가지 문제가 있었습니다.
첫째, 지도 앱은 평균 소요시간 하나만 알려줍니다. 그런데 지각은 평균적인 날이 아니라
엘리베이터가 늦게 오거나 신호에 연달아 걸리는 날에 생깁니다.
둘째, 지도 앱의 걷는 속도는 보통 사람 기준입니다. 제 걸음 속도와 제가 매일 걸리는 신호는
반영되지 않습니다.
셋째, 몇 분 걸리는지만 알려줍니다. 몇 시에 나가야 하는지는 제가 직접 거꾸로 계산해야 합니다.
그래서 제가 실제로 걸은 기록을 AI가 배워서, 늦는 날까지 대비한 출발 시각을 알려주는 앱을 만들기로
했습니다.
② 어떤 AI를 어떻게 활용했나요?
앱이 출발 시각을 알려주기까지는 네 단계를 거칩니다.
1단계 기록: 스마트폰 앱이 5m를 움직일 때마다 GPS 위치를 저장합니다. 멈춰 있을 때도 15초마다
위치를 남기는데, 이렇게 해야 신호를 기다린 시간을 놓치지 않습니다.
2단계 멈춘 곳 찾기: ST-DBSCAN이라는 군집 알고리즘을 직접 구현했습니다. 반경 15m, 60초 안에
위치 점이 3개 이상 모이고 10초 이상 머문 곳을 '멈춘 곳'으로 찾아냅니다. 정확도가 50m보다 나쁜
점과 순간속도가 초속 15m를 넘는 점은 잘못 찍힌 값으로 보고 지웁니다. 찾은 곳은 사용자가 신호등,
엘리베이터, 기타 중에서 고르고, 신호등을 고르면 경찰청 교차로 데이터와 연결해 그 신호의 주기를
대기시간 계산에 씁니다.
3단계 소요시간 예측: XGBoost 분위수 회귀 모델이 소요시간을 하나가 아니라 세 개로 예측합니다.
빨리 간 날(하위 10%), 평소(50%), 늦은 날(90%)의 시간입니다. 거리, 출발 시각, 요일, 과거 평균
속도, 데이터 출처, 평균 정지 횟수 6가지를 입력으로 쓰고, 실제로 걸린 시간을 정답으로 학습합니다.
4단계 출발 시각 계산: 목표 도착 시각에서 세 예측값을 빼서 출발 시각 3개를 만듭니다. '절대 안
늦어요'는 늦은 날 기준으로 가장 일찍 나가는 시각, '이때까진 가야해요'는 평소 시간에 맞춘 시각,
'늦을 수도 있어요'는 가장 빨랐던 날 기준의 마지노선입니다. 이동하는 동안에는 30초마다 제시간에
도착할 확률을 다시 계산해서, 늦을 위험이 커지면 진동으로 알려줍니다.
기록이 적을 때는 규칙으로 계산합니다. 거리를 초속 1.2m로 나누고 멈춘 횟수마다 20초를 더하며, 신호
주기를 아는 곳은 주기의 절반을 기다린다고 봅니다. 그래서 한 번만 기록해도 바로 쓸 수 있고, 완료된
기록이 20건 쌓이면 XGBoost가 제 기록으로 학습을 시작합니다.
신호 주기는 경찰청 교차로 데이터, 도로 상황은 서울 열린데이터광장 TOPIS 실시간 정보, 걷는 길
안내는 T맵 보행자 경로와 네이버 지도를 사용했습니다. 앱은 Flutter, 서버는 FastAPI와
PostgreSQL(PostGIS)로 만들었습니다.
③ 활용 결과 어떤 변화가 있었나요?
가장 큰 변화는 '몇 분 걸려요'라는 숫자 하나 대신 언제 나가야 하는지 세 가지 시각을 바로 받게 된
것입니다. 시험처럼 중요한 날에는 '절대 안 늦어요', 평소에는 '이때까진 가야해요'를 고르면 됩니다.
출발 시각을 제가 거꾸로 계산할 필요도 없어졌습니다.
예측에는 제 걸음 속도와 제가 실제로 기다린 신호, 엘리베이터 시간이 들어갑니다. 그리고 화면에 어떤
방식(학습 모델 또는 규칙)으로 기록 몇 건을 써서 계산했는지 함께 보여줘서, 결과를 믿고 쓸 수
있습니다.
제가 직접 학교 가는길에 사용하고있는데, 알람이 제때 울려줘서 뛰어가는일이 없어졌습니다. 예측과
실제 소요시간에 차이는 1분도 되지 않았습니다.
④ 나만의 방식 또는 개선 포인트는 무엇인가요?
1. 예측값 하나 대신 세 개: AI가 시간 하나 대신 하위 10%, 50%, 90% 세 값을 동시에 예측하고,
값마다 알람 하나를 연결했습니다. 평균만 보면 운 나쁜 날에 늦기 때문에, 늦는 날을 따로 계산하는
것이 핵심입니다.
2. 멈춰 있을 때도 기록: 움직일 때만 기록하면 신호를 기다리는 동안 점이 찍히지 않아 멈춘 곳을
찾을 수 없습니다. 그래서 멈춰 있을 때도 15초마다 위치를 남기게 했습니다.
3. 사람이 알려준 정보를 AI에 연결: AI가 찾은 멈춘 곳을 사용자가 신호등이나 엘리베이터로
구분하면, 그 정보가 다음 학습의 입력값이 됩니다.
4. 믿을 수 있는 예측: 기록이 적을 때 '빠른 날' 예측이 '평소'보다 길게 나오는 역전을 막으려고 결과를
크기순으로 정렬합니다. 어떤 모델로 기록 몇 건을 썼는지도 화면에 보여주고, 성능 평가는
날짜순으로 나눠 실제로 쓰는 상황과 같게 했습니다.
5. 다른 모델과 비교: 이동 경로 전체를 순서대로 학습하는 LSTM 모델도 만들어, 요약값만 쓰는
XGBoost로 충분한지 비교할 수 있게 했습니다.
앞으로 개선할 점도 있습니다. 다음 작업은 휴대폰 알림으로 알람이 울리게 하는 것으로, 지금은 출발
시각 계산과 화면 표시까지 완성했습니다. 신호 주기 데이터가 서울에만 있어서 다른 지역으로 넓히는
것도 과제입니다. 또 출발한 뒤 지금까지 걸은 경로를 LSTM에 넣으면 도착 시각을 다시 예측하는 데 쓸
수 있습니다.
⑤ 다른 사람도 따라 할 수 있나요?
네. 쓰는 방법은 간단합니다.
1. 앱에서 경로 이름(예: 학교 가는 길)을 정하고 '기록 시작하기'를 누릅니다.
2. 평소처럼 걸어가고, 도착하면 기록을 끝냅니다.
3. AI가 찾은 멈춘 곳이 신호등인지 엘리베이터인지 고릅니다.
4. 목표 도착 시각을 넣으면 출발 시각 3개가 나옵니다.
한 번만 기록해도 바로 쓸 수 있고, 같은 길을 여러 번 기록할수록 내 걸음에 맞게 정확해집니다.
등굣길뿐 아니라 학원 가는 길, 출퇴근길, 버스 정류장까지 가는 길처럼 매일 같은 길을 다니는
사람이라면 누구나 쓸 수 있습니다.
직접 만들어 보고 싶은 사람도 같은 방법을 쓸 수 있습니다. 스마트폰 GPS 기록, 경찰청 교차로·신호
정보 같은 공공데이터, 오픈소스인 XGBoost의 분위수 회귀를 쓰면 됩니다. 기록이 적을 때는 '거리 ÷
걷는 속도 + 멈춘 횟수 × 대기시간' 규칙으로 시작하면 됩니다.
다만 신호 주기 데이터는 현재 서울만 제공되어, 다른 지역에서는 신호 대기를 20초로 가정해
계산합니다.
첨부영상은 용량 문제로 아래 사이트 확인 부탁드립니다
https://youtube.com/shorts/8ia4_IHHLZ0?feature=share
감사합니다