AI 기반 실거래가 분석 및 초보자 맞춤형 부동산 플랫폼 시스템 설계 및 구현
초록
React 19, TypeScript, Node.js 내장 SQLite 데이터베이스 및 Gemini 3.6 Flash LLM을 활용한 초보자 맞춤형 부동산 실거래가 다차원 시각화 및 입지 분석 플랫폼의 시스템 설계 및 구현 (SQLite DB 연동 포함)
AI 기반 실거래가 분석 및 초보자 맞춤형 부동산 플랫폼 시스템 설계 및 구현
Design and Implementation of AI-Driven Real Estate Analytics Platform for Beginners
1. 초록 (Abstract)
국내 주택 부동산 시장은 실거래가 정보의 파편화, 복잡한 입지 조건 및 전문적인 거래 용어로 인해 초보 내집마련 희망자나 사회초년생에게 높은 정보 비대칭성과 진입 장벽을 제공한다. 본 연구에서는 대규모 언어 모델(LLM)인 Google Gemini 3.6 Flash, Node.js 내장 node:sqlite 기반 영구 부동산 데이터베이스, 및 최신 웹 애플리케이션 프레임워크(React 19, TypeScript, Vite, Tailwind CSS)를 통합하여, 부동산 초보자를 위한 AI 기반 실거래가 분석 및 다차원 입지 시각화 플랫폼을 설계하고 구현하였다.
본 시스템은 5개 관계형 테이블로 구성된 SQLite 데이터베이스(real_estate.db)로부터 매물 실거래가 트렌드, 평형별 전세가율, 전고점 대비 조정폭, 학군/교통/환금성 다차원 AI 점수(Radar Scores)를 비동기 REST API (GET /api/properties)로 수신하여 시각화하며, AI 어드바이저 라우팅 파이프라인을 통해 초보자 맞춤형 정량/정성적 부동산 리포트를 자동 생성한다.
2. 서론 (Introduction)
2.1 연구 배경 및 문제 제기
부동산 거래는 개개인의 자산 구성 중 가장 큰 비중을 차지하는 중요한 의사결정 단계이다. 그러나 기존의 국토교통부 실거래가 공개 시스템이나 주요 부동산 웹 포털은 다량의 단편적 숫자 데이터를 그대로 제공하여 초보 이용자가 현재 시세의 적정성이나 단지별 핵심 경쟁력을 직관적으로 파악하기 어렵다.
| 기존 부동산 시스템의 한계 | 본 연구 플랫폼의 혁신점 |
|---|---|
| 복잡한 표와 단순 실거래가 나열 | 다차원 레이더 차트 및 초보자 한줄 요약 제공 |
| 정형 데이터 위주의 정보 제공 | 생성형 AI 융합 실거래가/전세가율/입지 종합 리포트 자동 생성 |
| 하드코딩된 정적 클라이언트 데이터 | Node.js node:sqlite 기반 5개 테이블 관계형 데이터베이스 연동 |
| 생소한 부동산 거래 용어 장벽 | 챗봇 형태의 초보 멘토 AI 및 통합 부동산 용어 사전 탑재 |
3. 서비스 실행 화면 및 기능 인터페이스 (System Screenshots & UI)
3.1 메인 대시보드 및 SQLite DB 연결 인터페이스
아래 실행 화면은 전체 아파트 단지 목록과 검색/필터링 시스템, 헤더 부분의 SQLite DB 연결 완료 (5개 매물) 실시간 상태 표시 배지, 레이더 스코어 요약 및 비교함 기능을 제공하는 메인 인터페이스이다.
- SQLite DB 실시간 수신 배지: 헤더 상단에
GET /api/properties호출 결과 수신된 DB 연동 상태 및 매물 수 표시. - 지역구 필터: 서초/강남, 마포/아현, 송파/문정, 성수/성동, 은평/DMC 등 핵심 권역별 즉시 필터링 제공.
- 다차원 배지 시스템: 대장단지, 역세권/학군, 급매물 등 핵심 키워드 직관적 표시.
3.2 매물 상세 분석 및 실거래가 AI 리포트 모달
특정 매물 클릭 시 개출되는 상세 모달 화면으로, DB에서 조회된 실거래가 시계열 추이 차트, 평형별 전세가율, 그리고 Gemini 3.6 Flash 모델이 실시간 생성한 정성 분석 리포트를 제공한다.
4. 시스템 아키텍처 및 데이터베이스 설계 (System & Database Architecture)
본 시스템은 클라이언트 사이드 단일 페이지 애플리케이션(SPA), Express/Vite 백엔드 미들웨어, 그리고 SQLite 영구 데이터베이스로 구성된다.
graph TD
A["사용자 브라우저 (React 19 SPA)"] -->|1. GET /api/properties 요청| B["Express / Vite API Middleware"]
B -->|2. SQL Query 실행| C[("SQLite DB (real_estate.db)")]
C -->|3. 5개 테이블 조인 데이터 반환| B
B -->|4. JSON Response| A
A -->|5. AI 분석 요청| B
B -->|6. GoogleGenAI SDK| D["Google Gemini 3.6 Flash"]
D -->|7. 생성형 리포트 반환| B
B -->|8. AI JSON Response| A
4.1 SQLite 데이터베이스 스키마 설계 (real_estate.db)
시스템은 5개의 관계형 테이블로 모델링되어 데이터 정규화 및 무결성을 보장한다.
properties: 단지 기본 정보, 위치 좌표, 준공년도, 세대수, AI 스코어 JSONpyeong_options: 평형명, 전용/공급면적, 최근 매매/전세가, 전세가율, 전고점 (외래키:property_id)price_trends: 시계열 월별 매매/전세 실거래가 추이 (외래키:property_id)transactions: 동/층수별 최근 실거래 내역 (외래키:property_id)facilities: 주위 지하철, 학교, 백화점, 병원 인프라 거리 정보 (외래키:property_id)
// SQLite DB 초기화 및 조인 조회 메서드 (src/db/initDb.ts)
export function getAllPropertiesFromDb(): Property[] {
const db = getDb();
const rows: any[] = db.prepare('SELECT * FROM properties').all();
const getPyeongs = db.prepare('SELECT * FROM pyeong_options WHERE property_id = ?');
const getTrends = db.prepare('SELECT * FROM price_trends WHERE property_id = ?');
const getTxs = db.prepare('SELECT * FROM transactions WHERE property_id = ?');
const getFacilities = db.prepare('SELECT * FROM facilities WHERE property_id = ?');
return rows.map((row) => ({
...row,
scores: JSON.parse(row.scores_json),
noviceSummary: JSON.parse(row.novice_summary_json),
pyeongOptions: getPyeongs.all(row.id),
priceTrends: getTrends.all(row.id),
recentTransactions: getTxs.all(row.id),
facilities: getFacilities.all(row.id),
}));
}
5. REST API 및 데이터 파이프라인 (REST API & Pipeline)
5.1 SQLite DB 조회 REST API (GET /api/properties)
app.get('/api/properties', (req, res) => {
try {
const properties = getAllPropertiesFromDb();
res.json({ properties, source: 'sqlite' });
} catch (error: any) {
res.status(500).json({ error: 'Failed to fetch properties from SQLite DB' });
}
});
5.2 React 프론트엔드 비동기 데이터 바인딩
React.useEffect(() => {
fetch('/api/properties')
.then((res) => res.json())
.then((data) => {
if (data.properties && Array.isArray(data.properties)) {
setProperties(data.properties);
setDbStatus(`SQLite DB 연결 완료 (${data.properties.length}개 매물)`);
}
});
}, []);
6. 결과 검증 및 시스템 성능 (Evaluation)
- SQLite DB 및 API 통신 검증:
GET /api/properties호출 시 HTTP 200 OK 상태 및 5개 단지 데이터 정상 수신 확인. - 타입 안정성:
tsc --noEmit검사 결과 Type Error 0건 패스. - 포트 격리 서비스 구동: 3005번 전용 포트로 바인딩하여 안정적 서비스를 서빙함.
7. 결론 (Conclusion)
본 연구에서 구현한 AI 기반 실거래가 분석 및 초보자 맞춤형 부동산 플랫폼은 SQLite 관계형 데이터베이스 파이프라인과 생성형 AI를 결합하여 복잡한 주택 시장 데이터를 초보자의 눈높이에 맞게 시각화하고 입체적인 가치를 평가함으로써 부동산 정보 격차 완화에 기여한다.
