상세 컨텐츠

본문 제목

실시간 버스 위치 데이터로 내 출근 시간을 자동으로 조절하는 방법

공공데이터

by contributor-news1 2025. 7. 2. 10:52

본문

 

 

매일 아침 버스를 타고 출근하는 사람들은 늘 같은 고민을 합니다. “지금 나가면 버스를 탈 수 있을까?”, “헛걸음은 안 하겠지?”, “이번에도 버스 두 대가 같이 와서 놓치면 어쩌지?” 이처럼 대중교통을 이용한 출퇴근은 정보 부족에서 오는 불편을 자주 동반합니다.

 

 

실시간 버스 위치 데이터
BIG DATA 활용하기

 

그러나 이제는 공공데이터포털에서 제공하는 실시간 버스 위치 정보 API를 통해, 이러한 문제를 해결할 수 있습니다.

필자는 이 데이터를 기반으로 내가 타야 할 버스가 정류장 몇 정거장 전쯤 도착했을 때 자동으로 알림을 보내주는 시스템을 구현했습니다. 이 글은 출근 시간을 보다 효율적으로 조절할 수 있도록 돕는 자동화 방법을 소개하며, 누구나 실생활에 적용 가능한 방식으로 구성되어 있습니다.

 

사용한 데이터 출처와 시스템 목적

 

공공데이터포털(data.go.kr)에서는 버스 위치 정보, 버스 도착 정보, 노선 정보, 정류장 정보 등을 실시간으로 제공하는 API를 무료로 개방하고 있습니다.

시스템 목적 요약:

  • 내가 자주 타는 버스의 노선 번호를 기준으로
  • 실시간 위치를 확인하고
  • 해당 버스가 출발 정류장에서 특정 거리만큼 접근하면 알림 전송
  • 출근 시간을 그에 맞춰 자동으로 조절

 

시스템 흐름 요약

  • 사용자가 이용하는 버스 노선 번호정류장 ID를 사전에 등록
  • 실시간 API를 호출하여 해당 버스가 몇 번째 정류장 전에 있는지 확인
  • 설정한 거리 이내에 접근할 경우 자동으로 “지금 출발하세요” 메시지 발송

 

주요 코드 구현 (Python 예시)

1단계: 버스 위치 API 호출

 
import requests

bus_api_key = '발급받은_인증키'
bus_route_id = '100100118'  # 예: 100번 버스
url = f"http://ws.bus.go.kr/api/rest/buspos/getBusPosByRtid?serviceKey={bus_api_key}&busRouteId={bus_route_id}"

response = requests.get(url)
xml_data = response.content
 

이 API는 현재 노선 상에서 실시간으로 운행 중인 버스의 위치 목록을 반환합니다.
버스가 정류장 몇 개 전인지 확인할 수 있는 sectOrd 값이 핵심입니다.

2단계: 목표 정류장까지 남은 거리 계산 및 조건 비교

from xml.etree import ElementTree as ET

tree = ET.fromstring(xml_data)
buses = tree.findall('.//itemList')

# 내가 타려는 정류장의 순서
my_station_order = 15  # 예: 신촌역 정류장

for bus in buses:
    current_order = int(bus.find('sectOrd').text)
    if my_station_order - current_order <= 3:  # 3정류장 이내 접근 시
        print("버스가 곧 도착합니다! 지금 나가세요.")
        break

 

 

3단계: 알림 자동 전송 (예: 텔레그램 메시지)

 

import telegram

bot = telegram.Bot(token='텔레그램_봇_토큰')
chat_id = '내_채팅_ID'
bot.send_message(chat_id=chat_id, text="지금 나가세요! 버스가 곧 도착합니다.")

 

실제 활용 효과

 

이 시스템을 아침 출근 시간대에 자동 실행되도록 예약해두면, 더 이상 버스 시간표를 일일이 확인할 필요가 없습니다.
특히 비 오는 날, 더운 날, 겨울철에는 시간을 정확히 맞춰 나갈 수 있어 생활의 질이 크게 향상됩니다.

또한, 이 자동화는 단순한 ‘버스 앱’보다 훨씬 실용적입니다. 왜냐하면 사용자가 설정한 조건에 맞춰 능동적으로 알림을 주기 때문입니다.
 

추가 확장 아이디어

  • 사용자 위치(GPS) 기반 자동 출발 타이밍 조절
  • 버스 + 지하철 환승 시 도착 시간 매칭 시스템 구축
  • 매일 아침 슬랙/이메일/문자 메시지로 교통 상황 자동 요약 발송
  • ‘지각 예측률’ 계산기 – 버스 도착 시간 + 평균 소요 시간 기반

 

 

관련글 더보기