바로 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", // 변경일자
},
...
]
댓글 없음:
댓글 쓰기