대한민국 공공데이터 포털 사용 가이드
목차
- 회원가입 및 로그인
- API 키 발급
- 데이터 검색
- 활용신청
- 인기 API 예시
- Next.js 활용 예시
- 주의사항
1. 회원가입 및 로그인
2. API 키 발급
- 로그인 후 마이페이지 접속
- "API 키 발급/관리" 메뉴 선택
- "일반 인증키" 또는 "서비스 인증키" 발급
- 인증키 발급 후 활성화까지 1-2시간 소요될 수 있음
3. 데이터 검색
방법 1: 검색창 이용
- 상단 검색창에 키워드 입력
- 'OpenAPI' 항목 체크하여 검색
- 필터 기능을 통해 원하는 조건으로 검색 가능
방법 2: 카테고리 이용
- 분류별 검색
- 주제별, 기관별 등 원하는 카테고리 선택
- 새로운 데이터 추천 서비스 활용
4. 활용신청
// 기본 API 호출 구조
const API_KEY = '발급받은_인증키';
const url = `http://api.data.go.kr/...?serviceKey=${API_KEY}`;
// 데이터 가져오기 기본 함수
async function fetchData() {
try {
const response = await fetch(url);
const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
}
}
5. 인기 API 예시
기상청 날씨 API
const WEATHER_API = `http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst?serviceKey=${API_KEY}&numOfRows=10&pageNo=1&base_date=20240320&base_time=0600&nx=55&ny=127`;
대중교통 API
const BUS_API = `http://ws.bus.go.kr/api/rest/buspos/getBusPosByRtid?serviceKey=${API_KEY}&busRouteId=100100118`;
미세먼지 API
const DUST_API = `http://apis.data.go.kr/B552584/ArpltnInforInqireSvc/getCtprvnRltmMesureDnsty?serviceKey=${API_KEY}&returnType=json&numOfRows=100&pageNo=1&sidoName=서울&ver=1.0`;
6. Next.js 활용 예시
"use client"
import { useEffect, useState } from 'react';
export default function DataPage() {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
const API_KEY = process.env.NEXT_PUBLIC_DATA_API_KEY;
const url = `http://apis.data.go.kr/...?serviceKey=${API_KEY}`;
async function fetchData() {
try {
setLoading(true);
const response = await fetch(url);
const result = await response.json();
setData(result);
} catch (error) {
console.error('Error:', error);
} finally {
setLoading(false);
}
}
fetchData();
}, []);
if (loading) return <div>로딩중...</div>;
if (!data) return <div>데이터가 없습니다</div>;
return (
<div>
<h1>공공데이터 결과</h1>
{/* 데이터 표시 로직 */}
</div>
);
}
7. 주의사항
보안
- API 키는 반드시 .env 파일에 보관
- .env 파일은 .gitignore에 추가하여 보호
- 공개 저장소에 API 키 노출 주의
기술적 고려사항
- CORS 이슈 발생 시 프록시 서버 사용 검토
- 일일 트래픽 제한 확인 필수
- 데이터 업데이트 주기 확인
- 에러 처리 로직 구현
활용
- 서비스 활용 전 라이선스 확인
- 적절한 에러 처리 구현
- 캐싱 전략 수립
- 사용량 모니터링
참고 링크