종합부동산웹앱 AI 분석 워크벤치 후보 근거 문서 연결 구현
질의 원문
계속 진행해
수집 경로와 시점
- 수집·구현시점: 2026-08-12 15:11:19 +09:00
- 확인 경로: 로컬 저장소
src/realestate/webapp/watchlist.py,src/realestate/webapp/app.py,src/realestate/webapp/static/app.js - 직전 맥락: AI 분석 워크벤치가 실행 후보를 워치리스트에 등록할 수 있게 되었으나, 저장된 분석 문서와 후보 사이의
source_doc_id연결이 후속 흐름으로 남아 있었다.
데이터 등급
| 항목 | 등급 | 비고 |
|---|---|---|
| 사용자 지시 | 1차 사용자 입력 | 본 대화에서 직접 제공 |
| 구현 코드 | 로컬 코드 원본 | 워치리스트 update API의 source_doc_id 갱신, 저장 record 기반 JS 연결 |
| 테스트 데이터 | 테스트 대역 | 임시 docs/analysis 문서와 워치리스트 후보로 연결 계약 검증 |
| 실제 투자 후보 값 | 미수집 | 이번 단계는 문서·후보 연결 흐름 구현이며 투자 판단 수치 수집은 없음 |
구현 내용
WatchlistStore.update_item()이 source_doc_id 갱신을 받을 수 있게 했다. 기존 /api/watchlist/{item_id} update API도 source_doc_id를 전달하도록 확장했다.
프론트엔드는 /api/tools/save-analysis 응답의 record.filename에서 문서 id를 파생해 lastSavedAnalysisRecord로 보관한다. 사용자가 분석 문서를 저장한 뒤 후보를 워치리스트에 등록하면 해당 후보 payload에 source_doc_id가 자동 포함된다.
사용자가 후보를 먼저 등록한 뒤 분석 문서를 저장하는 경우도 보완했다. 등록된 AI 실행 후보 id를 기억해두었다가 분석 저장 성공 후 /api/watchlist/{item_id}로 source_doc_id를 갱신한다.
가정
save_analysis_record()가 만든 filename의.md제거값을 웹앱 문서 id로 사용한다.- 후보와 분석 문서 연결은 근거 추적을 위한 메타데이터이며, 후보의 가격·권리·원문 확인 상태를 확정하지 않는다.
- 저장된 분석 문서가 현황판에 반영된 뒤 워치리스트 후보가 해당 문서를 근거 링크로 사용할 수 있어야 한다.
한계·미확인
- 기존에 오래전에 등록된 후보를 자동으로 역추적해 문서와 매칭하지는 않는다.
- 후보가 여러 분석 문서의 근거를 가질 수 있는 다중 링크 구조는 아직 없다.
- 저장 후 후보 연결 API 호출이 실패하면 브라우저 상태 메시지로 실패를 알리는 수준이며, 별도 재시도 큐는 없다.
검증
- RED:
$env:PYTHONPATH='src'; python -m pytest tests/test_webapp_watchlist.py::test_watchlist_api_can_link_existing_candidate_to_source_doc -q-> 1 failed - GREEN:
$env:PYTHONPATH='src'; python -m pytest tests/test_webapp_watchlist.py::test_watchlist_api_can_link_existing_candidate_to_source_doc -q-> 1 passed - RED:
$env:PYTHONPATH='src'; python -m pytest tests/test_webapp_app.py::test_static_js_links_analyst_candidates_to_saved_analysis_record -q-> 1 failed - GREEN:
$env:PYTHONPATH='src'; python -m pytest tests/test_webapp_app.py::test_static_js_links_analyst_candidates_to_saved_analysis_record tests/test_webapp_watchlist.py::test_watchlist_api_can_link_existing_candidate_to_source_doc -q-> 2 passed - Focused:
$env:PYTHONPATH='src'; python -m pytest tests/test_webapp_app.py tests/test_webapp_watchlist.py tests/test_webapp_analyst.py tests/test_webapp_metric_collector.py -q-> 91 passed - JS 문법:
node --check src/realestate/webapp/static/app.js-> 통과
다음 단계
- 국토부 실거래와 건축물대장 실행에 필요한 추가 식별자 입력 구조를 별도 설계한다.
- 원천 실행 결과를 투자안 카드형 요약으로 재구성해 후보 비교 화면에서 바로 활용한다.
- 다중 근거 문서가 필요한 후보는 별도 관계 테이블 또는
source_doc_ids구조로 확장한다.