기술블로그-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 구성
- 기본 URL:
- https://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo
- 필수 파라미터:파라미터 설명
serviceKey 발급받은 인증키 (인코딩 필요) solYear 공휴일을 조회할 연도 numOfRows 한 페이지당 항목 수 pageNo 페이지 번호 - 전체 요청 예시:
- https://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo?serviceKey=인증키&solYear=2025&numOfRows=100
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 등 모든 백엔드 프로젝트에서 활용 가능하며, 공식 연휴 데이터를 쉽게 연동할 수 있는 강력한 도구입니다.
캘린더 기반 기능이 필요하다면 반드시 활용해보세요!