종합부동산웹앱 워치리스트·파이프라인 통합 구현
질의 원문
다음 작업 진행해줘
다음 작업 진행해줘.
진행해줘.
A안에서 C안으로 진행되는 거야? 내용상으로 보면 C안이 맞아 보이는데?
오케이 좋아.
실행방식의 장단점을 비교해주고 너의 의견은?
1번으로 진행해줘.
1번으로 계속 진행
수집 경로와 시점
- 작성 시점: 2026-08-11 03:26 KST
- 작업 위치:
D:\03.Dev\Projects\11.real_assets\.worktrees\real-assets-investment-app - 확인 경로: 로컬 저장소 소스·테스트·계획 문서, Subagent-Driven Development 리뷰 결과
- 기준 계획:
docs/plans/2026-08-10-watchlist-pipeline-integration.md - 기준 커밋:
b23a65f docs: plan watchlist pipeline integration
데이터 등급
- 내부 구현 기록: A — 로컬 소스, 테스트, 커밋, 리뷰 결과로 확인
- 검증 결과: A —
pytest,node --check,git diff --check실행 결과 기준 - 외부 부동산 원본 데이터: 사용하지 않음
- 투자 판단·시세·권리관계 데이터: 새로 수집하지 않음
가정
- 사용자가 말한 C안은 워치리스트와 파이프라인을 연결하는 실행 흐름 통합을 뜻한다고 해석했다.
- 사용자가 선택한 1번은 현재 세션에서 Subagent-Driven Development로 진행하는 방식을 뜻한다고 보았다.
WatchlistStore는 후보의 진실 소스,PipelineStore는 분석 문서별 검토 단계의 진실 소스로 유지한다.- 워치리스트 후보와 파이프라인 항목의 연결키는 기존 분석 문서 ID인
source_doc_id다. - 이번 단계는 파일 기반 JSON 저장 구조를 유지하고, DB 전환·알림·실시간 가격 감시는 범위 밖으로 둔다.
구현 결과
- 워치리스트 API가 후보별 파이프라인 상태를 함께 반환하도록 했다.
- 워치리스트 후보에서 연결된 분석 문서의 파이프라인 상태를 직접 변경할 수 있게 했다.
- 워치리스트 화면에 파이프라인 상태 표시·변경 컨트롤과 문서 없음/미연결 상태를 분리해 표시했다.
- 파이프라인 칸반 보드에서 해당 분석 문서와 연결된 워치리스트 후보 수를 작은 신호로 표시했다.
- 워치리스트 화면에 상태 필터, 파이프라인 필터, 검색, 정렬, 후보 비교 패널을 추가했다.
- 파이프라인 업데이트 payload, 우선순위 0 보존, 잘못된 JSON, missing source doc 같은 경계조건을 보강했다.
- 최종 리뷰에서 발견된 깨진
webapp_pipeline.json덮어쓰기 위험을 고쳐, 파이프라인 상태 파일도 워치리스트처럼.bak보존 후 fail-closed 하도록 했다.
주요 커밋
885189b feat: expose watchlist pipeline statusd282542 feat: update pipeline from watchliste2e90a2 feat: show pipeline status on watchlist667b972 feat: show watchlist signals on pipelinebf4b8e0 feat: add watchlist compare filters0b8ecc2 fix: fail closed on corrupt pipeline state- 그 외 리뷰 지적 수정 커밋으로 batching, JSON 검증, metadata 보존, missing doc 처리를 보강했다.
검증
- Task별 TDD RED/GREEN을 확인했다.
- Task별 스펙 리뷰와 코드 품질 리뷰를 Subagent-Driven Development 방식으로 통과했다.
- 중간 검증:
python -m pytest tests/test_webapp_watchlist.py tests/test_webapp_pipeline.py -q→ 47 passedpython -m pytest -q→ 229 passednode --check src/realestate/webapp/static/app.js→ 통과git diff --check→ whitespace error 없음- 최종 검증(2026-08-11 03:29 KST):
python -m realestate.cli invest-board→reports/investment_board.html재생성python -m pytest tests/test_webapp_watchlist.py tests/test_webapp_pipeline.py -q→ 47 passedpython -m pytest -q→ 229 passednode --check src/realestate/webapp/static/app.js→ 통과git diff --check→ whitespace error 없음- 최종 리뷰 수정 후 검증(2026-08-11 03:42 KST):
python -m pytest tests/test_webapp_watchlist.py tests/test_webapp_pipeline.py -q→ 48 passedpython -m pytest -q→ 230 passedgit diff --check→ whitespace error 없음- 수정 재리뷰 → blocking finding 없음
한계
- 이번 구현은 투자 판단 로직이 아니라 웹앱 작업흐름 UI 통합이다.
- 필터·정렬·비교는 클라이언트 전용 동작이며, 서버 저장 조건이나 공유 URL 필터는 아직 없다.
- 비교 UI는 후보 카드에 이미 있는 이름·지역·유형·점수·목표가·상태를 나란히 보는 수준이다.
- JS 동작은 문법 검사와 서버 렌더링 테스트 중심으로 확인했고, 브라우저 E2E 테스트는 아직 없다.
- 실제 시세, 실거래, 정비구역 원문, 경매 권리관계는 새로 확인하지 않았다. 투자 실행 전 원본 확인이 필요하다.
다음 연결 지점
- 워치리스트 필터 조건을 URL 쿼리나 서버 API로 공유 가능하게 만들기
- 후보 비교에서 목표가 대비 현재가, 총투입금, 분담금, 전세가율을 붙이기
- 파이프라인 보드에서 워치리스트 후보로 바로 좁혀 보기
- 급매/목표가 도달 알림과 실데이터 수집 파이프라인 연결
원문 Markdown: docs/analysis/2026-08-10-종합부동산웹앱-워치리스트-파이프라인-통합구현.md