피드로 돌아가기
Building a Lightweight Website Monitor with Cron and an API
Dev.toDev.to
Infrastructure

100라인 미만 Node.js 코드로 구현한 월 $0 비용의 Lightweight Website Monitor

Building a Lightweight Website Monitor with Cron and an API

Sen Shi2026년 5월 7일13beginner

Context

기존의 SaaS 기반 웹사이트 모니터링 도구는 높은 비용과 과도한 기능으로 인한 오버헤드가 발생함. 단순한 시각적 변경 감지를 위해 복잡한 인프라와 데이터베이스 없이 최소한의 리소스로 작동하는 경량 아키텍처가 필요함.

Technical Solution

  • 외부 Screenshot API를 통한 렌더링 부하 제거 및 PNG Buffer 기반의 데이터 수신 구조 설계
  • pixelmatch 라이브러리를 활용한 Pixel-level 비교 방식으로 0.5% 이상의 변경 사항만 필터링하는 DIFF_THRESHOLD 로직 적용
  • Local Filesystem을 활용한 최신/이전 스냅샷의 Rotate 저장 구조로 DB 의존성 제거
  • cron 및 GitHub Actions 기반의 스케줄링을 통해 서버리스 환경의 상시 모니터링 체계 구축
  • nodemailer 및 Slack Webhook을 연결한 Event-driven 알림 파이프라인 구현

1. 모니터링 대상 URL을 외부 JSON 파일로 분리하여 코드 변경 없는 동적 확장성 확보

2. 이미지 비교 시 픽셀 임계값(Threshold)을 설정하여 사소한 렌더링 차이로 인한 False Positive 방지

3. 스냅샷 아카이빙 시 ISO 타임스탬프 기반 파일명을 적용하여 이력 관리 체계 마련

원문 읽기