기술블로그-Fastapi편

📅 공공데이터포털 공휴일 API 사용법 총정리

Chansman 2025. 5. 26. 10:46

📅 공공데이터포털 공휴일 API 사용법 총정리


1️⃣ 공공데이터포털 공휴일 API란?

**공공데이터포털(https://www.data.go.kr)**에서는 연도별 대한민국의 공휴일 정보를 제공하는 API를 지원합니다.

✔️ 주요 제공 정보:

  • 공휴일 명칭 (예: 설날, 추석)
  • 날짜 (예: 2025-09-29)
  • 양력/음력 여부
  • 대체공휴일 여부 등

이 API는 예약 시스템, 캘린더 앱, 학교 일정 관리 등에 매우 유용합니다.


2️⃣ 사용 절차 요약

Step 1. 회원가입 및 인증키 발급

  • 공공데이터포털 회원가입
  • 공휴일, 특일 정보 등 검색 후 "활용 신청"
  • 신청 완료 후 인증키(API Key) 발급 받기

Step 2. API 문서 확인 및 URL 구성


3️⃣ 응답 형식 예시 (XML)

<item>
  <dateName>삼일절</dateName>
  <locdate>20250301</locdate>
  <isHoliday>true</isHoliday>
</item>
  • dateName: 공휴일 이름
  • locdate: 날짜 (YYYYMMDD)
  • isHoliday: 실제 공휴일 여부

4️⃣ Python으로 연동하는 방법

import requests
from xml.etree import ElementTree

url = "https://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo"
params = {
    'serviceKey': '당신의_인증키',
    'solYear': '2025',
    'numOfRows': '100'
}

response = requests.get(url, params=params)
tree = ElementTree.fromstring(response.content)

for item in tree.iter('item'):
    name = item.find('dateName').text
    date = item.find('locdate').text
    print(f"{name}: {date}")

5️⃣ 실무 활용 팁 💡

  • 날짜(locdate)는 datetime.strptime 등으로 파싱하면 편리함
  • 대체공휴일을 고려한 예약 로직에 적용 가능
  • JSON 응답이 필요한 경우, JSON 지원 API로 별도 요청 가능

⚠️ 주의사항

  • 하루 호출 횟수 제한 있음 (보통 1,000회/일)
  • 인증키는 노출 금지! .env 등으로 안전하게 관리
  • 데이터 출처는 한국천문연구원, 신뢰도 매우 높음

🎯 요약

공공데이터포털의 공휴일 API는 FastAPI, Django, Flask 등 모든 백엔드 프로젝트에서 활용 가능하며, 공식 연휴 데이터를 쉽게 연동할 수 있는 강력한 도구입니다.

캘린더 기반 기능이 필요하다면 반드시 활용해보세요!