Shioaji Pro
에이전트를 위한 거래 터미널: 코딩 에이전트가 전부 구축, UI 100% 오픈소스, 데스크톱에 AI 에이전트와 전문 주문 패널 내장
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
서울 매물을 호텔·오피스로 개발했을 때의 사업성(취득 Cap = NOI ÷ 총사업비)을 지도에 찾는 도구
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
서울 핵심 17개 구에 매물로 나온 빌딩·상가를, 지금 호가로 사서 허용 용적률만큼 호텔이나 오피스로 새로 지으면 사업성이 나오는지 한 화면에서 추정해 주는 도구입니다. 개발 부지를 찾는 실무자가 검토를 시작할 후보를 빠르게 좁히는 것을 목표로 만들었습니다. • 사업성 순위: 매물마다 취득 Cap(안정화 NOI ÷ 총사업비)을 계산해 높은 순으로 보여 줍니다. 지도 색도 같은 기준입니다. • 최적 용도: 같은 부지를 호텔과 오피스로 각각 시뮬레이션하고, 신축 가능한 용도지역에서 취득 Cap이 높은 쪽을 고릅니다. • 합필 검토: 필지 경계가 실제로 맞닿은 인접 매물을 묶어 합필 개발 시나리오를 함께 계산합니다. • DCF: 부지를 누르면 공사 → 안정화 → 매각 현금흐름으로 IRR, NPV, 회수기간을 보여 줍니다. • 가정값 조정: ADR, 점유율, NOC, 공사비, 매각 Cap 같은 가정을 바꾸면 전체 순위가 다시 계산됩니다.README 전문 보기 ↗
서울 핵심 17개 구에 매물로 나온 빌딩·상가를, 지금 호가로 사서 허용 용적률만큼 호텔이나 오피스로 새로 지으면 사업성이 나오는지 한 화면에서 추정해 주는 도구입니다. 개발 부지를 찾는 실무자가 검토를 시작할 후보를 빠르게 좁히는 것을 목표로 만들었습니다.
| 단계 | 호텔 | 오피스 |
|---|---|---|
| 개발 규모 | 대지 × 용도지역 최대 용적률(지상) + 대지 × 60%(지하) | 같음 |
| 등급·규모 | 연면적 1,500 / 3,000 / 7,000평 기준 3·4·5성급. 객실수는 객실당 연면적 약 35 / 54 / 89㎡ 기준 | 연면적 기준 소형·중형·중대형·대형 |
| 매출 | ADR × 점유율 × 365 × 객실수 + F&B | 전용면적(연면적 × 50%) × 권역별 NOC × 12 |
| NOI | GOP − 운영사 수수료(매출 2% + GOP 8%) − FF&E 3% − 재산세 | 임대수입 − 임대면적 × 운용비 3만원/평/월 × 12 |
| 총사업비 | 매입가 + 공사비 + 부대비 6% + 건설이자(LTV 60%, 2년) | 같음 |
| 취득 Cap | NOI ÷ 총사업비 | NOI ÷ 총사업비 |
config/default.yaml에 있고, 화면의 "시뮬 가정값"에서 바꿔 볼 수 있습니다.tests/test_simulation.py로 검증합니다.flowchart LR
A[매물 목록 수집<br/>bbox 자동 분할] --> B[서울 핵심 17개 구<br/>중복 제거]
B --> C[건축물대장·용도지역·PNU<br/>VWorld 지번 조회]
C --> D[호텔·오피스 시뮬<br/>인접 필지 합필]
D --> E[필지 경계<br/>VWorld WFS]
E --> F[공개용 데이터<br/>중개사 정보 제거]
F --> G[FastAPI]
G --> H[Next.js + Mapbox]
| 경로 | 역할 |
|---|---|
src/naver_crawler/ | 수집 → 필터 → 보강 → 시뮬 → 필지 → 내보내기 6단계 파이프라인 (python -m naver_crawler run) |
src/naver_crawler/transforms.py | 시뮬레이션 핵심 (compute_dev_metrics, select_use) |
src/naver_crawler/grouping.py | 인접 매물 묶기 (union-find) |
api/app/ | FastAPI — 용도·가정값별 재계산, 필지 인접성 검증(Shapely STRtree), DCF |
web/src/ | Next.js 16 + Mapbox GL — 순위, 지도, 상세, 가정값 조정 |
scripts/export_public.py | 배포용 데이터 생성 (중개사 정보 제거, 필드 최소화, gzip) |
vercel.json · server.py | Vercel Services 배포 (웹 + API 한 도메인) — DEPLOYMENT.md |
필요한 것: Python 3.12+, Node.js 22+, Mapbox 공개 토큰.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
uvicorn server:app --port 8000
cd web
cp .env.example .env.local # NEXT_PUBLIC_MAPBOX_TOKEN 입력
npm install
npm run dev
http://localhost:3000 에서 확인합니다. 저장소에 포함된 data/published/articles.json.gz로 바로 동작하며, 크롤링은 필요하지 않습니다.
데이터를 새로 만들려면 .env에 VWorld API 키를 넣고 파이프라인을 실행합니다.
pip install -e ".[crawler]"
python -m playwright install chrome
python -m naver_crawler run
python scripts/export_public.py
테스트:
python -m pytest
| 데이터 | 출처 |
|---|---|
| 매물 호가·면적 | 네이버부동산 공개 매물 (호가, 수집일 기준) |
| 용도지역·건축물 정보 | 건축물대장 (네이버부동산 경유), 국토교통부 VWorld |
| 필지 경계 | 국토교통부 VWorld WFS (연속지적도) |
| 자치구 경계 | southkorea/seoul-maps (통계청 2013) |
| 지하철 노선·역 | © OpenStreetMap contributors (ODbL) |
| 배경 지도 | © Mapbox © OpenStreetMap |
개인 포트폴리오 프로젝트입니다. 네이버와 제휴하지 않았고, 투자 판단의 근거로 쓰도록 만든 도구가 아닙니다.
허성민 · 부동산 개발 검토 · LinkedIn
MIT License