Coti Lab
kuro editor
업데이트
4분

Changedetection.io: 웹페이지 변경 감지 알림 셀프호스팅

Changedetection.io 웹페이지 변경 감지

사고 싶은 쇼핑몰 상품이 재입고되는지, 관심 있는 채용 공고 페이지에 새 글이 올라오는지, 관공서 웹사이트의 공지사항이 업데이트되는지를 매번 직접 들어가서 확인하려면 은근히 품이 들어요. Changedetection.io는 지정한 웹페이지를 주기적으로 확인해, 내용이 바뀌면 90개 이상의 채널로 자동 알림을 보내주는 셀프호스팅 도구예요. 그렇다면 웹페이지 변경 감지를 셀프호스팅으로 자동화한다는 게 실제로 어떻게 이뤄지는 걸까요?

기본 동작 원리

Changedetection.io에 감시하고 싶은 URL을 등록하면, 설정한 주기(몇 분에서 몇 시간 단위)마다 해당 페이지를 다시 불러와 이전에 저장해둔 버전과 비교해요. 변경 사항이 감지되면 등록해둔 알림 채널(이메일, Telegram, Discord, Slack, ntfy 등 90개 이상 지원)로 즉시 알림을 보내요. 대시보드에서는 정확히 어느 부분이 바뀌었는지 색상으로 강조된 diff(비교) 화면으로 확인할 수 있어요.

실제로 유용한 활용 시나리오

Changedetection.io는 사람이 반복적으로 눈으로 확인하던 페이지 감시 작업을 대신해주는 도구라 아래와 같은 상황에서 특히 유용해요.

  • 가격 추적: 사고 싶은 제품의 가격이 특정 금액 이하로 떨어지면 알림을 받도록 설정해요.
  • 재입고 알림: 품절된 상품 페이지를 감시하다가 “품절” 텍스트가 사라지는 순간 알림을 받아요.
  • 채용/입시 공고: 특정 기업 채용 페이지나 학교 입학처 공지사항 페이지의 새 글을 감지해요.
  • 경쟁사 모니터링: 경쟁 서비스의 요금제 페이지나 공지사항 변경을 추적해요.
  • 정부/공공기관 공지: 정책 변경이나 신청 기간 공지처럼 중요하지만 갱신 주기를 예측하기 어려운 정보를 놓치지 않아요.

CSS 선택자로 원하는 부분만 정밀하게 감시

단순히 페이지 전체를 비교하면, 방문자 수 카운터나 현재 시각처럼 페이지를 열 때마다 바뀌는 요소 때문에 매번 “변경 감지됨”으로 오탐이 발생해요. Changedetection.io는 CSS 선택자(또는 XPath)를 지정해 페이지의 특정 영역만 골라 감시할 수 있는 기능을 제공해요. 예를 들어 상품 가격이 담긴 .price 클래스만 지정하면, 페이지의 다른 부분이 아무리 바뀌어도 가격 텍스트가 실제로 바뀔 때만 알림이 와요.

자바스크립트로 렌더링되는 페이지 대응

최근 많은 웹사이트가 자바스크립트로 콘텐츠를 동적으로 그려내는데, 단순 HTTP 요청만으로는 빈 페이지만 받아오는 경우가 많아요. Changedetection.io는 내장된 헤드리스 브라우저(Playwright/Chrome) 모드를 지원해, 실제 브라우저처럼 자바스크립트를 실행한 뒤의 최종 렌더링 결과를 기준으로 비교할 수 있어요. 다만 이 모드는 일반 HTTP 요청 방식보다 리소스를 더 많이 사용하므로, 정적인 페이지는 기본 모드로 충분해요.

설치

Changedetection.io는 Docker 컨테이너 하나로 간단하게 띄울 수 있으며, 이미 Docker Compose 기반 홈랩 스택을 운영 중이라면 서비스 하나만 추가하면 돼요.

services:
  changedetection:
    image: ghcr.io/dgtlmoon/changedetection.io:latest
    ports:
      - "5000:5000"
    volumes:
      - changedetection_data:/datastore
volumes:
  changedetection_data:

자바스크립트 렌더링이 필요하다면 공식적으로 제공하는 sockpuppetbrowser 컨테이너를 함께 띄워 연결하는 구성도 지원해요.

감시 주기와 사이트 정책 존중

지나치게 짧은 주기(몇 초 단위)로 페이지를 계속 요청하면 대상 사이트에 불필요한 부하를 주거나, 심한 경우 IP가 차단될 수 있어요. 대부분의 용도(가격 추적, 공지사항 확인)는 몇 시간 간격이면 충분하며, 감시 대상 사이트의 robots.txt나 이용약관에서 자동화된 접근을 명시적으로 금지하는 경우 이를 존중하는 게 중요해요.

상용 서비스와 비교했을 때

Visualping이나 Distill.io 같은 상용 웹 모니터링 서비스도 있지만, 대부분 감시 가능한 페이지 수나 확인 주기에 제한을 두고 유료 구독을 유도해요. Changedetection.io는 셀프호스팅이라 이런 제한이 없고, 감시 대상 개수도 서버 자원이 허용하는 한 자유롭게 늘릴 수 있어요.

결론

Changedetection.io는 “사람이 반복적으로 확인하는 일”을 가장 직접적으로 자동화해주는 도구예요. 설정이 간단하면서도 실생활에서 체감되는 효용이 큰 편이라, 처음 셀프호스팅을 시작하는 사람에게도 부담 없이 추천할 만한 프로젝트예요. 서비스 자체의 다운타임을 감시하고 싶다면 콘텐츠 변경이 아니라 가용성을 감시하는 Uptime Kuma를 함께 구성하는 게 좋아요.

자주 묻는 질문

Q1. 방문자 수나 현재 시각처럼 계속 바뀌는 부분 때문에 알림이 너무 자주 오지 않나요?

CSS 선택자나 XPath로 감시할 영역을 좁게 지정하면 이 문제를 막을 수 있어요. 가격 텍스트가 담긴 요소만 지정해두면 페이지의 다른 부분이 바뀌어도 알림이 오지 않아요.

Q2. 자바스크립트로 렌더링되는 사이트도 감시할 수 있나요?

네, 내장된 헤드리스 브라우저(Playwright/Chrome) 모드를 켜면 실제 브라우저처럼 렌더링한 최종 결과를 기준으로 비교할 수 있어요.

Q3. 감시 주기를 몇 초 단위로 짧게 설정해도 되나요?

권장하지 않아요. 지나치게 짧은 주기는 대상 사이트에 부하를 주거나 IP 차단으로 이어질 수 있어, 대부분의 용도는 몇 시간 간격이면 충분해요.

Q4. Visualping 같은 유료 서비스 대신 써도 기능이 부족하지 않나요?

가격 추적이나 공지사항 감시 같은 일반적인 용도라면 부족하지 않으며, 오히려 셀프호스팅이라 감시 가능한 페이지 수 제한이 없다는 게 장점이에요.

Q5. 알림은 어떤 채널로 받을 수 있나요?

이메일, Telegram, Discord, Slack을 포함해 90개 이상의 알림 채널을 지원하므로 기존에 쓰던 알림 도구에 그대로 연결할 수 있어요.

k
kuro editor 자료 조사하고 분석하고 글을 읽기 쉽게 작성합니다
프로필

댓글

첫 번째 댓글을 남겨보세요!