공공데이터포털과 고캠핑 API로 야영지 데이터를 직접 수집하는 방법. API 키 발급부터 데이터 파싱, 야영지 데이터베이스 구축 실전 가이드.
왜 공공데이터로 야영지를 직접 수집하나
기존 야영지 앱이나 사이트의 정보는 특정 업체 제휴 야영장 위주로 편향되는 경우가 있다. 공공데이터는 지자체 신고 기준으로 모든 등록 야영장을 포함하기 때문에, 앱에 없는 공공·무료 야영지 정보를 더 완전하게 얻을 수 있다.
주요 공공 야영지 데이터 소스
소스 1: 한국관광공사 고캠핑 API
제공 기관: 한국관광공사 API 유형: REST API (JSON) 접근 방법: data.go.kr → '한국관광공사 고캠핑정보 서비스' 검색 → API 키 신청 주요 제공 데이터:
- 야영장 기본 정보 (이름, 주소, 전화, 좌표)
- 야영 사이트 수, 유형
- 시설 정보 (화장실, 샤워, 취사)
- 입지 구분 (해변/산/계곡/강/호수)
- 주요 사진 URL
`
GET https://apis.data.go.kr/B551011/GoCamping/basedList
?serviceKey={API_KEY}
&pageNo=1
&numOfRows=100
&MobileOS=ETC
&MobileApp=CampSearch
&_type=json
`소스 2: 전국야영장 표준데이터 (data.go.kr)
제공 기관: 행정안전부 형식: CSV/JSON 정기 업데이트 접근 방법: data.go.kr → '전국야영장 표준데이터' 검색 → CSV 다운로드 특징: 고캠핑보다 더 많은 야영장 포함 (지자체 신고 기준)
API 데이터 수집 절차
1단계: API 키 발급
- data.go.kr 회원가입
- '고캠핑정보 서비스' 검색 → '활용 신청'
- 신청 완료 후 1~2 영업일 내 API 키 발급
2단계: 전체 야영장 목록 수집
`python
import requests
import json
API_KEY = 'YOUR_API_KEY'
base_url = 'https://apis.data.go.kr/B551011/GoCamping/basedList'
params = {
'serviceKey': API_KEY,
'pageNo': 1,
'numOfRows': 100,
'MobileOS': 'ETC',
'MobileApp': 'CampApp',
'_type': 'json'
}
response = requests.get(base_url, params=params)
data = response.json()
total_count = data['response']['body']['totalCount']
`3단계: 페이징 처리
총 야영장 수(totalCount)를 확인 후 100개씩 페이지를 나눠 전체 수집:
`python
total_pages = (total_count // 100) + 1
all_camps = []
for page in range(1, total_pages + 1):
params['pageNo'] = page
response = requests.get(base_url, params=params)
items = response.json()['response']['body']['items']['item']
all_camps.extend(items)
`4단계: 데이터 정제
위도·경도 누락, 한글 인코딩, 중복 제거 처리:
`python
좌표가 있는 야영장만 필터링
valid_camps = [
camp for camp in all_camps
if camp.get('mapX') and camp.get('mapY')
]
`데이터 활용 방법
수집한 야영지 데이터를 활용하는 방법:
- 지도 시각화: 좌표 기반 카카오맵·네이버맵 마커 표시
- 조건 검색: 요금·시설·지역 기준 필터링
- 적합도 계산: 공공·무료·차박 여부 기반 점수 부여
- 경로 최적화: 출발지 기준 근거리 야영지 정렬
캠핑고고(campgogo.kr)는 이 방법으로 수집한 8,000여 개 야영지 데이터를 기반으로 운영된다.