종합설계 프로젝트 - 1. 데이터 준비

Park·2023년 6월 11일
0

종합설계

목록 보기
2/3

프로젝트를 진행하기에 앞서서, 어떤 데이터가 필요한지 회의하고, 직접 가져올 수 있는 데이터를 검토한 후 최종 선정된 편의시설 종류는 다음과 같다
병원 약국, 세탁소, 미용실, 운동시설, 마트, 편의점, 카페, 지하철역, 버스정류장

1. 데이터 선행조건

  • 모든 데이터에는 위, 경도가 존재해야 한다.
  • 모든 데이터에는 상호명(지하철역 이름, 버스정류장 이름)이 존재해야 한다.
  • 각각의 업종은 모두 전국 단위의 데이터여야 한다

2. 필요 데이터 출처

  1. 전국 인허가 데이터 : 지방행정인허가데이터개방
  2. 서울시 버스 : 서울시 버스정류소 위치정보
  3. 전국 버스 : 국토교통부(TAGO)버스정류소정보
  4. 전국 지하철역 : KRIC레일포털

2.1 데이터 선별 이유

  • 웹 스크레이핑을 하지 않고 공공 API를 활용하여 데이터를 가져온 이유

    • 기관에서 데이터를 관리, 유지보수 하고 있기 때문(잘못된 데이터가 있으면 시정요청 가능)
    • 최신화된 데이터를 바로 받아오기 용이
    • 웹 스크레이핑을 할 경우 DOM이 변경된다면 이후에 데이터를 다시 받아올 때 데이터 수집 로직을 바꾸어야 하는 불편함이 존재 => 일시적으로 사용될 데이터에 한해 최소한으로 사용해야 할 것
  • 지방행정인허가데이터개방 사이트에서는 다양한 업종, 종류의 데이터를 가져오기 쉽다 => 차후 다른 업종을 추가할 시 확장성 용이

  • 두 개의 공공 API를 활용해서 버스 데이터를 수집하는 이유는 국토교통부 버스정류소정보에서는 서울 데이터를 지원하지 않음 => 서울과 전국 공공API 두 개를 활용 합치는 작업

    • 처음 찾았던 전국 버스정류장 csv데이터 : https://www.data.go.kr/data/15067528/fileData.do
    • 사용하지 않았던 이유 : 부정확한 데이터(모 버스정류장 데이터는 안양 데이터인데 서울에 존재하는 등 문제, 과거 데이터이기 때문에 데이터를 최신화시키기 부족해서 최종적으로는 사용하지 않음)
  • 지하철역 데이터 또한 좌표값이 있는 전국 지하철데이터를 사용해야 하기 때문에 전국 도시철도역사정보 데이터 사용


3. 데이터 성격

3.1 전국 인허가데이터

  • 상세 업종별로 추가적으로 지원하는 데이터(음식점 같은 경우는 한식, 중식점인지 등)가 있지만 공통적으로 제공하는 column은 다음과 같음 : API 가이드

  • 3개의 column(opnSfTeamCode, mgtNo, opnSvcId)을 조합해 다중 기본키(PK)를 만들어야 함

※ (문제)공식적으로 안내받은 좌표계를 그대로 사용하면 지도 위에 제대로 찍히지 않음

  • 공식적으로는 EPSG:2097좌표계를 사용한다고 하였으나(공지사항 참조), 실제로 업종별로 좌표값을 해당 좌표계를 통해 투영해 보면, 실제 위치로부터 몇백m 떨어진 것으로 파악된다(나만 그런 것이 아닌, 다른 분들도 비슷한 고충을 겪는 글이 QnA게시판에 많이 존재)

  • 지원하는 좌표계가 EPSG:5174가 맞는 것으로 보임

해결방법
- 시행착오를 가지고 데이터를 확인해보니 실제로는 보정된 중부원점(EPSG:5174) 좌표계를 사용하는 것으로 보임(나중에 재확인해 보니, 다른 분들도 EPSG:5174를 사용하는 것으로 밝혀짐)

EX) 포항 제니스 의원
1. EPSG:2097 좌표계 결과

2. EPSG:5174 좌표계 결과

3. 실제 좌표(구글맵)

3.2 서울시 버스정류소 데이터

  • 서울시 버스정류소 데이터도 API형태로 지원
  • 정류소번호, 정류소명, X좌표, Y좌표를 지원
  • X좌표(경도), Y좌표(위도)는 WGS84(EPSG:4326기준)를 지원

3.3 전국 버스정류소 데이터

  • 전국 버스정류소 데이터는 API 형태로 제공
  • 정류소번호, 정류소ID, 정류소명, X좌표, Y좌표를 지원
  • X좌표(경도), Y좌표(위도)는 WGS84(EPSG:4326기준)를 지원

3.4 전국 지하철역 데이터

  • 전국 역사별 정보를 확인할 수 있는 데이터며 API형태로 제공
  • 지하철역은 철도운영기관(서교공, 코레일 등)마다 다르게 주어지는 경우가 많은데, 해당 데이터는 국토교통부 산하에서 직접 제공하는 데이터로 전국 지하철 데이터를 통합적으로 이용할 수 있음
  • 노선 코드, 위도, 경도, 역이름등 뿐만 아니라 지번 혹은 도로명주소 등도 확인할 수 있음
  • 위, 경도 모두 WGS84(EPSG:4326기준)를 지원

4. 인허가데이터 구분

  • 인허가데이터는 다음과 같이 아래 서비스의 데이터들을 결합하여 8개 항목의 편의시설 데이터를 구축하였다.
  • 하나의 항목은 1개 이상의 서비스의 데이터로 구성되어 있음(ex.병원 항목은 인허가데이터에서 병원, 의원, 부속의료기관 서비스 데이터를 결합하여 사용)
  • 괄호 안은 서비스ID(ex. 병원 서비스의 ID는 01_01_01_P)

4.1 병원

  • 병원(01_01_01_P)
  • 의원(01_01_02_P)
  • 부속의료기관(01_01_03_P)

4.2. 약국

  • 약국(01_01_06_P)

4.3.세탁소

  • 세탁업(06_20_01_P)

4.4.미용실

  • 미용업(05_18_01_P)
  • 이용업(05_19_01_P)

4.5.운동

  • 종합체육시설업(10_37_01_P)
  • 체력단련장업(10_42_01_P)
  • 골프연습장, 골프장 : (10_31_02_P) / (10_31_01_P)
  • 당구장(10_32_01_P)

4.6.대형마트

  • 대규모점포(08_25_01_P) : 롯데마켓, 롯데슈퍼, GS프레시, 이케아 등 편의점보다 규모 큰 곳

4.7. 편의점

  • 담배소매업(11_43_02_P)

4.8. 카페

  • 휴게음식점(07_24_05_P)

※ (문제)편의점과 카페같은 경우는 해당 업종을 직접적으로 지원하지 않는 문제 발생

해결방법

  1. 편의점
  • 거의 모든 편의점이 담배를 판매하기에, 담배소매업(코드번호 : 11_43_02_P)에서 편의점을 추출해보자는 아이디어에서 착안하여 데이터를 구축
  • 추출 방식 : 편의점 매출 5위까지의 상호를 기준으로 추출 (CU, 세븐일레븐, GS25, 이마트24, 미니스톱)
  1. 카페
  • 인허가데이터 측에서는 커피 전문점(카페) 항목으로 별도로 신고하지 않는다고 함.
  • 일반적으로 카페는 ’휴게음식점’으로 신고하기 때문에 휴게음식점 데이터에서 추출하라고 안내받음
  • 추출 방식 : 카페는 ”카페”, ‘Coffee” 등 직접적으로 카페임을 들어내는 상호 및 23년 1월 프랜차이즈 순위 상위 20위에 드는 프랜차이즈 카페 상호명을 기반으로 추출
profile
안녕하세요!

0개의 댓글