D
drawyourmind
Back to Works
Personal Project
2024.12 - 진행중

골드박스 투데이

쿠팡 골드박스 일일 특가 상품을 자동으로 수집하고 표시하는 제휴 마케팅 플랫폼입니다. Puppeteer 크롤링으로 150개 이상의 상품을 실시간 수집하며 가격 히스토리를 추적합니다.

Next.js
TypeScript
React
Tailwind CSS
Supabase
Puppeteer
골드박스 투데이

프로젝트 소개

쿠팡의 '골드박스'는 매일 오전 7시에 갱신되는 24시간 한정 초특가 딜입니다. 하지만 쿠팡 앱 내에서는 지난 딜 히스토리를 보거나 체계적으로 검색하기가 어려웠습니다. 골드박스 투데이는 이러한 불편함을 해결하기 위해 시작된 사이드 프로젝트입니다.

시스템 아키텍처

  1. 크롤링 (Data Collection)

    • Puppeteer를 사용하여 매일 오전 7시 5분, 쿠팡 골드박스 페이지를 크롤링합니다.
    • GitHub Actions Cron 스케줄러를 통해 자동화되어 있습니다.
  2. 데이터베이스 (Storage)

    • 수집된 데이터는 Supabase (PostgreSQL)에 저장됩니다.
    • 가격 변동 추이 그래프를 그리기 위해 과거 이력을 모두 보존합니다.
  3. 웹 애플리케이션 (Frontend)

    • Next.js App Router 기반으로 SEO 최적화된 페이지를 제공합니다.
    • 유저가 접속할 때 DB에서 최신 데이터를 ISR 방식으로 캐싱하여 빠르게 보여줍니다.

핵심 기능 구현

가격 변동 그래프

Recharts 라이브러리를 사용하여 특정 상품의 날짜별 가격 변화를 시각화했습니다. 이를 통해 유저는 "오늘의 특가"가 진짜 최저가인지 판별할 수 있습니다.

카테고리 필터링

150여 개의 난잡한 상품 리스트를 '식품', '가전', '생활용품' 등 1차 카테고리로 자동 분류하는 알고리즘을 구현했습니다. 키워드 매칭 방식을 사용했으며 정확도는 약 95%입니다.

배운 점

  • 크롤링 방어 우회: 쿠팡의 Bot 탐지 로직을 우회하기 위해 User-Agent 로테이션과 랜덤 딜레이를 적용하는 과정에서 웹 보안에 대한 이해도가 높아졌습니다.
  • Supabase 활용: BaaS(Backend as a Service)의 편리함과 RLS(Row Level Security) 설정의 중요성을 체감했습니다.