한국의 민간 경매정보사이트(지지옥션, 굿옥션, 옥션원, 스피드옥션 등)가 대법원 법원경매정보(courtauction.go.kr)의 데이터를 받아오는 방식은 크게 보면 다음 4가지 기술 구조로 이루어져 있습니다.
1. 전체 구조 개요 (핵심 요약)
대법원 내부 DB
↓
법원경매정보 웹사이트 (courtauction.go.kr)
↓
(비공식 방식)
HTML 요청 / AJAX 요청 / hidden API 호출
↓
민간 경매사이트 크롤러
↓
자체 DB 저장
↓
데이터 가공 (권리분석, 지도, 임대차분석 등)
↓
유료 서비스 제공
즉, 공식 API를 받아오는 것이 아니라
웹 요청 분석 후 자동 수집(crawling + scraping)이 핵심입니다.
2. 대법원 경매정보 시스템 자체 구조
대법원 경매정보는:
- 전국 법원의 경매 데이터를 통합 제공하는 공식 포털이며
- 회원가입 없이 대부분의 검색 및 자료 열람이 가능합니다.
하지만 중요한 점:
✔ 공식 공개 REST API 없음
✔ 대신 웹페이지 요청 기반 데이터 제공
✔ 내부적으로는 DB → 웹페이지 렌더링 구조
3. 민간 경매사이트가 데이터를 가져오는 실제 기술 방식
방식 1. HTML Scraping (가장 기본 방식)
예:
https://www.courtauction.go.kr/RetrieveRealEstMulDetailList.laf
크롤러가 하는 일:
- HTTP 요청 전송
- HTML 수신
- BeautifulSoup 등으로 파싱
- DB 저장
실제 구현 예:
- requests
- BeautifulSoup
- delay 적용 (IP 차단 방지)
예시 코드 구조:
import requests
from bs4 import BeautifulSoupurl = "https://www.courtauction.go.kr/RetrieveRealEstMulDetailList.laf"
params = {
"jiwonNm": "서울중앙지방법원",
"page": "1"
}res = requests.get(url, params=params)
soup = BeautifulSoup(res.text, "html.parser")items = soup.select(".Ltbl_list tbody tr")
방식 2. Hidden API / AJAX 엔드포인트 직접 호출 (핵심 방식)
실제 사이트는 내부적으로 AJAX 요청을 사용합니다.
예:
/RetrieveRealEstMulDetailList.laf
/RetrieveRealEstMulDetailInfo.laf
/RetrieveRealEstMgakNotifySrch.laf
이것은 JSON 또는 HTML fragment 반환
민간 사이트는:
✔ 브라우저 없이 직접 호출
✔ 자동화 크롤링
방식 3. Session / Cookie 기반 요청
법원 사이트 특징:
- 세션 필요
- Referer 체크
- 일부 POST 방식
크롤러는 다음을 처리:
Session 생성
→ Cookie 유지
→ POST 요청
→ 결과 저장
예:
session = requests.Session()
session.get(main_url)data = {
"jiwonNm": "서울중앙지방법원",
"page": "1"
}res = session.post(search_url, data=data)
방식 4. 문서 파일 직접 다운로드
경매 정보에는:
- 감정평가서
- 현황조사서
- 매각물건명세서
이 파일도 URL 기반 다운로드 가능
예:
/RetrieveFile.laf?filename=...
크롤러가 자동 다운로드 후 DB 저장
4. 실제 민간 경매사이트의 내부 시스템 아키텍처
실제 구조 (현업 기준):
Crawler 서버
├ Scheduler (cron)
├ HTTP Client
├ Parser↓
중간 처리 서버↓
Database
├ 사건 테이블
├ 물건 테이블
├ 기일 테이블
├ 문서 테이블↓
분석 서버
├ 권리 분석
├ 가격 분석
├ 지도 매핑↓
Web / Mobile 서비스
GitHub 예시에서도 crawler → DB → REST API 구조 사용
5. 크롤링 주기
일반적으로:
| 데이터 | 주기 |
|---|---|
| 사건 등록 | 하루 1~4회 |
| 물건 정보 | 하루 1회 |
| 기일 변경 | 하루 1회 |
| 낙찰 결과 | 실시간 또는 1~3시간 |
예시 crawler:
repeat -1 86400
→ 하루 1회 실행
6. 민간 경매사이트가 단순 복사가 아닌 이유
단순 데이터 복사가 아니라 추가 분석 수행:
추가 데이터:
- 임차인 분석
- 권리분석 자동화
- 시세 비교
- 지도 표시
- 낙찰 통계
즉:
대법원 데이터 = Raw Data민간 사이트 = Raw Data + Analysis + UX
7. 크롤링 차단 회피 기술
법원 사이트는 차단 기능 존재:
- IP 차단
- 요청 속도 제한
- Session 검사
민간 사이트 대응:
- 요청 딜레이 적용
- Proxy 사용
- 분산 크롤링
- Cache 활용
8. 실제 hidden endpoint 예시 (핵심)
대표 endpoint:
RetrieveRealEstMulDetailList.laf
RetrieveRealEstMulDetailInfo.laf
RetrieveRealEstMgakNotifySrch.laf
RetrieveRealEstMgakResultSrch.laf
RetrieveRealEstSaDetail.laf
이 endpoint들이 실제 데이터 source입니다.
웹페이지는 이것을 단순 표시만 합니다.
9. 공식 API가 없는 이유
대법원은:
✔ Open API 공식 제공 없음
✔ 웹사이트 조회만 허용
따라서 민간 서비스는:
→ 비공식 방식 (scraping)
10. 민간 경매사이트 기술 수준별 차이
초급 사이트
- 단순 HTML scraping
중급 사이트
- hidden endpoint 직접 호출
고급 사이트 (지지옥션, 굿옥션)
- 전체 사건 DB 구축
- 변경사항 diff 업데이트
- 자체 분석 엔진
11. 실제 산업 표준 아키텍처 (현업 기준)
법원 서버
↓
크롤러 Cluster
↓
Raw DB
↓
ETL 처리
↓
분석 DB
↓
검색 서버 (ElasticSearch)
↓
Web / App 서비스
12. 핵심 결론 (중요)
민간 경매사이트는 다음 방식으로 데이터를 가져옵니다:
✔ 공식 API 없음
✔ hidden HTTP endpoint 호출
✔ HTML / AJAX scraping
✔ crawler 자동 실행
✔ 자체 DB 저장 후 가공
즉:
👉 “웹 scraping 기반 비공식 데이터 수집”
13. 원하시면 추가로 설명 가능
다음도 기술적으로 상세 분석 가능:
- 실제 endpoint URL 리스트 전체
- Python 크롤러 구현 예제
- Selenium vs requests 방식 비교
- IP 차단 회피 기술
- 민간 경매사이트 아키텍처 설계 방법
링크 : 민간 경매사이트 아키텍처 설계 방법