상세 컨텐츠

본문 제목

오늘 문 연 병원, 자동으로 찾는 시스템 만들기 (공공데이터 기반)

공공데이터

by contributor-news1 2025. 7. 2. 15:17

본문

 

 

갑자기 아프거나 아이가 열이 날 때, 가장 먼저 하는 행동은 근처에 열려 있는 병원을 검색하는 일입니다. 하지만 검색 결과에는 영업 여부가 불확실한 정보도 많고, 전화해도 안 받는 경우가 많습니다. 특히 주말이나 공휴일, 늦은 밤에는 이 문제가 더 심각해집니다.

 

오늘 문 연 병원 자동으로 찾는 시스템, 공공데이터 기반
공공데이터 활용

 

 

이런 불편함을 줄이기 위해 필자는 공공데이터를 활용한 '오늘 문 연 병원' 자동 확인 시스템을 직접 만들었습니다. 이 시스템은 지역 기반으로 영업 중인 병원 리스트를 실시간으로 수집하고, 필터링된 결과만 사용자에게 보여줍니다. 사용자는 검색 없이도 자신의 위치 근처에서 문을 연 병원을 쉽게 확인할 수 있으며, 긴급 상황에서 골든타임을 놓치지 않게 됩니다. 이 글은 공공 API 데이터를 활용하여 생활 속 문제를 해결하는 자동화 시스템 사례입니다.

 

시스템 개요

이 시스템은 다음 기능을 목표로 합니다:

  • 내 위치 기반으로 병원 리스트 조회
  • 해당 병원이 당일 영업 중인지 여부 자동 확인
  • 운영 중인 병원만 정리해서 출력
  • 스마트폰 알림 또는 웹 화면으로 결과 확인

 

 

사용한 공공데이터 API

 

다음 두 가지 데이터를 조합하여 시스템을 구성합니다.

  1. 보건복지부 의료기관 운영 정보 API
    • 전국 병원, 의원, 약국의 정보(명칭, 진료과목, 주소, 전화번호 등) 제공
    • 의료기관 영업시간/휴일 여부 포함
  2. 공공 위치기반 주소 변환 서비스 (좌표 → 주소 변환 API)
    • 현재 위치(GPS 좌표)를 주소로 변환해 병원 검색 범위에 반영

 

시스템 구현 예시 (Python + Kakao Map 사용)

 

1단계 – 현재 위치 주소 변환

import requests

def get_address_from_coords(lat, lon):
    url = "https://dapi.kakao.com/v2/local/geo/coord2regioncode.json"
    headers = {"Authorization": "KakaoAK API_KEY"}
    params = {"x": lon, "y": lat}
    
    response = requests.get(url, headers=headers, params=params)
    result = response.json()
    
    return result['documents'][0]['region_2depth_name']  # 예: '강남구'

 

2단계 – 해당 지역의 병원 리스트 수집 

 

def get_hospitals(region_name):
    service_key = "보건복지부_API_KEY"
    url = f"http://apis.data.go.kr/B551182/pubReliefHospService/getpubReliefHospList"
    params = {
        'serviceKey': service_key,
        'Q0': '서울특별시',
        'Q1': region_name,
        'numOfRows': '100',
        'pageNo': '1',
        'spclAdmTyCd': '',  # 공백 시 전체 병원
        'returnType': 'json'
    }

    response = requests.get(url, params=params)
    hospitals = response.json()['response']['body']['items']
    
    return hospitals

 

3단계 – 오늘 운영 중인 병원만 필터링

 

from datetime import datetime

def is_today_open(hospital):
    now = datetime.now()
    weekday = now.strftime('%A')
    
    # 예시: hospital['dutyTime1s'] ~ hospital['dutyTime1c'] 존재 시 오늘 진료함
    if weekday == 'Sunday' and hospital['dutyTime7s']:
        return True
    elif weekday == 'Saturday' and hospital['dutyTime6s']:
        return True
    elif weekday not in ['Saturday', 'Sunday'] and hospital['dutyTime1s']:
        return True
    return False

 

 

4단계 – 사용자에게 출력 (콘솔, 웹, 알림 등)

lat, lon = 37.4981, 127.0276  # 강남역 예시
region = get_address_from_coords(lat, lon)
hospital_list = get_hospitals(region)

for hospital in hospital_list:
    if is_today_open(hospital):
        print(f"{hospital['yadmNm']} - {hospital['addr']} - {hospital['telno']}")

 
 
 
 

 

실제 적용 효과

  • 주말이나 공휴일, 갑작스러운 질병에도 ‘현재 진료 중인 병원’만 확인 가능
  • 위치 기반으로 자동으로 필터링되어 사용자 검색 피로도 감소
  • 부모, 고령자, 반려동물 보호자 등에게 긴급상황 대처용으로 활용도 매우 높음
  • 알림 설정을 통해 아침 8시에 자동으로 리스트 수신 가능

이 시스템은 실제로 가정 내에서 유용하게 쓰이고 있으며, 가족 중 누군가 갑자기 아플 때도 검색 없이 병원에 바로 전화하거나 방문할 수 있어 체감 만족도가 매우 높습니다. 

 

확장 아이디어

  • 사용자의 GPS 좌표와 연동해 가장 가까운 병원부터 우선 정렬
  • 약국 정보도 함께 표시하여 진료 후 처방까지 원스톱 가능
  • 카카오톡 알림으로 병원 리스트 자동 전송 기능
  • 예약 가능 여부 표시 기능 연동 (병원 자체 API 또는 콜센터 연동)

 

 

‘오늘 문 연 병원’ 정보를 자동으로 수집하고 정리하는 시스템은 단순한 생활 편의 기능을 넘어 생명을 구할 수도 있는 정보 제공 도구입니다.

 

관련글 더보기