6) 시스템 아키텍처

전체 구성

[공공데이터 API]                [정책자금 공고 API]        [뉴스 (빅카인즈·네이버)]
 상가정보·LOCALDATA              기업마당·중소벤처24          키워드 언급량·메타데이터
 상권분석·생활인구·실거래가       K-Startup
      │                              │                          │
      ▼                              ▼                          ▼
┌─────────────────────────────────────────────────────────────────┐
│  수집 파이프라인 (좌표계 변환 · 멱등 시드 · 증분 커서 · 오류 격리)   │
└──────────────────────────────┬──────────────────────────────────┘
                               ▼
┌─────────────────────────────────────────────────────────────────┐
│  백엔드 (FastAPI)                                                │
│  · 지표 산출: 행정동×업종별 성장률·폐업률·생존율 → GeoJSON API     │
│  · 구조화(Chunking) + 임베딩·인덱싱 → Hybrid RAG 검색             │
│  · 분석 에이전트: 전통/특이 변수 진단 + 근거 인용 응답             │
│  · 계산기: 월세 vs 매입 (실거래가 × 공시 금리)                    │
└──────────────────────────────┬──────────────────────────────────┘
                               ▼
┌─────────────────────────────────────────────────────────────────┐
│  프론트엔드 (Flutter)                                            │
│  지도(단계구분도·마커·상권 카드·슬라이더) · 에이전트 대화 · 계산기  │
│  + 브이월드 WMTS 배경지도 · WFS 행정동 경계                       │
└─────────────────────────────────────────────────────────────────┘

💡 쉽게 말하면: 아래에서 위로 물이 흐르는 정수장과 같습니다. 원수(공공데이터)를 받아 정수(수집·정리)하고, 물탱크(백엔드)에서 지표와 검색 자료로 가공한 뒤, 수도꼭지(Flutter 앱)로 사용자에게 내보냅니다.

브이월드의 역할 분담

브이월드는 지도·공간 레이어만 제공한다. 성장률·폐업률 지표는 우리가 LOCALDATA로 직접 산출해 얹는다.

기능 API 용도
배경지도 WMTS/XYZ 타일 지도 베이스
행정구역 경계 WFS (시군구·읍면동 폴리곤) 단계구분도 영역
지오코딩 Geocoder API 업소 주소 → 좌표 변환
검색 Search API 주소·지명 검색 진입점

API 키 발급 시 서비스 도메인 등록이 필요하고 무료 quota가 있다. 브이월드 WFS 응답이 무겁거나 quota가 부족하면 경계 폴리곤만 통계청 SGIS API로 대체할 수 있다(배경지도는 브이월드 유지).

설계 원칙

  • 업종 불가지론(agnostic): 파이프라인은 처음부터 특정 업종에 얽매이지 않게 구현한다. 업종코드와 지배변수 세트는 설정으로 분리한다. 업종 추가가 설정 추가만으로 끝나게 하기 위해서다.
  • Strategy 패턴 — if 업종 분기 금지: 업종 유형별 분석 로직은 조건문 분기 대신 Strategy 클래스로 분리한다. 카페(경쟁밀도)와 부동산(금리)은 변수 구조가 근본적으로 달라, 조건문으로 섞으면 유지보수가 무너진다.
  • 코어/확장 지표 분리: 전국 공통 데이터 기반 코어 지표와 서울 전용 확장 지표를 코드 레벨에서 분리한다. 지역 확장 시 코어 지표는 그대로 동작한다.
  • Fractal 11-File Set: 데이터 테이블 단위로 표준 파일 세트를 구성한다. 지표 집계 테이블도 각각 하나의 세트가 된다.
  • ERD 노드-엣지 규칙: 테이블 관계는 노드-엣지 규칙대로 설계한다. 예: 학원 테이블과 교습과정 테이블의 1:N 연결.

팀 BeyondFacade — Metabole 상권 데이터 구조화 및 창업 분석 프로젝트. 본 사이트는 개발 문서 자료입니다.

This site uses Just the Docs, a documentation theme for Jekyll.