정부 무료 공공데이터 종류 총정리 & Python API 실전 호출 연동 가이드

 

정부 무료 공공데이터 종류 총정리 & Python API 실전 호출 연동 가이드

"아이디어는 있는데 활용할 데이터가 없다고요?" 정부와 지자체가 무료로 제공하는 11,000개 이상의 공공데이터(Open API)를 활용하면 상권 분석, 부동산 추이, 날씨 연동 앱 등 수많은 서비스를 직접 구축할 수 있습니다. 카테고리별 공공데이터 종류부터 파이썬(Python)으로 상권 API를 연동하는 실전 코드까지 한 번에 정리해 드립니다.

📌 목차

  • 1. 수익화에 유용한 대표 공공데이터 6가지 분류
  • 2. [실전 코드] Python으로 상권 정보 API 호출 & 데이터 파싱하기
  • 3. API 연동 시 필수 주의사항 (디코딩 인증키 오류 해결)
  • 4. 공공데이터 + AI(Claude/ChatGPT) 서비스 자동화 아이디어
  • 5. 공공데이터포털 API 신청 3단계 절차

✍️ 운영자 노트

저는 기상 데이터를 다루는 일을 하고 있어서 공공데이터포털의 기상청 API를 실무에서 꾸준히 씁니다. 처음 신청했을 때 가장 오래 헤맨 지점이 아래 3번의 Encoding/Decoding 인증키 구분이었습니다 — 에러 메시지는 키가 등록되지 않았다고 나오는데, 실제 원인은 키 종류를 잘못 고른 것이었습니다. 같은 곳에서 시간을 버리지 않도록 트러블슈팅 섹션을 꼭 확인하세요.

수익화에 유용한 공공데이터 6대 분야 한눈에 보기 인포그래픽

1. 주요 공공데이터 종류 및 대표 Open API

공공데이터포털(data.go.kr)에서 다룰 수 있는 수천 가지 데이터 중, 서비스 개발이나 업무 자동화에 즉시 활용 가능한 핵심 분야 6가지입니다.

① 소상공인 상가(상권) 정보

  • 제공 내용: 전국 점포의 상호명, 업종 분류(대/중/소), 위경도 좌표, 건물 층수 및 상세 주소 데이터.
  • 실전 활용: 특정 반경 내 동일 업종 수 분석, 창업 입지 타당성 검토, 동네 상권 지도 서비스 제작.

② 부동산 및 주거 실거래가

  • 제공 내용: 국토교통부 아파트/단독주택/오피스텔 실제 계약된 매매 및 전월세 가격 정보.
  • 실전 활용: 실거래가 알림 서비스, 지역별 부동산 시세 추이 대시보드, 투자 데이터 분석.

③ 기상청 단기예보 & 대기오염 정보

  • 제공 내용: 격자 단위 동네별 예보(기온, 강수확률), 미세먼지(PM10/PM2.5) 실시간 측정치.
  • 실전 활용: 날씨 맞춤형 상품 추천(우산/음료 마케팅), 야외 활동 적합도 알림, 농업 컨트롤러.

④ 대중교통 및 실시간 이동 데이터

  • 제공 내용: 시도별 버스/지하철 실시간 위치 및 도착 예정 정보, 공영주차장 주차 잔여 대수.
  • 실전 활용: 출퇴근 최적 동선 안내, 내 주변 주차 가능 공간 실시간 안내 앱.

⑤ 관광공사 TourAPI (문화/축제)

  • 제공 내용: 전국 26만 건 이상의 관광지, 숙박, 음식점, 행사 정보 및 고화질 이미지 URL.
  • 실전 활용: 주말 여행 코스 추천 챗봇, 지역별 축제 통합 일정 안내 서비스.

⑥ 보건/의료 및 맞춤형 복지

  • 제공 내용: 야간/휴일 운영 병원 및 심야 약국 위치, 연령/소득별 정부 보조금·복지 혜택 조건.
  • 실전 활용: 당직 병원/약국 검색 서비스, 내게 맞는 보조금 자동 조회 툴.

2. [실전 코드] Python으로 상권 정보 API 호출 & 파싱하기

대표 예시로 소상공인시장진흥공단 상가(상권)정보 API의 '반경 내 상가업소 조회' 엔드포인트를 Python으로 요청하여 Pandas 데이터프레임 및 CSV 파일로 저장하는 완전한 실전 코드입니다.

import requests
import pandas as pd

def get_stores_in_radius(service_key: str, cx: float, cy: float, radius: int = 500, page_no: int = 1, num_of_rows: int = 100):
    """
    공공데이터포털 상가(상권)정보 API - 반경 내 상가업소 조회
    """
    url = "http://apis.data.go.kr/B553077/api/open/sdsc2/storeListInRadius"
    
    params = {
        'serviceKey': service_key,  # 인증키 (디코딩 키 사용)
        'pageNo': page_no,          # 페이지 번호
        'numOfRows': num_of_rows,    # 한 번에 불러올 건수
        'radius': radius,           # 검색 반경 (m)
        'cx': cx,                   # 경도 (Longitude)
        'cy': cy,                   # 위도 (Latitude)
        'type': 'json'              # 응답 포맷
    }
    
    try:
        response = requests.get(url, params=params, timeout=10)
        response.raise_for_status()
        
        data = response.json()
        header = data.get('header', {})
        
        if header.get('resultCode') == '00':
            body = data.get('body', {})
            items = body.get('items', [])
            total_count = body.get('totalCount', 0)
            
            print(f"✅ 조회 성공! (전체 {total_count}개 중 {len(items)}개 수신)")
            return pd.DataFrame(items)
        else:
            print(f"❌ API 오류: {header.get('resultMsg')}")
            return None

    except Exception as e:
        print(f"⚠️ 통신/파싱 에러: {e}")
        return None

# --- 실행부 ---
if __name__ == "__main__":
    # 발급받은 '디코딩' 인증키를 넣으세요
    MY_SERVICE_KEY = "YOUR_DECODED_SERVICE_KEY"
    
    # 강남역 사거리 기준 반경 500m
    df_stores = get_stores_in_radius(
        service_key=MY_SERVICE_KEY,
        cx=127.027621,
        cy=37.497942,
        radius=500
    )
    
    if df_stores is not None and not df_stores.empty:
        # 주요 컬럼 선정 및 한글 변경
        cols = {'bizesNm': '상호명', 'indsMclsNm': '중분류', 'rdnmAdr': '주소', 'flrNo': '층수'}
        result_df = df_stores[list(cols.keys())].rename(columns=cols)
        
        print(result_df.head())
        result_df.to_csv("gangnam_stores.csv", index=False, encoding="utf-8-sig")

3. API 연동 시 트러블슈팅 (가장 흔한 에러)

⚠️ SERVICE_KEY_IS_NOT_REGISTERED_ERROR 트러블슈팅

파이썬의 requests 라이브러리는 params 인자를 URL로 보낼 때 자동으로 인코딩(URL Encoding)을 진행합니다.
따라서 공공데이터포털 마이페이지에 제공되는 키 중 [인증키 (Decoding)] 버전을 코드에 대입해야 인코딩이 두 번 중복 적용되어 발생하는 인증 실패 에러를 막을 수 있습니다.

공공데이터 API 연동 3단계와 Decoding 인증키 주의사항 다이어그램

4. 공공데이터 + AI 연동 수익화 구조

구축 형태 시스템 구조 및 작동 방식
마이크로 SaaS 웹 앱 상권 API + 지도를 결합하여 특정 위치 기반 상권 세부 업종 구성 비율 시각화 도구 제공.
AI Agent / RAG 연동 LLM(Claude, ChatGPT)에 API 데이터를 연동하여 "강남역 카페 수 몇 개야?"에 실시간 수치로 자동 답변.
자동화 스케줄링 발행 매일 아침 날씨/미세먼지나 주말 지역 축제 데이터를 파이썬으로 자동 수집 후 블로그/SNS 자동 포스팅.

5. 공공데이터 API 활용 3단계 절차

  1. 공공데이터포털(data.go.kr) 회원가입: 본인 인증 후 원하는 데이터 검색 (파일 데이터가 아닌 Open API 항목 선택).
  2. 활용 신청: 간단한 웹/앱 개발 목적 작성 후 신청 (대부분 신청 즉시 승인됨).
  3. 인증키 연결: 마이페이지의 Decoding 인증키를 발급받아 위 파이썬 코드 또는 Claude Code/Cursor 같은 AI 개발 도구에 입력하여 실행.

참고 자료 (공식 출처)

🚀 지금 바로 나만의 데이터 프로젝트를 시작해 보세요!

파이썬 기초 코드 50 줄이면 11,000개가 넘는 정부 공공데이터를 원하는 대로 자유롭게 수집하고 다룰 수 있습니다.

댓글

이 블로그의 인기 게시물

말 대신 화면을 녹화하면 AI가 그대로 따라합니다: 클로드(Claude) 화면 녹화 스킬 & Chrome 연동 가이드

Claude Code 하나로 논문 작성부터 심사까지: academic-research-skills 완벽 가이드