Gemini Advanced 부동산 시장 분석 자동화 사례 – 주간 리서치 15시간→3시간 단축 워크플로우
소규모 부동산 투자팀의 Gemini Advanced 도입 배경
서울 소재 5인 규모의 부동산 투자팀 ‘블루스톤캐피탈(가명)‘은 매주 수도권 아파트·오피스텔 매물 데이터를 수집하고, 수익률을 계산한 뒤 투자 의사결정 보고서를 작성하는 데 팀원 1명이 주당 약 15시간을 소비하고 있었습니다. 반복적인 데이터 복사, 수식 입력, 보고서 포맷팅 작업이 병목이었습니다. 2025년 하반기 Gemini Advanced(Google One AI Premium)를 도입한 후, Google Sheets 연동과 Gemini API 자동화 파이프라인을 구축하여 동일 작업을 주당 3시간으로 줄였습니다. 이 글에서는 실제 워크플로우와 코드를 공유합니다.
전체 워크플로우 개요
- 데이터 수집 – 공공 API(국토교통부 실거래가)와 부동산 플랫폼 데이터를 Google Sheets로 자동 적재- 데이터 정제 및 분석 – Gemini API로 매물 요약, 이상치 탐지, 지역별 트렌드 해석- 수익률 계산 – Sheets 수식 + Gemini 함수 호출로 예상 수익률·대출 시나리오 자동 산출- 보고서 생성 – Gemini Advanced에서 주간 투자 브리핑 문서 자동 생성
Step 1: 환경 설정 및 API 준비
Google Cloud 프로젝트 설정
# Google Cloud CLI 설치 후
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
Gemini API 활성화
gcloud services enable generativelanguage.googleapis.com
API 키 생성
gcloud alpha services api-keys create —display-name=“real-estate-gemini”
Python 환경 구성
# 필수 패키지 설치
pip install google-generativeai gspread oauth2client pandas requests
Gemini API 초기화
import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel("gemini-2.5-pro")
Step 2: 부동산 데이터 자동 수집
국토교통부 실거래가 공개 API에서 데이터를 가져와 Google Sheets에 적재하는 스크립트입니다.
import requests
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import pandas as pd
from datetime import datetime
실거래가 API 호출
def fetch_real_estate_data(lawd_cd, deal_ymd):
url = “http://openapi.molit.go.kr/OpenAPI_ToolInstall498/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTradeDev”
params = {
“serviceKey”: “YOUR_DATA_GO_KR_API_KEY”,
“LAWD_CD”: lawd_cd, # 지역코드 (예: 11110 종로구)
“DEAL_YMD”: deal_ymd, # 계약월 (예: 202603)
“pageNo”: 1,
“numOfRows”: 1000
}
response = requests.get(url, params=params)
return response.text
Google Sheets 연결
def connect_sheets():
scope = [“https://spreadsheets.google.com/feeds”,
“https://www.googleapis.com/auth/drive”]
creds = ServiceAccountCredentials.from_json_keyfile_name(
“service_account.json”, scope)
client = gspread.authorize(creds)
return client.open(“부동산_주간분석”).sheet1
데이터 적재
sheet = connect_sheets()
raw_data = fetch_real_estate_data(“11680”, “202603”)
XML 파싱 후 시트에 행 단위 추가
print(f”[{datetime.now()}] {len(raw_data)}건 수집 완료”)
Step 3: Gemini로 데이터 분석 및 인사이트 추출
def analyze_market_data(data_summary):
prompt = f"""당신은 부동산 시장 분석 전문가입니다.
아래는 이번 주 수도권 아파트 실거래 데이터 요약입니다.
{data_summary}
다음 항목을 분석해주세요:
1. 지역별 평균 거래가 변동률 (전주 대비)
2. 거래량 상위 5개 단지와 특이사항
3. 이상치 거래 탐지 (평균 대비 ±20% 이상)
4. 향후 1개월 시장 전망 (근거 포함)
JSON 형식으로 응답해주세요."""
response = model.generate_content(prompt)
return response.text
# 시트 데이터를 요약하여 Gemini에 전달
sheet_data = sheet.get_all_records()
df = pd.DataFrame(sheet_data)
summary = df.groupby("지역").agg(
평균가=('거래금액', 'mean'),
거래건수=('거래금액', 'count')
).to_string()
analysis = analyze_market_data(summary)
print(analysis)
Step 4: 수익률 자동 계산
def calculate_yield(purchase_price, monthly_rent, loan_ratio=0.6, interest_rate=0.04):
"""연간 예상 수익률 계산"""
equity = purchase_price * (1 - loan_ratio)
annual_rent = monthly_rent * 12
loan_interest = purchase_price * loan_ratio * interest_rate
net_income = annual_rent - loan_interest
return round((net_income / equity) * 100, 2)
def generate_yield_report(properties_df):
prompt = f"""다음 매물 목록의 투자 수익률 분석 보고서를 작성해주세요.
매물 데이터:
{properties_df.to_string()}
각 매물에 대해:
- 레버리지별 수익률 (LTV 40%, 60%, 80%)
- 리스크 등급 (상/중/하)
- 투자 추천 의견
을 포함해주세요."""
response = model.generate_content(prompt)
return response.text
# 수익률 계산 실행
df['예상수익률'] = df.apply(
lambda r: calculate_yield(r['거래금액']*10000, r['월세']*10000), axis=1)
report = generate_yield_report(df.head(20))
print(report)
Step 5: 주간 보고서 자동 생성
def generate_weekly_report(analysis_json, yield_report):
prompt = f"""아래 데이터를 기반으로 부동산 투자팀 주간 브리핑 보고서를 작성해주세요.
## 시장 분석 데이터
{analysis_json}
## 수익률 분석
{yield_report}
보고서 형식:
1. 경영진 요약 (3줄)
2. 주간 시장 동향
3. 주목 매물 TOP 5
4. 리스크 요인
5. 다음 주 액션 아이템
전문적이면서도 간결하게 작성해주세요."""
response = model.generate_content(prompt)
return response.text
weekly_report = generate_weekly_report(analysis, report)
# Google Docs에 저장 (선택)
from googleapiclient.discovery import build
service = build('docs', 'v1', credentials=creds)
doc = service.documents().create(
body={'title': f'주간_부동산_브리핑_{datetime.now().strftime("%Y%m%d")}'}
).execute()
print(f"보고서 생성 완료: {doc.get('documentId')}")
자동화 스케줄링 (cron)
# crontab -e 에 추가 (매주 월요일 오전 8시 실행)
0 8 * * 1 cd /home/user/real-estate-bot && python main.py >> log.txt 2>&1
도입 성과 비교
| 작업 항목 | 도입 전 (수동) | 도입 후 (Gemini) | 절감률 |
|---|---|---|---|
| 데이터 수집 | 4시간 | 자동 (10분) | 96% |
| 데이터 정제·분석 | 5시간 | 40분 | 87% |
| 수익률 계산 | 3시간 | 30분 | 83% |
| 보고서 작성 | 3시간 | 1시간 40분 | 44% |
| **합계** | **15시간** | **3시간** | **80%** |
system_instruction 파라미터에 "부동산 데이터 분석 전문가. 항상 근거 데이터를 인용하라"를 설정하면 응답 품질이 크게 향상됩니다.- **Structured Output** – response_mime_type="application/json"과 response_schema를 지정하면 파싱 오류 없이 일관된 JSON을 받을 수 있습니다.- **컨텍스트 캐싱** – 매주 반복되는 과거 시세 데이터는 Gemini의 Context Caching 기능으로 토큰 비용을 최대 75% 절감 가능합니다.- **멀티모달 활용** – 등기부등본 PDF를 Gemini에 직접 업로드하여 권리관계 요약을 자동화하세요.- **Google Sheets 내장 Gemini 함수** – 시트에서 직접 =GEMINI("이 매물의 투자 리스크를 평가해줘: "&A2&" "&B2) 형태로 사용 가능합니다.
## Troubleshooting – 자주 발생하는 문제와 해결법
| 에러 | 원인 | 해결 방법 |
|---|---|---|
429 Resource Exhausted | API 호출 속도 제한 초과 | 요청 간 time.sleep(2) 추가, 또는 배치 요청으로 변환 |
JSON 파싱 오류 | Gemini 응답이 마크다운 포함 | response_mime_type="application/json" 명시적 지정 |
gspread AuthError | 서비스 계정 권한 부족 | Sheets 공유 설정에서 서비스 계정 이메일에 편집 권한 부여 |
실거래가 API 응답 없음 | 공공데이터 서버 점검 또는 키 만료 | data.go.kr에서 API 키 상태 확인, 일별 호출 한도(1,000건) 체크 |
Token limit exceeded | 입력 데이터가 너무 큼 | 데이터를 청크 단위로 분할 후 순차 호출, 요약본 전달 방식으로 전환 |
블루스톤캐피탈 팀이 공유한 세 가지 교훈입니다: - **프롬프트가 곧 품질이다** – 분석 프롬프트를 3주간 반복 튜닝한 결과, 보고서 수정 시간이 1시간에서 20분으로 줄었습니다.- **사람의 판단은 대체 불가** – Gemini는 데이터 정리와 초안 작성을 담당하고, 최종 투자 의사결정은 반드시 팀 회의에서 진행합니다.- **점진적 자동화가 핵심** – 처음부터 전체를 자동화하지 않고, 데이터 수집→분석→보고서 순으로 단계별 적용했습니다. ## 자주 묻는 질문 (FAQ)
Q1. Gemini Advanced 구독 없이 무료 API만으로도 이 워크플로우를 구현할 수 있나요?
네, Gemini API 무료 티어(분당 15회, 일 1,500회)로 기본 워크플로우 구현이 가능합니다. 다만 대용량 데이터 분석이나 Context Caching 등 고급 기능은 유료 플랜(Google One AI Premium 월 $19.99 또는 API Pay-as-you-go)이 필요합니다. 소규모 팀이라면 월 API 비용은 약 $10~30 수준입니다.
Q2. 실거래가 외에 전세·월세 데이터도 함께 분석할 수 있나요?
가능합니다. 국토교통부 API는 아파트 전월세(getRTMSDataSvcAptRent), 오피스텔 매매·전월세 등 다양한 엔드포인트를 제공합니다. 스크립트에서 API URL만 변경하면 동일한 파이프라인으로 전세 데이터를 수집·분석할 수 있으며, Gemini에 전달하는 프롬프트에 전세가율 분석 항목을 추가하면 됩니다.
Q3. Gemini의 부동산 분석 결과 정확도는 어느 정도인가요?
Gemini는 제공된 데이터를 기반으로 통계 요약과 트렌드 해석을 수행하므로, 입력 데이터의 품질이 결과를 좌우합니다. 블루스톤캐피탈 팀의 경우 시장 동향 요약 정확도는 약 85~90%로 평가했으며, 이상치 탐지에서 특히 유용했다고 합니다. 다만 미래 가격 예측은 참고 수준으로만 활용하고, 최종 판단은 반드시 전문가가 검증해야 합니다.