Skip to content

dev-owen/monitoring-dmz

Repository files navigation

DMZ 평화관광 예약 모니터링 시스템

파주 DMZ 평화관광 웹사이트의 예약 가능 여부를 자동으로 모니터링하고 알림을 전송하는 시스템입니다.

주요 기능

  • 🔐 자동 로그인 (단체 계정)
  • 📅 지정된 날짜의 예약 가능 여부 확인
  • 🔔 SMS 알림 전송
  • ⏰ 10분 간격 자동 모니터링
  • 🛡️ 에러 처리 및 로깅

설치 및 설정

1. 의존성 설치

npm install

2. Playwright 브라우저 설치

npm run install-playwright

3. 환경 변수 설정

env.example 파일을 .env로 복사하고 필요한 설정을 입력하세요:

cp env.example .env

.env 파일에서 다음 설정을 수정하세요:

# DMZ 로그인 정보 (필수)
DMZ_USERNAME=your-dmz-username
DMZ_PASSWORD=your-dmz-password

# 모니터링 설정 (필수)
TARGET_DATE=2025-10-11
CHECK_INTERVAL_MINUTES=10

# SMS 알림 설정 (선택사항)
SMS_ACCESS_KEY_ID=your-aws-access-key-id
SMS_SECRET_ACCESS_KEY=your-aws-secret-access-key
SMS_REGION=us-east-1
SMS_TO_NUMBER=+821041781136

4. SMS 설정 (AWS SNS 사용 시)

  1. AWS SNS 계정 생성
  2. IAM 사용자 생성 및 SNS 권한 부여
  3. Access Key ID와 Secret Access Key를 .env 파일에 입력

사용법

개발 모드로 실행

npm run dev

프로덕션 모드로 실행

npm run build
npm start

모니터링 로직

  1. 로그인 확인: 단체 계정으로 로그인 상태 확인
  2. 예약 페이지 이동: 단체 예약 페이지로 이동
  3. 날짜 선택: 지정된 날짜(2025-10-11) 선택
  4. 예약 가능 회차 체크: '예약 가능 회차' 체크박스 클릭
  5. 슬롯 확인: 각 시간대에서 '가능' 텍스트 확인
  6. 알림 전송: 예약 가능한 시간이 있으면 SMS 전송

비용 최적화

  • Playwright: 무료 오픈소스
  • AWS SNS: 건당 약 9원 (SMS 전송 시)
  • Node.js: 무료

로그 확인

시스템은 콘솔에 상세한 로그를 출력합니다:

[2025-01-XX 10:00:00] DMZ 모니터링 시작...
로그인 페이지로 이동...
로그인 성공!
예약 페이지로 이동...
날짜 선택: 2025-10-11
예약 가능 회차 체크...
발견된 예약 가능 슬롯: 2개
✅ 예약 가능한 슬롯 발견: 2개
   - 09시 20분 (모노레일)
   - 14시 30분 (도보관람)
[2025-01-XX 10:00:15] DMZ 모니터링 완료

문제 해결

로그인 실패

  • DMZ 계정 정보가 올바른지 확인
  • 웹사이트 구조 변경으로 인한 셀렉터 오류 가능성

예약 슬롯을 찾을 수 없음

  • 웹사이트 구조 변경으로 인한 셀렉터 오류 가능성
  • 날짜가 예약 가능한 범위 내인지 확인

알림 전송 실패

  • SMS 설정이 올바른지 확인
  • 네트워크 연결 상태 확인

주의사항

  • 이 시스템은 교육 및 개인적 용도로만 사용하세요
  • 웹사이트의 이용약관을 준수하세요
  • 과도한 요청으로 인한 서버 부하를 피하세요
  • 개인정보 보호에 주의하세요

라이선스

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published