미국·브라질 유통 플랫폼 12곳의 제품 리뷰를 한 파이프라인으로
글로벌 리서치 기업의 의뢰로 북미·중남미 주요 유통 플랫폼과 가전 브랜드 자사몰에서 제품 리뷰를 수집했습니다. 플랫폼마다 자료를 내주는 방식이 달라 수집 설계 자체가 과제였습니다.
수주
1차 계약 에서 3차 연속 수주 (으)로
배경
시장조사에서 제품 리뷰는 원자료입니다. 그런데 리뷰가 있는 곳은 대부분 접근 조건이 가장 까다로운 대형 유통 플랫폼입니다. 조사 기획은 서 있어도 자료를 손에 넣는 단계에서 멈추는 일이 반복됐습니다.
현장에서 본 것
플랫폼마다 자료를 내주는 방식이 달랐습니다. 어떤 곳은 요청 간격에 민감하고, 어떤 곳은 접속 환경에 따라 응답이 달라지며, 어떤 곳은 리뷰 영역만 별도 API로 내려줍니다. 하나의 수집기로 전부를 상대하려 하면 어디서도 안정적이지 않습니다.
정의한 문제
플랫폼별로 다른 진입 방식을 쓰되, 그 뒤의 정제·병합·출력은 하나로 묶기로 했습니다. 수집이 멈추는 것은 개별 플랫폼의 문제이고, 결과물의 형식이 제각각인 것은 전체의 문제이기 때문입니다.
만든 것
- 플랫폼별 수집 엔진 — 미국·브라질의 주요 유통 플랫폼과 가전 브랜드 자사몰을 대상으로, 각 사이트가 자료를 내주는 방식에 맞춰 따로 붙였습니다
- 메인 월드 인젝션 — 일부 플랫폼은 DOM을 긁는 대신 페이지가 이미 들고 있는 내부 데이터를 크롬 확장으로 직접 참조했습니다. 화면 구조가 바뀌어도 값이 어긋나지 않습니다
- 요청 분산과 3단계 병렬 수집 — 한곳에서 몰아 보내지 않고 경로를 나눠 받습니다. 재현 가능하도록 설계를 문서로 남겼습니다
- 단일 출력 — 플랫폼이 무엇이든 같은 형식의 표로 떨어집니다
막아 둔 것
며칠씩 도는 수집에서 실제로 발생하는 일들을 코드로 다뤘고, 그것이 의도대로 동작하는지 검증 26건으로 확인했습니다.
- 중단 후 재개 — 저장해 둔 진행 지점과 실제로 쌓인 건수 중 작은 쪽에서 다시 시작합니다. 겹쳐 받는 비용보다 빠뜨린 자료를 나중에 발견하는 비용이 큽니다
- 병합 시 중복 제거 — 고유 식별자로 합칩니다. 이미 받은 자료는 그대로 남습니다
- 경로 전환 — 응답이 오지 않거나 형식이 깨진 응답이 오면 다른 경로로 바꿔 그 지점부터 계속합니다
- 수집기와 확장의 계약 검증 — 브라우저 확장이 넘겨주는 값과 수집기가 기대하는 형식이 어긋나지 않는지 자동으로 확인합니다
- 병렬 수를 자동으로 제한 — 지정한 값이 과하면 스스로 낮춥니다. 몰아 보내면 상대 서버에 부담이 됩니다
결과
3차에 걸쳐 연속으로 수주했습니다. 첫 계약의 결과를 보고 다음 범위를 맡기는 흐름이 세 번 이어졌다는 뜻이고, 이 종류의 일에서는 그것이 품질에 대한 가장 분명한 평가입니다.
같은 방식으로 만든 다른 일은 웹 데이터 수집에 모아 두었습니다.
사실 출처
외주 용역 계약