[컴] 소상공인시장진흥공단 api 사용, 공공데이터 api

바로 api 사용 / 오픈 api / 공공 데이터 사용 / 공공 api / api 공공 /

소상공인시장진흥공단 api 사용

이 api 의 사용은 local 에 db 를 쌓아서 사용해야 할 듯 하다.

행정동 단위 상가업소 조회 로 특정지역의 모든 ‘상가업소’ 정보를 가져와서 DB에 쌓고, 주기적으로 수정일자기준 상가업소 조회 를 통해 update 된 내역을 반영하면 될 듯 하다.

행정동 단위 상가업소 조회

nodejs code, request format

아래는 "행정동 단위 상가업소 조회 api" 를 통해서  ‘서울특별시’ 에 있는 상가업소를 얻는 방법이다.

servicekey 는 ‘공공데이터포털’ 에 가입해서 얻을 수 있다.(ref. 1 참고)

const host = 'http://apis.data.go.kr/B553077/api/open/sdsc/baroApi';
const url = host;
const servicekey = 'wfdjfkdlsjgkjdkjalhkljreljlkejglk%234jffjlk';

try {
  const response = await axios.get(url, {
    params: {
      resId : 'store',
      catId : 'dong',
      divId : 'ctprvnCd', // 시도: ctprvnCd, 시군구: signguCd, 행정동: adongCd
      key : '11', // 행정구역코드, 서울특별시 시도코드값
      pageNo : 1,
      type : 'json',
      serviceKey : decodeURIComponent(servicekey),
    }
  })

  console.log(JSON.stringify(response.data))
}
catch (e) {
  console.log(e);
}

TPS(transaction per second)

초당 최대 트랜젝션이 '30 tps' 로 되어 있다. 서울지역 소상공인 수가 대략 360,000 정도(2020-12-09 기준)인데, 한번에 최대 1,00개(한번에 한 페이지)를 가져오니, 1초에 3000개의 상점정보를 가져올 듯 하다. 
 
대략 계산하면 120초 이상 프로그램이 동작하면 될 듯도 하다. 하지만 실제로는 data 를 저장하는 시간도 있고, 네트워크 속도등도 있으니 훨씬 더 걸릴 수 있다. local pc 로 db 에 insert 하는 프로그램을 돌렸는데 대략 45분정도 걸렸다.

행정구역코드 얻기

parameter key 에 행정구역코드 를 사용하면 된다.

행정구역코드를 얻는 방법은 ref.2 에서 ‘행정동 코드 엑셀 장표’를 얻으면 그 안에 ’법정동코드 연계 자료분석용’ tab 에서 확인할 수 있다.

response format

{
    "header": {
        "description": "소상공인시장진흥공단 행정동별 상가업소정보",
        "columns": [
            "상가업소번호",
            "상호명",
            "지점명",
            "상권업종대분류코드",
            "상권업종대분류명",
            "상권업종중분류코드",
            "상권업종중분류명",
            "상권업종소분류코드",
            "상권업종소분류명",
            "표준산업분류코드",
            "표준산업분류명",
            "시도코드",
            "시도명",
            "시군구코드",
            "시군구명",
            "행정동코드",
            "행정동명",
            "법정동코드",
            "법정동명",
            "PNU코드",
            "대지구분코드",
            "대지구분명",
            "지번본번지",
            "지번부번지",
            "지번주소",
            "도로명코드",
            "도로명",
            "건물본번지",
            "건물부번지",
            "건물관리번호",
            "건물명",
            "도로명주소",
            "구우편번호",
            "신우편번호",
            "동정보",
            "층정보",
            "호정보",
            "경도",
            "위도"
        ],
        "stdrYm": "202009", // 최종update 날짜로 보면 된다. 대략 분기 data 를 제공하는 듯 하다.
        "resultCode": "00",
        "resultMsg": "NORMAL SERVICE"
    },
    "body": {
        "items": [
            {
                "bizesId": "10001594",
                "bizesNm": "이자까야류",
                "brchNm": "",
                "indsLclsCd": "Q",
                "indsLclsNm": "음식",
                "indsMclsCd": "Q09",
                "indsMclsNm": "유흥주점",
                "indsSclsCd": "Q09A01",
                "indsSclsNm": "호프/맥주",
                "ksicCd": "I56219",
                "ksicNm": "기타 주점업",
                "ctprvnCd": "11",
                "ctprvnNm": "서울특별시",
                "signguCd": "11680",
                "signguNm": "강남구",
                "adongCd": "1168052100",
                "adongNm": "논현1동",
                "ldongCd": "1168010800",
                "ldongNm": "논현동",
                "lnoCd": "1168052100200040010",
                "plotSctCd": "1",
                "plotSctNm": "대지",
                "lnoMnno": 4,
                "lnoSlno": 10,
                "lnoAdr": "서울특별시 강남구 논현동 4-10",
                "rdnmCd": "116804166306",
                "rdnm": "서울특별시 강남구 도산대로8길",
                "bldMnno": 9,
                "bldSlno": "",
                "bldMngNo": "1168010800100040010006184",
                "bldNm": "",
                "rdnmAdr": "서울특별시 강남구 도산대로8길 9",
                "oldZipcd": "135010",
                "newZipcd": "06039",
                "dongNo": "",
                "flrNo": "1",
                "hoNo": "",
                "lon": 127.022272218413,
                "lat": 37.5163956010583
            },
            ...
        ],
        "numOfRows": 20,
        "pageNo": 1,
        "totalCount": 367534
    }
}

수정일자기준 상가업소 조회(storeListByDate)

- http://apis.data.go.kr/B553077/api/open/sdsc/storeListByDate?key=20151202&ServiceKey=서비스인증키 
- http://apis.data.go.kr/B553077/api/open/sdsc/baroApi?resId=store&catId=date&key=20151202&ServiceKey=서비스인증키
// response.data.body.items
// 
[
  {
    bizesId: "12059743",
    bizesNm: "옛날통닭",
    brchNm: "",
    indsLclsCd: "Q",
    indsLclsNm: "음식",
    indsMclsCd: "Q05",
    indsMclsNm: "닭/오리요리",
    indsSclsCd: "Q05A08",
    indsSclsNm: "후라이드/양념치킨",
    ksicCd: "I56193",
    ksicNm: "치킨 전문점",
    ctprvnCd: "44",
    ctprvnNm: "충청남도",
    signguCd: "44270",
    signguNm: "당진시",
    adongCd: "4427025000",
    adongNm: "합덕읍",
    ldongCd: "4427025021",
    ldongNm: "합덕읍",
    lnoCd: "4427025021202560189",
    plotSctCd: "1",
    plotSctNm: "대지",
    lnoMnno: 256,
    lnoSlno: 189,
    lnoAdr: "충청남도 당진시 합덕읍 운산리 256-189",
    rdnmCd: "442703265111",
    rdnm: "충청남도 당진시 합덕읍 합덕시장로",
    bldMnno: 164,
    bldSlno: "",
    bldMngNo: "4483025321102560189081158",
    bldNm: "천원마트",
    rdnmAdr: "충청남도 당진시 합덕읍 합덕시장로 164",
    oldZipcd: "343907",
    newZipcd: "31812",
    dongNo: "",
    flrNo: "1",
    hoNo: "",
    lon: 126.773859060618,
    lat: 36.8077628645163,
    chgGb: "U", // 변경구분 : 해당 상가업소정보의 데이터 변경 구분값 (생성:C, 수정:U, 삭제:D 중1)
    chgDt: "20200901", // 변경일자
  },
  ...
]

References

  1. 소상공인시장진흥공단_상가(상권)정보 | 개발계정 상세보기 | 공공데이터포털
  2. 법정동 코드 조회 & 행정동 코드 조회

댓글 없음:

댓글 쓰기