공공데이터 활용법 & 데이터 시각화 입문

실무에서 바로 쓰는 Python 오픈 API 활용법 – 공공데이터 자동 수집부터 시각화까지

해피데ㅇI 2025. 4. 23. 09:00

실무에서 바로 쓰는 Python 오픈 API 활용법 – 공공데이터 자동 수집부터 시각화까지

1. 공공데이터와 오픈 API, 왜 중요한가?

4차 산업혁명 시대, 데이터는 이제 자산입니다. 특히 공공데이터는 정부와 공공기관이 수집·제공하는 신뢰도 높은 자료이며, 누구나 자유롭게 활용할 수 있어 데이터 기반 서비스 기획과 분석에 매우 유리합니다. 이 중에서도 특히 오픈 API로 제공되는 데이터는 정적 파일(CSV, Excel)과 달리 실시간성, 자동화 가능성이라는 큰 장점을 갖습니다.

 

예를 들어 기상청의 날씨 API, 질병관리청의 백신접종센터 위치 API, 서울시의 따릉이 실시간 대여 정보 API 등은 Python 코드 한 줄로 실시간으로 불러올 수 있습니다. 이는 단순한 조회를 넘어서 자동화된 시스템 구축, 실시간 대시보드 구현, 서비스 UX 고도화 등으로 확장될 수 있습니다.

 

Python은 이러한 API 데이터를 활용하는 데 최적화된 언어입니다. 코드가 간단하고, 데이터 요청·응답을 다루는 데 필요한 다양한 라이브러리(requests, json, pandas)가 이미 잘 정리되어 있어 프로그래밍 초보자도 쉽게 접근할 수 있습니다. 이 글에서는 실무에서 직접 활용 가능한 방식으로 공공데이터 API를 Python으로 연결하고 시각화하는 전 과정을 안내합니다.

 

 

2. 오픈 API 활용 절차: 공공데이터포털부터 Python 코드까지

  • Python으로 오픈 API를 활용하기 위해서는 먼저 신뢰할 수 있는 데이터 출처에서 API 정보를 확보해야 합니다. 대표적으로 공공데이터포털(data.go.kr) 또는 서울열린데이터광장 같은 플랫폼을 활용합니다. 기본적인 절차는 다음과 같습니다.
     
    1. 공공데이터포털 회원가입 및 로그인
    2. API 검색 → 활용 신청
    3. 고유 인증키(API Key) 발급
    4. 개발가이드 문서 확인 및 API 호출 방식 숙지

    API는 대부분 REST API 방식으로 제공되며, URL을 통해 필요한 파라미터를 전달하고 결과를 JSON 또는 XML 형식으로 받아옵니다. Python에서는 이를 처리하기 위해 requests 라이브러리를 주로 사용하며, 다음과 같은 기본 구조로 API를 호출할 수 있습니다.

Python 코드 예시:

import requests
from urllib.parse import urlencode

api_key = "발급받은_인증키"
base_url = "https://api.odcloud.kr/api/15077586/v1/centers"
params = {
    "serviceKey": api_key,
    "page": 1,
    "perPage": 100
}
query_string = urlencode(params)
url = f"{base_url}?{query_string}"

response = requests.get(url)
data = response.json()
print(data)

 

이처럼 코드 수십 줄이 아닌 단 몇 줄로도 실시간 데이터를 수집할 수 있습니다. json으로 받아온 데이터는 Python의 pandas와 함께 사용하여 표 형태로 정리하고, 추후 분석이나 시각화를 위한 기반 데이터로 사용할 수 있습니다.

 

 

3. 실전 예제: Python으로 공공데이터 자동화 및 시각화

예를 들어 질병관리청의 예방접종센터 API 데이터를 불러와 지도에 시각화할 수 있습니다. 위도·경도 데이터를 이용해 folium 라이브러리로 시각화할 수 있습니다.

import pandas as pd
import folium

df = pd.DataFrame(data['data'])
m = folium.Map(location=[37.5665, 126.9780], zoom_start=11)
for idx, row in df.iterrows():
    folium.Marker([row['lat'], row['lng']], popup=row['centerName']).add_to(m)
m.save('map.html')


시각화는 블로그, 보고서, 정책 제안서 등 다양한 영역에서 활용될 수 있으며, 직관적인 정보 전달과 설득력을 높여줍니다. 더 나아가 matplotlib이나 seaborn을 활용해 시간에 따른 추세 시각화도 구현할 수 있습니다.

 

 

4. 공공데이터 오픈 API로 자동화 시스템 구축하기 – 실무에 바로 적용하는 팁

오픈 API의 진정한 가치는 단순히 데이터를 불러오는 것에 그치지 않습니다. 일정한 주기로 반복적으로 제공되는 공공데이터를 Python 코드로 자동 수집하고, 이를 정제 및 저장하는 일련의 과정을 하나로 통합하면, 실제 업무나 프로젝트에서 사용할 수 있는 자동화 시스템을 구축할 수 있습니다.


예를 들어 기상청 API를 이용해 매일 오전 8시에 실시간 날씨 데이터를 수집하고, 이를 CSV 또는 Google Sheets에 저장하도록 자동화할 수 있습니다. Python에서는 schedule, time, datetime, os 등 다양한 모듈을 활용해 반복 실행되는 데이터 수집 루틴을 만들 수 있습니다. 아래는 간단한 예시입니다.

import schedule
import time
from my_api_module import fetch_weather_data

def job():
    fetch_weather_data()

schedule.every().day.at("08:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

 

이렇게 구성된 자동화 루틴은 Raspberry Pi, AWS Lambda, 또는 윈도우 작업 스케줄러에 배치하여 24시간 데이터 수집 시스템으로 확장할 수 있습니다. 이러한 자동화는 수작업 없이도 데이터를 최신 상태로 유지하고, 실시간 대시보드나 리포트 생성을 가능하게 만들어 줍니다.

 

특히 정책 분석, 창업 아이템 검증, 행정 서비스 개선, 데이터 기반 콘텐츠 운영 등 다양한 실전 환경에 즉시 활용될 수 있는 방식입니다. Python과 오픈 API의 결합은 단순한 기술 활용을 넘어, 효율적인 정보 시스템을 구축하는 강력한 수단이 됩니다. 초보자도 구조를 익히고 실습을 거치면 단시간 내에 실무에 적용할 수 있는 수준의 시스템을 구축할 수 있습니다.