파주 DMZ 평화관광 웹사이트의 예약 가능 여부를 자동으로 모니터링하고 알림을 전송하는 시스템입니다.
- 🔐 자동 로그인 (단체 계정)
- 📅 지정된 날짜의 예약 가능 여부 확인
- 🔔 SMS 알림 전송
- ⏰ 10분 간격 자동 모니터링
- 🛡️ 에러 처리 및 로깅
npm install
npm run install-playwright
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
- AWS SNS 계정 생성
- IAM 사용자 생성 및 SNS 권한 부여
- Access Key ID와 Secret Access Key를
.env
파일에 입력
npm run dev
npm run build
npm start
- 로그인 확인: 단체 계정으로 로그인 상태 확인
- 예약 페이지 이동: 단체 예약 페이지로 이동
- 날짜 선택: 지정된 날짜(2025-10-11) 선택
- 예약 가능 회차 체크: '예약 가능 회차' 체크박스 클릭
- 슬롯 확인: 각 시간대에서 '가능' 텍스트 확인
- 알림 전송: 예약 가능한 시간이 있으면 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