ZIP:ON 성장 로드맵

Status: Proposed

이 문서는 ZIP:ON이 MVP 이후 어떤 순서로 확장될지 정리합니다. 기준은 “매물을 많이 보여주는 서비스”가 아니라 “계약 전 목적 기반 위험진단 서비스”입니다.

각 확장 단계에서 지켜야 할 사용자 목적, 물건 정체 판별, 자동 확정 금지, 최종 리포트 기준은 ZIP:ON 확장형 서비스 정의를 원본으로 봅니다.

Goal

ZIP:ON은 단순 매물 목록 서비스가 아니라 과거 지표와 공공데이터를 해석하는 부동산 의사결정 보조 플랫폼을 지향합니다.

사용자는 어디에 살지, 계약해도 되는지, 무엇을 확인해야 하는지 판단해야 한다.
ZIP:ON은 현재 매물을 보여주지 않고, 가격지수, 실거래, 건축물, 토지, 권리 확인 필요사항, 생활환경을 함께 해석한다.
나중에는 관심 정보, 알림, 비교 분석, 리포트, 추천까지 연결한다.

초기 골격은 작게 보일 수 있어도, 설계 기준은 큰 서비스입니다.

Expansion Phases

1단계: 과거 지표 분석과 정확 주소 위험진단

MVP 단계입니다.

대표 사용자: 지역·유형의 과거 흐름을 이해하거나 정확 주소를 검토하려는 부동산 초보자
대표 질문: 강남 원룸 전월세 흐름은 어떤가요? 이 원룸 전세 안전한가요?
대표 진입점: 홈 화면 분석/진단 입력 폼
핵심 데이터: 한국부동산원 R-ONE 통계, 실거래가, 공시가격, 주소, 법정동코드, 건축물대장
핵심 결과: 과거 지표 추세, 변동성, 데이터 한계, 물건 유형 판별, 보증금 위험도, 추가 확인사항, 계약 전 체크리스트
운영 표면: 커뮤니티, 관리자 페이지
AI 표면: 자유 대화형 챗봇은 제거, 백엔드 구조화 위험 항목 산정은 MVP 포함

목표:

ZIP:ON의 핵심 가치인 "현재 매물 미제공, 과거 지표 해석, 계약 전 사전 진단"을 가장 작은 범위에서 검증한다.
분석/진단 이후 사용자가 질문과 사례를 나눌 수 있는 커뮤니티, 운영자가 사용자/권한/신고/진단·분석 이력을 관리할 수 있는 관리자 페이지까지 MVP 운영 흐름에 포함한다.

2단계: 주거용 매매 사전진단

대표 사용자: 아파트, 오피스텔, 빌라 매매를 고민하는 실거주자 또는 초보 투자자
대표 질문: 이 가격에 사도 괜찮나요?
핵심 데이터: 매매 실거래가, 공시가격, 건축물 노후도, 사용승인일, 주차대수, 층수, 엘리베이터 여부, 위반건축물 여부, 대지권 여부, 용도지역, 거래량 추이, 생활 인프라
핵심 결과: 가격 비교, 노후도 리스크, 향후 매각 리스크, 수리비 확인 필요성, 계약 전 확인사항

목표:

전세 보증금 안전성에서 매매 가격·건물 상태 판단으로 확장한다.

3단계: 상가 창업 입지진단

대표 사용자: 작은 상가를 얻어 창업하려는 자영업자
대표 질문: 이 상가에서 카페 가능할까요?
핵심 데이터: 건축물 용도, 제1종/제2종 근린생활시설 여부, 용도지역, 상가업소 데이터, 인허가 데이터, 사업자 상태조회, 상업업무용 실거래가, 임대료 수준
핵심 결과: 업종 가능성 체크리스트, 주변 경쟁도, 배수·환기·전기용량 확인, 관리단 업종 제한 확인, 현장 동선 확인 항목

목표:

주거 중심 진단에서 목적별 적합성 진단으로 넓힌다.

주의:

"장사가 잘 된다"는 확정 판정을 하지 않는다.
상권 API는 1차 분석이고, 실제 매출·권리금·유동인구 체감은 현장조사 영역이다.

4단계: 임야·토지 개발 가능성 1차 진단

대표 사용자: 싸게 나온 토지나 임야를 검토하는 초보 투자자
대표 질문: 이 땅에 집을 지을 수 있나요?
핵심 데이터: 지목, 면적, 필지 경계, 도로 접면 여부, 용도지역지구도, 토지이용규제, 개별공시지가, 주변 토지 실거래가, 산지·농지 규제, 하천·침수·산사태 위험
핵심 결과: 지목·규제·도로 접면 확인 필요성, 전기·수도 인입 확인, 개발행위허가 문의 체크리스트

목표:

가격보다 "쓸 수 있는 땅인가"를 먼저 판단하게 돕는다.

주의:

개발행위허가 가능성은 API만으로 확정하지 않는다.
최종 판단은 지자체 문의와 현장조사로 넘긴다.

5단계: 꼬마빌딩 수익성·리스크 진단

대표 사용자: 작은 건물 매입을 검토하는 개인 투자자
대표 질문: 이 건물을 사면 위험하지 않을까요?
핵심 데이터: 매매가, 토지 가격, 건물 가격, 상업업무용 실거래가, 공시지가, 공시가격, 용도지역, 건폐율, 용적률, 노후도, 임대차 현황, 월 임대수익, 관리비 구조, 수선 비용, 권리관계, 대출 부담
핵심 결과: 건물 상태, 용도 리스크, 가격 비교, 임대수익 구조 확인사항, 공실 가능성, 출구 전략

목표:

물건 자체뿐 아니라 임대수익 구조와 확인해야 할 자료를 함께 보는 리포트로 확장한다.

6단계: 사용자 문서 업로드 기반 권리관계 보조 분석

대표 사용자: 등기부등본, 중개대상물 확인설명서, 임대차계약서 초안, 관리비 고지서, 현장 사진을 가지고 있는 계약 예정자
대표 질문: 이 문서에서 뭘 봐야 하나요?
핵심 데이터: 등기부등본 PDF, 중개대상물 확인설명서, 임대차계약서 초안, 건축물대장 PDF, 임대차 현황 자료, 현장 사진
핵심 결과: 위험 키워드 후보, 사용자가 확인해야 할 문장, 체크리스트 변환, 추가 확인 필요 안내

주의:

문서 업로드 분석은 확정 판정이 아니다.
근저당권, 신탁, 압류, 선순위 임차인 같은 문구 후보를 찾아 사용자가 확인해야 할 질문으로 바꾼다.
원본 파일 저장은 S3/object storage, 암호화, 보존 기간, 삭제 정책이 정해진 뒤에만 연다.

7단계: 관리자용 공공데이터·진단 이력·위험 룰 관리

대표 사용자: ZIP:ON 운영자
대표 질문: 어떤 외부 API가 실패하고 있고, 어떤 위험 룰이 운영에 영향을 주나요?
핵심 데이터: 외부 API 호출 로그, 진단 이력, 사용자 권한, 신고, 위험 기준 데이터
핵심 결과: 제한된 도메인 API 기반 운영 CRUD, 임의 SQL 없는 관리자 페이지, 위험 룰 변경 이력

8단계: 과거 진단 재분석과 지역별 위험 통계

대표 사용자: 과거에 진단한 사용자를 다시 확인하려는 사용자와 운영자
대표 질문: 데이터가 바뀌었을 때 이전 진단 결과도 달라지나요?
핵심 데이터: 과거 진단 snapshot, 외부 API 갱신 데이터, 지역별 위험 패턴
핵심 결과: 재분석 알림, 지역별 위험 통계, 운영용 품질 지표

9단계: 지역·유형 과거 지표 분석 고도화

대표 사용자: MVP 첫 분석보다 더 긴 기간, 더 많은 지역, 더 많은 유형 비교가 필요한 사용자
대표 질문: 강남 원룸 전월세 흐름은 주변 지역과 어떻게 다른가요? 서울대입구역 근처 지표는 1년 전보다 좋아졌나요?
핵심 데이터: 운영 적재가 검증된 한국부동산원 R-ONE 통계, 실거래가 월별 집계, 가격지수, 전세가격지수, 월세가격지수, 오피스텔 수익률, 상가 공실률, 지역별 품질 지표
핵심 결과: 현재 매물 목록이 아닌 과거 지표 비교 리포트, 지역/유형 간 비교, 변동성, 추세, 데이터 품질, 직접 확인 체크리스트

목표:

MVP 첫 slice인 `POST /api/regional-indicator-analyses`를 운영 데이터 범위, 비교 기능, 품질 모니터링, 설명 문장 측면에서 고도화한다.

Cross-Cutting Analysis Modules

아래 기능은 특정 한 단계에만 묶이지 않고 여러 사용자 목적에서 반복적으로 쓰이는 공통 분석 후보입니다.

모듈사용 목적대표 확인 항목자동 확정 금지
생활·안전·환경 리스크거주 목적, 장기 보유 목적 보조 판단학교, 교통, 치안시설, 보행자/자전거 사고다발지역, 관리비, 침수 위험, 하천 범람, 산사태 위험, 열분포, 대피소, 환경 정보실제 안전 체감, 실제 통학 위험, 생활 만족도 확정
계약 상대방·중개사 확인계약 전 운영·거래 안전 확인중개사무소 등록 여부, 행정처분 여부, 사업자등록 상태, 중개보수 예상 금액, 계약금 입금 계좌 명의중개사 신뢰도 확정, 사기 여부 확정, 계좌 안전성 확정
사용자 자료 업로드 분석공공데이터로 부족한 권리·문서 확인 보조등기부등본, 중개대상물 확인설명서, 임대차계약서 초안, 관리비 고지서, 선순위 임차인 내역, 현장 사진문서 법적 효력 확정, 권리관계 최종 판단

이 모듈들은 최종 결과 화면에서 점수보다 “계약 전 무엇을 직접 확인해야 하는가”로 표현한다.

Long-Term Domain Map

User Purpose:
계약 목적, 거주/투자/창업/개발 의도
 
Property Identification:
주소 정제, 좌표 변환, 법정동코드, 물건 유형 판별
 
Public Data Collection:
건축물대장, 토지임야정보, 실거래가, 공시가격, 용도지역, 지적, 생활환경, 상권, 안전·재난 데이터
 
Risk Scoring:
전세가율, 가격 비교, 건축물 위험, 용도 적합성, 환경·재난 위험
 
Checklist Generation:
등기부등본, 선순위 임차인, 현장 방문, 인허가, 지자체 문의
 
Document Upload Analysis:
등기부등본 PDF, 중개대상물 확인설명서, 임대차 자료, 관리비 고지서, 현장 사진
 
Recommendation Report:
지역/물건 리포트, 비교 리포트, 다음 행동 제안
 
AI-Assisted Explanation:
현재 MVP 구현 대상이 아님

AI는 ZIP:ON의 판단 근거를 대체하지 않는다. 현재 MVP에서는 챗봇 UI와 Spring AI 설명 보조를 제거했으며, data.go.kr/VWorld/DB에서 만든 구조화된 위험진단 결과와 체크리스트를 직접 제공한다. OpenAI/ChatGPT API는 백엔드 내부에서 LEASE_RENT_RISK 고정 항목별 점수 산정 보조자로만 사용할 수 있고, 최종 총점·등급·화면 판정은 백엔드 코드가 계산한다.

Feature Growth Rules

새 기능은 아래 질문을 통과해야 합니다.

1. 이 기능은 어떤 사용자 목적에서 출발하는가?
2. MVP 또는 현재 확장 단계에 직접 기여하는가?
3. 물건 정체 판별, 위험도 계산, 체크리스트 중 무엇을 개선하는가?
4. API 결과를 그대로 보여주는가, 사용자의 목적에 맞게 해석하는가?
5. 자동 확정하면 안 되는 영역을 명확히 분리했는가?
6. 위험진단 사용자 입력은 홈 화면 진단 폼과 충돌하지 않는가?
7. 커뮤니티/관리자 기능이라면 위험진단 이후 경험 또는 운영 관리에 직접 연결되는가?

Extensible Code Rules

확장형 ZIP:ON 코드는 “전세·월세 MVP만 겨우 통과하는 if-else 덩어리”가 되면 안 됩니다. 하지만 아직 쓰지 않는 대형 프레임워크나 과한 추상화도 도입하지 않습니다. 새 코드를 작성할 때는 아래 규칙을 따른다.

  1. 사용자 목적을 먼저 모델링한다.

    • 전세, 월세, 주거용 매매, 상가 창업, 토지 개발, 꼬마빌딩 매입은 서로 다른 use case다.
    • 목적이 다르면 request DTO, service orchestration, 위험 문장, checklist rule도 분리 후보로 본다.
  2. 물건 정체 판별을 공통 선행 단계로 둔다.

    • 주소 정제, 법정동코드, 건축물대장/토지 기본정보, 공부상 유형 판별은 이후 목적별 분석의 입력이다.
    • 사용자 표현만으로 실거래가 API나 위험 룰을 바로 선택하지 않는다.
  3. 목적별 분석기는 작은 협력 객체로 분리한다.

    • MVP의 RentRiskDiagnosisService가 커지면 PropertyIdentificationService, TransactionComparisonService, PublicPriceLookupService, BuildingRiskAnalyzer 같은 협력 객체로 나눈다.
    • 매매, 상가, 토지, 꼬마빌딩 기능을 붙일 때는 PurchaseRiskAnalyzer, CommercialUseRiskAnalyzer, LandUseRiskAnalyzer, BuildingInvestmentRiskAnalyzer 같은 목적별 analyzer 후보를 검토한다.
  4. 자동 확정 금지 영역은 코드에서도 별도 표현한다.

    • 등기 권리관계, 선순위 임차인, 보증보험 가능성, 업종 인허가, 개발행위허가, 실제 하자, 상가 매출은 “확정” status로 내려보내지 않는다.
    • response에는 사용자 확인 필요, 제한 진단, 데이터 부족, 원본 확인 필요처럼 사용자의 다음 행동을 유도하는 상태를 둔다.
  5. 외부 API adapter는 원본 호출과 해석을 분리한다.

    • adapter는 HTTP 호출, timeout, key 누락, parsing 오류를 책임진다.
    • 위험 계산은 service/analyzer가 맡고, 테스트에서는 실제 외부 API를 호출하지 않는다.
  6. 저장소 선택을 데이터 성격에 맞춘다.

    • 구조화되어 검색·비교·이력 관리가 필요한 값은 MyBatis/Flyway 기반 DB에 둔다.
    • 등기부등본, 계약서, OCR 대상 이미지, 외부 API 원본 응답처럼 원본 보존이 필요한 데이터는 S3/object storage 후보로 둔다.
    • 반복 조회 short TTL cache, rate limit, 중복 요청 lock은 Redis 후보로 둔다.

Current Implementation Status

  • 회원가입과 로그인은 AuthIntegrationTest가 검증하는 구현 범위다.
  • 로컬 학습용 seed user는 SeedUserIntegrationTest가 검증하는 구현 범위다.
  • 법정동 지역 read model은 RegionIntegrationTest가 검증하는 구현 범위다.
  • 커뮤니티 게시글/댓글/대댓글 기본 기능은 CommunityIntegrationTest가 검증하는 구현 범위다.
  • 커뮤니티 신고, 좋아요, 첨부파일, 관리자 숨김/복구 backend slice는 커뮤니티 관리자 API와 mapper로 확장되었다.
  • 사용자별 role, 글/댓글 권한, page 접근 권한 관리는 AdminUserIntegrationTest가 검증하는 구현 범위다.
  • 전세·월세 위험진단 첫 slice는 RentRiskDiagnosisIntegrationTest가 검증하는 구현 범위다.
  • 실거래가 HTTP adapter와 VWorld 공시가격 adapter는 위험진단 흐름에 연결되었다.
  • 챗봇 UI, Spring AI 의존성, 자유 대화형 prompt/guardrail, RentRiskDiagnosisResponse.aiNarration은 현재 MVP에서 제거되었다.
  • OpenAI/ChatGPT 설정은 zipon.openai.risk-scoring.*의 backend-only 구조화 위험 항목 산정에만 사용한다.
  • 알림, 공시가격 동·호 정밀 매칭, 등기부등본 업로드 분석은 아직 후속 과제다.

Feature Template

새 기능을 시작할 때 아래 양식을 먼저 채웁니다.

기능명:
사용자 목적:
현재 로드맵 단계:
화면 위치:
위험진단 입력 폼 영향:
프론트 라우트:
프론트 컴포넌트:
프론트 API 함수:
백엔드 API 주소:
Controller 메서드:
Service 메서드:
MyBatis Mapper 조회 후보:
Request DTO:
Response DTO:
DB/Flyway 변경 여부:
외부 API 후보:
자동 확정 금지 영역:
예외 상황:
로딩/빈 결과/에러 UI:
테스트 방법:
관련 문서:

Decision: Expansion Order

Context

제공된 기획 자료에는 전세·월세, 주거용 매매, 상가, 임야·토지, 꼬마빌딩까지 다양한 가능성이 있습니다. 모든 범위를 동시에 구현하면 학습과 제품 검증 모두 흐려집니다.

Options considered

  1. 모든 부동산 유형을 한 번에 지원
  2. 지도와 현재 매물 목록을 먼저 강화
  3. 현재 매물은 제공하지 않고 과거 지표 분석과 정확 주소 위험진단부터 구현한 뒤 단계적으로 확장

Decision

현재 매물 미제공, 과거 지표 분석, 정확 주소 위험진단을 MVP로 삼고, 사용자 입력은 홈 화면 분석/진단 폼에서 시작합니다. 커뮤니티와 관리자 페이지는 MVP 운영 범위에 포함하되, 부동산 유형 확장은 주거용 매매 상가 창업 임야·토지 꼬마빌딩 순서로 진행합니다.

Why

과거 지표 분석은 한국부동산원 R-ONE, 실거래가, 공시가격, 건축물대장처럼 공공데이터로 1차 분석 가능한 범위가 많습니다. 정확 주소 위험진단은 주소 정제, 건축물대장 조회, 실거래가 비교, 위험 문장 생성, 체크리스트 응답까지 Spring Boot 학습에도 적합합니다.

Tradeoffs

초기 화면은 기존 부동산 서비스처럼 풍부한 현재 매물 탐색 서비스로 보이지 않습니다. 대신 ZIP:ON의 차별점인 “과거 지표 해석과 계약 전 판단 보조”를 빠르게 검증할 수 있습니다.

Future revisit

지역·유형 과거 지표 분석과 정확 주소 위험진단의 end-to-end 흐름이 구현되고, 실제 사용자 입력으로 지표 인사이트, 위험 문장, 체크리스트가 생성되면 다음 단계로 넘어갑니다.

Learning Path

  1. First read: Expansion Phases
  2. Then inspect: 과거 지표 기반 부동산 분석 MVP 범위
  3. Then run: 루트 README.md의 backend/frontend 실행 명령으로 현재 구현 상태 확인
  4. Then debug: 새 기능이 Feature Growth Rules를 통과하는지 확인
  5. Key concept to understand: 로드맵은 기능 목록이 아니라 구현 순서를 정하는 제품 제약이다