Front/Node.js

대한민국 공공데이터 포털 사용 가이드

oodada 2024. 11. 20. 13:42

대한민국 공공데이터 포털 사용 가이드

목차

  1. 회원가입 및 로그인
  2. API 키 발급
  3. 데이터 검색
  4. 활용신청
  5. 인기 API 예시
  6. Next.js 활용 예시
  7. 주의사항

1. 회원가입 및 로그인

  • https://www.data.go.kr 접속
  • 상단 회원가입 클릭
  • 일반회원 또는 기업회원으로 가입
  • 이메일 인증 완료

2. API 키 발급

  1. 로그인 후 마이페이지 접속
  2. "API 키 발급/관리" 메뉴 선택
  3. "일반 인증키" 또는 "서비스 인증키" 발급
  4. 인증키 발급 후 활성화까지 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 이슈 발생 시 프록시 서버 사용 검토
  • 일일 트래픽 제한 확인 필수
  • 데이터 업데이트 주기 확인
  • 에러 처리 로직 구현

활용

  • 서비스 활용 전 라이선스 확인
  • 적절한 에러 처리 구현
  • 캐싱 전략 수립
  • 사용량 모니터링

참고 링크

티스토리 친구하기