민간 경매사이트 아키텍처 설계 방법

민간 경매정보사이트(지지옥션, 굿옥션, 옥션원 등) 수준의 서비스를 구축하려면 단순 크롤러가 아니라 데이터 수집 → 정규화 → 분석 → 검색 → 서비스 제공까지 포함된 전체 데이터 플랫폼 아키텍처가 필요합니다.
아래는 실제 상용 서비스 수준의 아키텍처를 단계별로 상세히 설명한 것입니다.


1. 전체 시스템 아키텍처 개요

[법원 경매정보 사이트]
↓
[크롤러 Cluster]
↓
[Raw Database]
↓
[ETL / 데이터 처리 서버]
↓
[분석 서버]
↓
[검색 서버]
↓
[API 서버]
↓
[Web / Mobile 서비스]

각 계층은 독립적으로 설계하는 것이 핵심입니다.


2. Layer 1 — 크롤러 시스템 (Data Ingestion Layer)

가장 중요한 핵심 구성 요소입니다.

역할

  • 법원경매정보 데이터 수집
  • 사건, 물건, 기일, 결과, 문서 수집
  • 변경사항 감지

크롤러 서버 구성

Crawler Master
├ Scheduler
├ Job Queue
└ Worker 관리Crawler Worker
├ HTTP 요청
├ 데이터 파싱
└ DB 저장

기술 스택 (추천)

구성기술
언어Python
HTTPrequests, httpx
파싱BeautifulSoup, lxml
브라우저 자동화Selenium, Playwright
작업 스케줄Celery, cron
큐Redis, RabbitMQ

Worker 구조 예시

def crawl_case(case_id):
html = request(case_url)
parsed = parse(html)
save(parsed)

크롤링 전략

1. Full crawl (최초 1회)

전체 사건 수집

2. Incremental crawl (이후)

변경된 사건만 수집

기준:
- 사건번호
- 수정일
- 기일 변경 여부

3. Layer 2 — Raw Database (원본 저장소)

크롤링 데이터를 그대로 저장

정규화하지 않은 상태


추천 DB

PostgreSQL (강력 추천)

또는

  • MySQL
  • MongoDB (보조용)

테이블 구조

사건 테이블

cases
-----
id
court
case_number
case_year
created_at
updated_at

물건 테이블

properties
-----------
id
case_id
address
minimum_price
status
created_at

기일 테이블

auctions
---------
id
property_id
auction_date
result
price

문서 테이블

documents
----------
id
property_id
type
file_url

4. Layer 3 — ETL / 데이터 처리 서버

Raw 데이터를 정규화하고 분석용으로 변환

ETL = Extract Transform Load


역할

Raw data
↓
정규화
↓
분석용 DB 저장

수행 작업

주소 정규화

서울특별시 → 서울

숫자 변환

1,000,000 → 1000000

중복 제거


ETL 기술

추천:

  • Python
  • Apache Airflow (대형 시스템)

5. Layer 4 — 분석 서버 (Analysis Layer)

민간 경매사이트의 핵심 경쟁력

단순 데이터 → 분석 데이터로 변환


분석 종류

1. 권리분석

등기부 기반

근저당
임차인
전세권

권리 위험도 계산


2. 낙찰가 분석

낙찰가율 =
낙찰가 / 감정가

3. 투자 수익률 계산

ROI 계산

4. 시세 비교

외부 데이터 연동:

  • 국토부 실거래가
  • 네이버 부동산

6. Layer 5 — 검색 서버 (Search Layer)

빠른 검색을 위해 필요

일반 DB로는 속도 부족


추천 기술

Elasticsearch


역할

빠른 검색 가능:

서울 아파트
감정가 5억 이하
유찰 2회 이상

검색 속도:

10ms 수준

Elasticsearch 구조

index: properties
document:
address
price
auction_date

7. Layer 6 — API 서버 (Application Layer)

Frontend와 Backend 연결


역할

검색 요청
↓
DB 조회
↓
JSON 반환

추천 기술

기술추천
PythonFastAPI (강력 추천)
Node.jsExpress
JavaSpring Boot

API 예시

GET /api/properties?city=서울&price_max=500000000

응답:

{
"results": [...]
}

8. Layer 7 — Frontend (Web / Mobile)

사용자 인터페이스


Web

추천:

  • React
  • Next.js

Mobile

추천:

  • Flutter
  • React Native

9. 캐시 시스템 (필수)

성능 향상


Redis 사용

검색 결과 캐시
인기 물건 캐시

속도:

DB 100ms
Redis 1ms

10. 파일 저장소

감정평가서 등 저장

추천:

  • AWS S3
  • 또는 로컬 storage

11. 전체 아키텍처 다이어그램

                [법원경매정보]
│
┌───────┴────────┐
│ Crawler Cluster │
└───────┬────────┘
│
[Raw DB]
│
[ETL 서버]
│
[Analysis DB]
│
┌─────────────┴─────────────┐
│ │
[Search Server] [API Server]
│ │
└─────────────┬─────────────┘
│
[Frontend]

12. 서버 구성 예시 (실제 서비스 기준)

초기:

Crawler 서버     1대
DB 서버 1대
API 서버 1대
Web 서버 1대

확장:

Crawler 서버     3~10대
DB 서버 cluster
Search 서버 cluster
API 서버 load balancing

13. 추천 클라우드 구성

AWS 기준

EC2      → 서버
RDS → DB
S3 → 파일
ElasticSearch → 검색
Redis → 캐시

14. 데이터 흐름 예시

크롤러 실행
↓
법원 사이트 요청
↓
데이터 수신
↓
Raw DB 저장
↓
ETL 실행
↓
Analysis DB 저장
↓
Elasticsearch index
↓
사용자 검색
↓
API 반환

15. 실제 상용 서비스 핵심 기술 TOP 5

가장 중요:

  1. 크롤러 안정성
  2. DB 설계
  3. 검색 속도 (Elasticsearch)
  4. 권리분석 엔진
  5. 캐시 시스템

16. 권장 기술 스택 (최적 조합)

Crawler      → Python + requests
DB → PostgreSQL
Search → Elasticsearch
Cache → Redis
Backend → FastAPI
Frontend → React
Storage → AWS S3
Infra → AWS EC2

17. 개발 난이도 (현실 기준)

수준기간
기본 크롤러1~2주
DB 구축2주
API 서버2주
검색 서버2주
전체 시스템2~4개월
상용 서비스 수준6개월~1년

18. 핵심 결론

민간 경매사이트는 단순 웹사이트가 아니라

데이터 플랫폼 + 분석 시스템 + 검색 엔진의 조합입니다

핵심 구성:

Crawler
DB
ETL
Analysis
Search
API
Frontend
Cache

원하시면 다음도 매우 구체적으로 설명해드릴 수 있습니다:

  • 실제 PostgreSQL 테이블 설계 (SQL 포함)
  • Elasticsearch index 설계
  • Python 크롤러 전체 코드
  • FastAPI 서버 구현 예제
  • AWS 배포 아키텍처

링크 : 경매정보사이트에서 대법원 경매정보를 받아오는 방식

Similar Posts