상세 컨텐츠

본문 제목

공공 공사 알림 정보 자동 수집해 길막 예상 경로 표시 시스템 만들기

공공데이터

by contributor-news1 2025. 7. 4. 08:17

본문

 

출근길에 분명 익숙한 도로를 선택했지만, 갑작스러운 공사로 길이 막혀 도착이 지연되는 경험은 누구나 한 번쯤 겪었을 것입니다. 특히 도로 공사, 상하수도 공사, 통신선 매설, 보도블록 교체 등 일시적인 공공 공사는 일반 내비게이션 서비스에서 실시간 반영되지 않기 때문에, 예기치 못한 우회가 필요해 불편함이 큽니다.

 

공공 공사 알림 정보 자동 수집하여 길막 경로 지도 만들기
공공데이터 활용, 빅데이터 활용

 

 

 

 

필자는 이 문제를 해결하기 위해 공공데이터포털과 지자체 사이트에서 제공하는 공사 알림 정보를 자동으로 수집하고, 해당 구간을 지도상에 시각화하여 ‘길막 예상 경로’를 표시하는 시스템을 구축했습니다. 이 시스템은 차량 운전자뿐만 아니라, 도보 통근자, 자전거 이용자, 퀵서비스 기사 등 다양한 사용자에게 실질적인 경로 선택 도움을 줄 수 있는 정보 제공 도구입니다. 본 글에서는 공공 공사 데이터를 자동 수집 및 가공하여 길막 구간을 시각화하는 전체 과정을 공유합니다. 

이 시스템의 작동 목표

목표 요약:

  • 🚧 지자체 및 정부에서 고시하는 공공 공사 일정, 위치 정보를 자동 수집
  • 🛣️ 도로 구간 단위로 예상 통행 불가/지연 구간 추정
  • 🗺️ 지도상에 시각화하여 ‘피해야 할 경로’를 사용자에게 미리 안내
  • 📅 예고 기간 및 시간대 정보를 반영하여 자동 갱신

 

사용 가능한 공공데이터 API 목록

기관명제공 데이터수집 방식비고
공공데이터포털 도로점용공사 알림 REST API 도로명, 공사기간, 위치 좌표
서울 열린데이터광장 도로굴착/공사 통지 정보 JSON API 서울시 내 도로 공사
행정안전부 생활안전지도 공사, 시설보수 정보 XML 일부 좌표정보 포함
각 시/군/구청 홈페이지 공고문 HTML 또는 RSS 크롤링 필요 지역별 정보 다양
 

 

 

시스템 구현 구조 (Python 중심 설명)

1단계 – 공사 알림 데이터 자동 수집

 

import requests

def fetch_construction_data():
    api_key = "발급받은_API_KEY"
    url = f"https://api.odcloud.kr/api/15073836/v1/uddi:e0dc234d-b59e-4ab5-a449-a8c978eb0f71"
    params = {
        "serviceKey": api_key,
        "perPage": 100,
        "page": 1
    }
    response = requests.get(url, params=params)
    return response.json()['data']

 

2단계 – 현재 날짜와 비교하여 ‘실시간 공사 구간’ 필터링

 

from datetime import datetime

def filter_active_construction(data):
    today = datetime.today().date()
    active = []

    for item in data:
        try:
            start = datetime.strptime(item['시작일'], '%Y-%m-%d').date()
            end = datetime.strptime(item['종료일'], '%Y-%m-%d').date()
            if start <= today <= end:
                active.append(item)
        except:
            continue
    return active

 

3단계 – 지도에 공사 구간 표시 (Folium 활용)

 

import folium

def plot_construction_map(active_data):
    m = folium.Map(location=[37.5665, 126.9780], zoom_start=12)  # 서울시 중심 좌표
    for item in active_data:
        lat = float(item['위도'])
        lon = float(item['경도'])
        folium.Marker(
            location=[lat, lon],
            popup=f"{item['공사명']}<br>{item['공사기간']}",
            icon=folium.Icon(color='red', icon='wrench')
        ).add_to(m)
    m.save("construction_map.html")

 

실제 활용 사례

예시 1 – 자가용 출근자:
서울시 마포구에서 출근하는 A씨는 매일 정해진 경로로 출근하던 중, 해당 시스템에서 ‘오늘부터 일주일간 공덕오거리 일대 보도공사 진행’이라는 알림을 받고 우회 도로를 선택해 지각을 피할 수 있었습니다.

예시 2 – 배달 라이더:
퀵서비스 업무를 하는 B씨는 실시간 공사 구간이 표시된 지도를 확인하고 항상 차단 구역을 미리 파악한 뒤 효율적인 배달 경로를 설정할 수 있었습니다.

 

 

 

추가 확장 가능한 아이디어

  • 🚨 카카오맵 또는 네이버지도 연동: 실시간 경로 안내 시스템에 공사 구간 반영
  • 📆 캘린더 연동: 일정한 구간의 공사일을 자동 등록하여 알림 제공
  • 🧠 AI 기반 예상 혼잡도 분석: 과거 공사 시 교통 체증 데이터를 학습하여 혼잡 예측
  • 📨 사용자 위치 기반 푸시 알림: 1km 이내 공사 시작 시 자동 알림 발송
  • 📱 모바일 앱 또는 웹 대시보드 구현: 실시간 확인용 UI 제공

 

도로 공사 정보는 분명 공개되어 있지만, 사용자가 스스로 찾아보기에는 다소 불편한 구조를 가지고 있습니다.
이 시스템은 그러한 공공 빅데이터 정보를 자동으로 수집하고, 시각적으로 요약하여 사용자에게 실시간으로 전달함으로써 실생활에 직접적인 영향을 미치는 도구로써 활용 가능합니다. 

 

관련글 더보기