스크래핑

글로벌 부동산 포털 전반의 매물 정보 통합

포털과 국가 전반에서 매물 정보를 통합하는 것은 정규화 문제입니다. 분류 체계, 면적 단위, 가격 의미, 그리고 불일치를 조정하는 방법이 관건입니다.

Chris Collins

Chris Collins

2026년 9월 13일 · 7 분 소요

한 포털에서 리스팅을 수집하는 것은 스크래핑 문제이고, 잘 이해되고 있는 문제다. 열두 개 나라에 걸친 서른 개 포털에서 수집하여 하나의 검색 가능한 인벤토리로 제시하는 것은 완전히 다른 작업이며, 그 어려움의 대부분은 수집 자체에 있지 않다.

문제는 같은 아파트를 설명하는 두 포털이 크기, 방 개수, 가격, 심지어 어떤 종류의 부동산인지에 대해서도 서로 다른 값을 제시하고, 그러면서도 각자 자기 지역의 관례상으로는 모두 옳다는 데 있다.

아직 수집 자체를 구축하는 단계라면 부동산 데이터를 위한 프록시 글이 그 부분을 다룬다. 이 가이드는 데이터가 도착한 이후에 일어나는 일에 관한 것이다.

겉으로 보이는 것과 실제 의미가 다른 필드들

다섯 가지 범주가 포털 간 통합 실패의 대부분을 일으킨다.

면적. 제곱미터, 제곱피트, 그리고 일부 시장에서는 지역 단위가 쓰인다. 더 나쁜 것은 측정 기준 자체가 다르다는 점이다. 총 내부 면적, 순 내부 면적, 그리고 여러 나라에서는 부동산의 일부를 제외하거나 할인하는 법적으로 정의된 측정 표준이 있다. 단위 변환은 사소하지만, 기준을 맞추는 일은 그렇지 않으며, 단순한 변환은 이 둘을 소리 없이 섞어버린다.

방 개수. 유럽 대륙의 상당 부분에서는 침실이 아니라 거실을 포함한 방 개수를 주요 수치로 표기한다. “3 pièces”와 “3 bedroom”은 같은 부동산이 아니다. 이 둘을 하나의 bedrooms 컬럼에 함께 저장하면, 누군가 시장을 비교할 때만 드러나는 방식으로 잘못된 인벤토리가 만들어진다.

가격의 의미. 호가, 참고 가격, “offers over”(제시가 이상), 경매 최저 낙찰가, 문의 시 가격 제공, 그리고 임대 시장에서는 그 수치에 관리비, 공과금, 지방세가 포함되는지 여부까지. 이것들은 같은 통화 기호를 두르고 있을 뿐 서로 다른 양이다.

보유 형태 및 소유 유형. 소유권(freehold), 잔여 기간이 있는 임차권(leasehold), 구분소유(strata) 또는 콘도미니엄 방식, 협동조합 소유. 남은 기간이 짧은 임차권은 같은 가격의 소유권과는 실질적으로 다른 자산이다.

부동산 유형 분류체계. 모든 포털이 자기만의 체계를 가지고 있고, 이들은 깔끔하게 매핑되지 않는다. 메조넷, 복층(duplex), 내부 계단이 있는 아파트를 하나의 범주로 볼지 세 개로 볼지는 한 번만 결정하고 어디에나 일관되게 적용해야 하는 제품상의 결정이다.

이를 다룰 수 있게 해주는 원칙은 다음과 같다. 출처의 원본 값을 정규화된 값과 나란히, 항상 그대로 저장한다. 나중에 한 포털의 면적 기준이 가정했던 것과 다르다는 것을 발견했을 때, 원본 필드가 있으면 재도출할 수 있다. 이것이 없으면 다시 수집해야 하고, 과거 데이터는 그냥 사라진다.

두 번째 포털을 통합하기 전에 표준 모델을 구축하라

순서가 중요하다. 첫 번째 포털을 통합한 다음 두 번째 포털을 그 스키마에 끼워 맞추는 팀은, 결국 다른 이름을 쓴 첫 번째 포털의 모델일 뿐인 표준 모델을 갖게 되고, 이후 모든 통합이 이와 씨름하게 된다.

작동하는 표준 레코드는 세 개의 층을 분리한다.

계층내용분리하는 이유
원본(Raw)출처가 발행한 필드 그대로, 그리고 수집 메타데이터가정이 바뀔 때 재도출할 수 있게 함
정규화(Normalised)자체 단위, 자체 분류체계, 자체 가격 의미론, 변환 기록 포함제품이 실제로 조회하는 대상
파생(Derived)단위 면적당 가격, 계산된 지수, 점수재계산 가능, 결코 진실의 원천이 아님

모든 정규화된 필드에는 어떤 규칙으로 생성되었는지 표시가 있어야 한다. 어떤 부동산이 자사 플랫폼에서는 68제곱미터로, 포털에서는 73제곱미터로 표시되는 이유를 고객이 물었을 때, 답은 조사가 아니라 조회여야 한다.

통화, 그리고 변환된 값만 저장하지 않기

여러 국가를 아우르는 인벤토리의 경우, 발행된 대로의 원래 금액과 통화 코드, 그리고 적용한 환율과 그 환율의 날짜를 함께 저장한다.

변환된 수치만 저장하면 정보가 돌이킬 수 없이 손실된다. 환율은 변동하고, 정정이 발행되기도 하며, 과거 리스팅을 보는 고객은 오늘의 환율로 다시 환산된 가격이 아니라 실제로 요청되었던 가격을 원한다. 저장된 원본으로부터 조회 시점에 변환하거나, 날짜가 명시된 환율과 함께 변환값을 저장하여 감사하고 재계산할 수 있게 해야 한다.

여러 포털에서 같은 부동산을 조정하기

같은 부동산이 서로 다른 중개인에 의해 여러 포털에 올라오는 일은 흔하며, 사진도 다르고, 설명도 다르고, 때로는 가격도 다르다. 이를 하나의 레코드로 바꾸는 것이 신원 확인(identity resolution)이며, 이는 실시간 주택 시장 데이터 피드 구축에서 자세히 다루는데, 같은 메커니즘이 인벤토리 집계에도 작동하기 때문이다.

집계에 특화된 부분은 중복 항목이 그룹화된 이후에 무엇을 하느냐, 즉 어떤 값이 우선하는지를 결정하는 일이다.

포털별이 아니라 필드별로 출처 우선순위를 정의하라. 한 포털은 가장 신뢰할 만한 면적 수치를 가지고 있는 반면, 다른 포털은 더 나은 사진을, 세 번째 포털은 가장 빠르게 가격을 갱신할 수 있다. 단일한 전역 순위는 이런 차이를 무시해버린다.

그리고 의견 불일치를 명시적으로 다뤄야 한다. 그룹화된 리스팅들이 허용 오차를 넘어 가격에서 불일치를 보일 때, 이는 오류라기보다는 신호다. 한 중개인이 아직 반영하지 않은 가격 변동을 의미할 수도 있고, 잘못된 그룹화를 의미할 수도 있다. 이를 표시하고, 범위를 보여주고, 대안들을 계속 연결해 두라. 조용히 하나를 골라내고 나머지를 버리는 것은 집계 서비스가 신뢰를 잃는 방식이다.

일치 여부 판정 규율 일반, 그리고 일치율을 측정하고 공개하는 것에 대해서는 경쟁사 제품군 및 카탈로그 격차에서 설명하는 것과 동일하다.

커버리지는 전국 단위이지 전 세계 단위가 아니다

전 세계적인 부동산 시장이나 전 세계적인 포털 집합이라는 것은 존재하지 않는다. 각 나라는 자기만의 주요 포털, 자기만의 중개인 행동 방식, 그리고 무엇이 공개적으로 게시되는지에 대한 자기만의 관례를 가지고 있다. 일부 시장에서는 거래의 상당 부분이 공개 포털에 전혀 나타나지 않는다.

따라서 전 세계 인벤토리를 각각 정의된 자체 포털 집합을 가진 국가별 패널들의 합집합으로 취급하고, 커버리지를 집계 수준이 아니라 시장별로 기록하라. 여러 국가에 걸친 단일 헤드라인 수치는 포털이 하나뿐인 시장과 여섯 개인 시장을 같이 뭉뚱그려 숨겨버린다.

실용적인 규칙 두 가지가 있다. 커버리지가 비슷하지 않은 한 시장 간 절대 인벤토리 수를 비교하지 말라. 그렇지 않으면 자신의 패널을 측정하고 있는 셈이 된다. 그리고 해당 시장에 라이선스 피드가 존재한다면 그 라이선스를 취하라. 커버리지와 필드 품질이 대개 공개 수집보다 훨씬 낫고, 법적 지위도 더 단순하다.

수집 계층

포털은 지역화를 강하게 적용한다. 보이는 내용, 표시되는 통화, 언어, 때로는 사이트 자체가 요청이 어디에서 오는 것처럼 보이는지에 따라 달라진다. 하나의 관측 지점에서 수집하는 다국가 집계기는 여러 시장에 대해 한 나라의 관점만을 조용히 받게 될 것이다.

Shifter 게이트웨이를 사용하면 시장과 세션이 p.shifter.io:443에 대한 자격 증명에 들어간다.

customer-USERNAME-country-fr-sid-listings-fr-12-ttl-600:PASSWORD

country-fr은 ISO 알파-2 코드를 사용하고, sid-listings-fr-12는 페이지네이션을 포함한 전체 검색 동안 하나의 출구를 유지하여 결과 집합이 내부적으로 일관되도록 하며, ttl-600은 그 주소를 10분 동안 유지한다. sid 없이는 게이트웨이가 요청마다 회전하는데, 이는 독립적인 조회에는 맞지만 페이지네이션된 검색에는 맞지 않다.

지역 신호를 출구와 일관되게 유지하라. 불일치는 일부 포털이 반환하는 내용을 바꿀 수 있기 때문이다. 그리고 속도 제한과 요청 스로틀링에서 설명하는 것처럼 실제 백오프를 적용하여 요청 속도를 평범하게 유지하라. 리스팅과 함께 포털별, 시장별 수집 성공률을 추적하라. 조용히 결과를 더 적게 반환하기 시작하는 포털은 공급이 줄어든 시장과 정확히 똑같이 보이기 때문이다.

필드 완전성은 세부사항이 아니라 품질 지표다

포털들은 선택적 필드를 얼마나 완전하게 채우는지에서 크게 차이가 난다. 누락된 필드를 게시되지 않은 것이 아니라 존재하지 않는 것으로 취급하는 집계기는, 예를 들어 한 포털이 단순히 에너지 등급을 노출하지 않을 뿐인데도 특정 시장에는 에너지 등급이 있는 부동산이 거의 없다고 보고하게 될 것이다.

포털별, 필드별로 완전성을 점수화하고, 내부적으로 이를 공개하며, 출처 우선순위를 정할 때 사용하라. 이는 또한 라이선스 피드가 비용만 드는 것이 아니라 실제로 제품을 개선할 곳이 어디인지도 알려준다.

FAQ

수집 시점에 정규화해야 하나, 아니면 조회 시점에 해야 하나?

수집 시점에 정규화하고 원본 필드를 보존하라. 조회 시점 정규화는 더 느리고 인덱싱을 어렵게 만들지만, 원본 값이 없으면 잘못된 규칙을 소급하여 고칠 수 없다.

침실이 아니라 방을 발행하는 포털은 어떻게 다루나?

두 개념을 별도의 필드로 저장하고 출처가 제공하는 것을 채워 넣어라. 방 개수로부터 침실 개수를 추론하지 말고, 일부 시장에서만 채워지는 필드를 제품 필터가 조회하게 두지 말라.

국가 간에 하나의 표준 부동산 유형 분류체계가 현실적인가?

얕은 수준이라면 가능하다. 최상위 레벨은 작고 이식 가능하게 유지하고, 지역적 특수성은 메인 분류체계에 억지로 넣기보다 보조 필드에 두라.

가장 먼저 고쳐야 할 가장 가치 있는 것은 무엇인가?

면적 기준과 가격 의미론이다. 이것들은 모든 파생 지표에 영향을 미치고, 여기서 발생한 오류는 누군가 두 시장을 비교하기 전까지는 보이지 않는다.

결론

포털 간 집계는 스크래핑 문제의 옷을 입은 정규화 문제다. 수집은 이미 해결된 부분이다.

두 번째 통합을 하기 전에 표준 모델을 구축하고, 출처의 원본 값을 영구히 보존하며, 원본 통화를 날짜가 명시된 환율과 함께 저장하고, 포털별이 아니라 필드별로 출처 우선순위를 정하고, 의견 불일치를 오류가 아니라 신호로 취급하고, 전 세계적인 패널은 존재하지 않으므로 커버리지를 시장별로 기록하라. 제품 관점은 대규모 데이터 수집 페이지에서, 요금은 가격 페이지에서 확인할 수 있다.

시작할 준비가 되셨나요?

205M개 이상의 IP, 195개 이상의 국가를 지원하는 Shifter의 레지덴셜 프록시를 $0.10/GB부터 이용해보세요.

시작하기