유럽 목재 가격 데이터는 기술적으로 공개되어 있지만, 실질적으로는 사용하기 어렵습니다. 한 국가는 세금 별도로 입방미터당 유로화 기준 참나무 가격을 게시합니다. 인접 국가는 세금 포함 현지 통화 기준 너도밤나무 가격을 검색 가능한 텍스트 레이어가 없는 스캔 PDF 내에 포함하여 제공합니다. 설상가상으로 입목, 도로변 원목, 선별된 경매 로트가 동일한 제품인 것처럼 나란히 인용되기도 합니다.
원시 데이터는 존재합니다. 시장 인텔리전스는 존재하지 않습니다.
KORENA는 이를 해결하기 위해 KORENA Timber Index를 출시했습니다. 그 결과 유럽산 활엽수, 목재, 슬래브 가격을 매일 무료로 확인할 수 있는 기준 지표가 마련되었습니다. 2026년 중반 기준, 이 지수는 10개국(루마니아, 독일, 불가리아, 폴란드, 프랑스, 오스트리아, 이탈리아, 핀란드, 노르웨이, 스웨덴)에 걸쳐 약 24개 수종 및 170개 지역 가격 행과 범유럽 마켓플레이스 티어를 추적합니다.
2인 엔지니어링 팀이 이 정도로 넓은 범위를 다루기 위해, KORENA는 한 가지 결정을 신속히 내려야 했습니다. 웹 처리를 누구에게 맡길 것인가였습니다. 그들은 FourA를 선택했고, 모든 트래픽을 FourA를 통해 라우팅했습니다.
웹을 위한 단일 게이트웨이
KORENA는 초기 단계에 아키텍처적 결정을 내렸습니다. 모든 외부 웹 request는 FourA를 거칩니다. 코드베이스 내부에 흩어져 있던 스크래퍼, 일회성 스크립트, 커스텀 커맨드를 모두 제거했습니다.
편의성 때문만은 아니었습니다. 일관성이 핵심이었습니다. 임업 포털은 예측하기 어렵게 동작합니다. 일부는 정적 HTML 페이지입니다. 다른 일부는 브라우저가 렌더링한 후에만 데이터를 표시하는 최신 경매 플랫폼입니다. 정부 사이트는 느리거나 노후화되었거나 강력한 보호 기능이 적용된 경우가 많습니다.
모든 트래픽을 FourA의 request 인프라로 라우팅함으로써, KORENA는 모든 소스 전반에서 재시도, 백오프, 로깅, 알림을 동일한 방식으로 처리합니다. 또한 검색된 모든 문서는 해시화되어 저장되며, 감사를 위해 최종 가격까지 추적할 수 있습니다.
소스별 적합한 데이터 수집 전략 선택
KORENA는 사이트마다 스크래핑 로직을 하드코딩하는 대신 데이터베이스에서 각 데이터 소스를 특정 FourA endpoint에 직접 매핑합니다(자세한 내용은 적합한 작업 유형 선택 참조). 핵심 파싱 코드를 수정하지 않고도 전략을 전환할 수 있습니다.
Single (
/single/): 정적 HTML 페이지, XML 피드, 직접 PDF 다운로드. 독일 통계 보고서, 불가리아 국유림 업데이트, 루마니아 가격표. 빠르고 가벼우며 대부분의 사이트에 적합한 기본 옵션입니다.Browser (
/browser/): 실제 브라우저 컨텍스트가 필요한 대화형 웹 애플리케이션. 폴란드의 e-Drewno 경매 플랫폼은 수치가 표시되기 전에 렌더링이 필요합니다. 초기 HTML에는 유용한 데이터가 없습니다.Proxy Finder (
/proxy/): 가장 까다로운 대상에 대한 폴백 옵션. 더 강력한 로테이션 및 핸드셰이크 수준 검증을 위한unblocker: true지원.
이는 하드코딩된 스크립트가 아닌 소스별 설정이므로, KORENA는 사이트의 방어 기제가 변경될 때 소스를 Single에서 Browser, Proxy Finder로 유연하게 전환할 수 있습니다. 파싱 계층에는 이러한 과정이 전혀 노출되지 않습니다.
스캔된 PDF: 가장 까다로운 영역
최신 웹 API 처리는 간단합니다. 자동화하기 가장 까다로운 대상은 이미지 전용 PDF입니다. 텍스트 레이어가 전혀 없이 스캔본 형태로 게시되는 가격표와 경매 결과가 이에 해당합니다. 사람에게는 번거로운 수준이지만, 일일 인덱스 파이프라인에는 치명적인 중단 요인이 됩니다.
KORENA 파이프라인은 명확한 역할 분담을 통해 이를 처리합니다:
수집: FourA가 매일 원본 PDF 바이트를 안정적으로 다운로드합니다.
텍스트 검증: KORENA가 파일에 사용 가능한 네이티브 텍스트 레이어가 있는지 확인합니다.
처리 및 추출: PDF가 단일 평면 이미지인 경우, KORENA는 페이지를 래스터화한 후 OCR 및 AI 문서 추출을 실행합니다. 이때 커스텀 언어 힌트와 수종 사전을 적용하여 현지 임업 전문 용어를 정확히 포착합니다.
스키마 검증: 추출된 결과는 다른 모든 소스와 동일한 스키마를 기준으로 유효성을 검증합니다.
문서를 매일 안정적으로 가져오지 못하면 이 모든 과정이 작동하지 않습니다. 이 핵심 단계를 FourA가 담당합니다.
수집과 이해: 명확한 분리
FourA의 역할은 원본 바이트를 안정적으로 전달하는 것입니다. 목재 관련 도메인 지식은 필요하지 않습니다. 덕분에 KORENA는 혼재된 데이터를 표준화된 지표로 전환하는 핵심 도메인 작업에 100% 집중할 수 있습니다. 도메인 특화 처리는 모두 KORENA 내부에서 유지됩니다. HTML은 로컬에서 파싱되고, 디지털 PDF는 pdfjs-dist(으)로 읽히며, 스캔된 PDF는 OCR을 통해 처리됩니다.
정규화 단계는 원시 수치가 공신력 있는 인덱스로 변환되는 과정입니다. 입목 가격은 제재용 원목 가격과 다르며, 부가세가 포함된 현지 경매 결과는 부가세 별도 수출 견적과 직접 비교할 수 없습니다. 원시 데이터를 상호 비교 가능한 시장 인텔리전스로 변환하기 위해, KORENA는 모든 데이터를 하나의 표준인 **입고 기준 입방미터당 유로화(VAT 별도)**로 변환합니다.
정확한 산출을 위해 시스템은 다음 요소를 반영합니다:
- 일일 유럽중앙은행 FX 환율.
- 국가별 현지 VAT 규정.
- 목재 가공 단계별 운송 계수.
또한 인덱스는 다양한 시장 계층을 명확히 분리하여 관리합니다. 대량 원목, 고부가가치 목재 경매, 소매 매물은 개별 카테고리로 표시되며 결코 혼합되지 않습니다. 프리미엄 경매 로트가 기준치를 왜곡하지 않도록 방지합니다.
명확한 분리가 핵심입니다. FourA는 웹 접근을 해결하고, KORENA는 목재 데이터를 처리합니다. 어느 쪽도 상대방에게 종속되는 블랙박스가 되지 않습니다.
목재 가격 투명성이 급격히 중요해진 이유
EU 산림벌채방지법(EUDR)을 비롯한 더 엄격해진 유럽 규제로 인해 목재 시장은 완전한 추적성과 더 투명한 소싱 문서화를 요구받고 있습니다. 가격 투명성은 이 변화의 또 다른 핵심 축입니다. 지역별 가치를 비교하는 목재 생산자, 견적을 검증하는 구매자, 기준 가격을 설정하는 디지털 마켓플레이스 모두 매일 갱신되는 비교 가능한 현지 데이터가 필요합니다. 오래된 연간 평균값이나 일회성 수치로는 부족합니다.
2인 규모의 린 엔지니어링 팀이 10개국과 수백 개의 비정형 웹 포맷을 처리하려면 proxy 인프라 관리, 브라우저 플릿 운영, 사이트별 유지보수에 시간을 낭비할 수 없었습니다(자세한 비용 분석은 자체 스크래퍼 유지보수의 숨겨진 비용 참조). FourA가 request 계층을 전담하므로, KORENA는 수종 표준화, OCR 튜닝, 가격 책정 로직, 감사 추적 등 자체 핵심 역량에만 집중할 수 있습니다.
과거에는 일일 목재 가격을 확인하려면 지역 브로커에게 직접 전화를 걸어야 했습니다. 이제는 누구나 timber-index.korena.eu에서 가격 추세를 직접 확인할 수 있습니다. 향후 등장할 수많은 인덱스 서비스들은 데이터 수집 계층을 밑바닥부터 구축할 여유가 없을 것입니다. 이것이 우리가 FourA를 만드는 이유입니다.
공개 웹 데이터를 기반으로 제품을 구축 중이며 스크래퍼 및 proxy 인프라 유지보수에서 벗어나고 싶으신가요? FourA로 시작하기.