핸드오프 — VWorld 벌크→로컬 온톨로지 전환

report sent · 12분 읽기 · 5587자

작성자 claude-code 시각 2026-07-02 23:22 KST 프로젝트 clean-veteran 수신 jadong
📥 MD 📥 PDF

핸드오프 — VWorld 벌크 → 로컬 온톨로지(kontology) 전환 트랙

이 문서 하나로 병렬 세션이 바로 개발 시작 가능. 프론트(web-console) 트랙과 분리된 데이터/온톨로지 트랙 전용. 작성: 2026-07-02 · 머신: kontology(vhagar) · 리포: /home/tlswk/projects/clean-veteran · 브랜치: feat/onboard-landing

0. 이 트랙의 미션 (한 줄)

지금 도구들이 라이브 API(VWorld API·HIRA API·Kakao)로 데이터를 만드는데, 이걸 kontology에 다 받아둔 자체 데이터(VWorld 벌크 미러 + 건물 SHP)에서 만들도록 전환한다. = "우리 온톨로지에서 받게."

1. 지금 뭐가 API 기반인가 (전환 대상)

데이터 생성 파이프라인(data/hospitals/*.py)이 API 의존:

프론트(web-console/)는 이미 로컬 map_data.js만 읽음(API 무관). 문제는 그 map_data.js를 만드는 데이터 단계.

2. 이미 받아둔 자산 (kontology 로컬)

3. 스크립트 인벤토리 (data/hospitals/)

init_db.py(스키마+시드) · load_hira.py(HIRA 적재) · load_suppliers.py(숨고 적재) · geocode_suppliers.py(Kakao 지오코딩) · score_demand.py(tenure/score) · estimate_area.py(종별평균 면적 v0) · build_area.py(건축HUB API 면적, 미작동) · build_area_vworld.py(VWorld API 면적, 현행) · export_map.py(→web-console/map_data.js 생성). 스크래치패드: vworld_dl.py(건물 시도 다운로드) · vworld_catalog.py(카탈로그 열거) · vworld_mirror_all.py(전체 미러).

4. 할 일 (우선순위)

T-A (최우선): 건물 SHP → 병원 실연면적 로컬 조인 (API 대체)

목표: estimated_pyeong을 VWorld API 추정 → SHP 실연면적으로 교체. 결과 → export_map.py 재실행 → map_data.js 갱신 → 프론트 자동 반영.

  1. 컬럼 매핑 확정: buildboss 문서(§5) 또는 컬럼정의서로 A0~A28 실명 확인, 연면적 컬럼 특정.
  2. SHP 전 시도 압축해제 + 공간 인덱스: pyshp(순수파이썬, 설치됨) 또는 geopandas(GDAL 필요, PEP668 주의). 시도별로 처리(서울 695k 등, 전국 수백만 폴리곤).
  3. 공간조인: 병원 좌표(DB lat/lng) → 포함 건물 폴리곤 → 그 건물 연면적. 그리드/rtree 인덱스로 점-in-폴리곤. (대안: SHP DBF의 PNU/주소로 매칭 — 병원 PNU는 Kakao b_code로 이미 도출 가능)
  4. DB 갱신: estimated_pyeong=연면적/3.3058, area_source='building_shp'. 실패분은 종별평균 유지.
  5. python3 export_map.py → map_data.js 갱신. ⚠️ 혼합건물 과대추정 주의: 의원이 상가 입주면 건물 전체 연면적이 나옴. 종별 캡(병원급 §build_area_vworld.py의 CAP 참고) 또는 전유면적 처리 검토.

T-B: VWorld 미러 완주 + 정리

T-C: 도구가 로컬 데이터 읽게 (API 완전 이탈)

T-D (선택): kontology 온톨로지 적재

5. 키·도구·참고

6. ⚠️ 트랙 충돌 방지 (중요)

7. 시작하는 법 (병렬 세션)

  1. 이 문서 읽기.
  2. docs/superpowers/specs/2026-07-02-cv-market-console-design.md(§11 팔란티어 맥락)·docs/superpowers/plans/2026-07-02-cv-market-console.md(전체 그림) 참고.
  3. .superpowers/sdd/progress.md에서 프론트 P0 완료 상태 확인(중복 금지).
  4. T-A(건물 SHP 실연면적)부터: buildboss 문서로 컬럼 확정 → 서울 SHP로 공간조인 스모크 → 전국 확장.
  5. 라이브 결과 확인: `export

[full: /home/tlswk/projects/clean-veteran/docs/HANDOFF-vworld-local-data-20260702.md]