종합부동산웹앱 투자 후보 워치리스트 구현
질의 원문
다음 단계 계속 진행해.
수집시점
- 작성시점: 2026-08-10 KST
- 작업 위치:
.worktrees/real-assets-investment-app - 성격: 종합 부동산 투자분석 웹앱의 다음 단계 구현 기록
데이터 등급
- 내부 구현 기록: 프로젝트 소스·테스트·로컬 문서 기준 A
- 외부 부동산 원본 데이터: 사용하지 않음
- 투자 판단 수치: 새로 산정하지 않음
가정
- 초기 단계에서는 별도 DB보다 기존 파이프라인 저장소와 같은 JSON 파일 저장 방식이 빠른 검증에 적합하다고 봤다.
- 워치리스트는 실제 매수 결정을 자동화하는 장치가 아니라, 분석 문서에서 실행 후보를 추적하는 작업대 역할로 둔다.
구현 의도
기존 웹앱은 분석 문서, 하위 현황판, 실행 준비 도구, 파이프라인 칸반, HTML 리포트 내보내기까지 갖췄다. 다음 단계에서는 분석 결과를 실제 투자 실행 후보로 옮겨 담는 별도 상태 저장 공간이 필요했다.
따라서 이번 단계는 투자 후보 워치리스트로 정했다. 중계주공6단지, 방학신동아1단지, 경매 물건, 해외 부동산 후보처럼 서로 다른 유형의 기회를 한 화면에서 이름·지역·유형·목표 진입가·점수·상태·근거 문서로 추적한다.
구현 범위
data/webapp_watchlist.json파일 기반 저장소- 워치리스트 상태:
watch,researching,price_wait,entry_review,hold,excluded - API
GET /api/watchlistPOST /api/watchlistPOST /api/watchlist/{item_id}- 화면
GET /watchlist- 후보 추가 폼
- 후보 카드 목록
- 상태 변경 셀렉트
- 홈 화면 워치리스트 링크 및 상태 요약
판단 기준
DB를 바로 붙이지 않고 기존 PipelineStore와 같은 JSON 저장 방식을 사용했다. 이유는 현재 단계의 핵심이 외부 데이터 확장이 아니라 분석 결과를 실행 후보로 구조화하는 것이기 때문이다. 이후 매물 수집기, 경매 수집기, 대출/자금계획 엔진과 연결할 때 이 워치리스트가 중심 테이블 역할을 하도록 확장할 수 있다.
다음 연결 지점
- 문서 상세 화면에서 현재 분석 문서를 워치리스트 후보로 바로 등록
- 워치리스트 후보별 자금계획·분담금·경매 권리분석 결과 연결
- 목표가 도달, 급매 출현, 분담금표 공개 같은 이벤트 체크리스트 추가
- 국내·해외 후보를 동일 구조로 담되 국가·통화·세금 필드를 별도 확장
- 장기적으로
data/webapp_watchlist.json을 SQLite 또는 Postgres 테이블로 승격
검증
python -m pytest tests/test_webapp_watchlist.py -qpython -m pytest tests/test_webapp_app.py::test_webapp_homepage_links_to_watchlist -qpython -m pytest tests/test_webapp_app.py tests/test_webapp_records.py tests/test_webapp_pipeline.py tests/test_webapp_tools.py tests/test_webapp_watchlist.py -q
한계
- 아직 후보 삭제 기능은 없다.
- 후보와 분석 문서의 연결은 수동 선택이다.
- 목표가 알림, 실거래/호가 자동 감시, 금융 조건 자동 재계산은 다음 단계 작업이다.
원문 Markdown: docs/analysis/2026-08-10-종합부동산웹앱-투자후보-워치리스트-구현.md