# damn-my-slow-skt SKT/SK브로드밴드 인터넷 SLA 속도 미달 시 요금 감면 자동화를 목표로 하는 CLI 도구. ## 개요 SK브로드밴드는 Myspeed에서 인터넷 품질 측정과 인터넷 SLA 속도측정을 제공한다. 이 도구는 공식 측정 흐름을 자동 실행하고 결과를 저장하며, 미달 시 감면 처리까지 이어가도록 설계한다. ## 핵심 기능 1. **SKT/B world 로그인 진입** (Playwright 기반 브라우저 자동화) 2. **SK브로드밴드 공식 SLA 속도 측정 실행** (myspeed.skbroadband.com) 3. **측정 결과 기록** (SQLite / JSON fallback) 4. **속도 미달 시 감면 신청 처리** 5. **SKT/SK브로드밴드 공식 이용약관 동의 기록** 6. **결과 리포트** (Discord/Telegram 알림 옵션) 7. **다회 측정** - 하루 최대 N회, 감면 성공 시 자동 스킵 8. **업데이트 마이그레이션** - 버전 업 시 설정 변경 안내 ## SK브로드밴드 SLA 측정 플로우 1. http://myspeed.skbroadband.com/mesu/internet_sla.asp 접속 2. "SLA 속도측정 시작하기" 클릭 3. B world/T아이디 또는 간편인증 로그인 4. 회선/측정 환경 확인 5. 5회 자동 측정 완료 대기 6. 결과 파싱 → SLA pass/fail 판단 7. fail 시 품질 점검/감면 처리 단계 진행 ## SLA 기준 - 30분간 5회 이상 측정 - 측정치의 60% 이상이 최저속도(다운로드 속도)에 미달하면 당일 이용요금 감면 - 유선(LAN) 연결 권장, 무선랜/공유환경/부적합 LAN카드 등은 감면 제외 가능 ## 기술 스택 - **언어**: TypeScript (Node.js 20+) - **브라우저 자동화**: Playwright (headless Chromium) - **스케줄링**: macOS launchd / Linux systemd timer / crontab - **설정**: YAML (`~/.damn-my-slow-isp/config-skt.yaml`) - **데이터 저장**: SQLite (Node 22+ built-in) / JSON fallback - **알림**: Discord webhook / Telegram bot (선택) - **배포**: npm registry (`npx damn-my-slow-skt`) ## 설정 파일 (`~/.damn-my-slow-isp/config-skt.yaml`) ```yaml _config_version: 4 credentials: id: "사용자ID" password: "비밀번호" terms: provider: "skt" accepted: true accepted_at: "2026-03-30T00:00:00.000Z" version: "2026-03-30" urls: - "https://www.bworld.co.kr/footer/terms.do?menu_id=F01010000" - "https://cdn.bworld.co.kr/home/fronta/data/download/stip/제31차%20전기통신서비스이용기본약관_260330.pdf" phone: "01012345678" plan: speed_mbps: 1000 schedule: time: "04:00" timezone: "Asia/Seoul" max_attempts: 10 retry_interval_minutes: 120 stop_on_complaint_success: true notification: discord_webhook: "" telegram_bot_token: "" telegram_chat_id: "" headless: true db_path: "~/.damn-my-slow-isp/history-skt.db" ``` `init`은 위 약관 URL을 표시하고 명시적 동의를 받은 뒤 설정을 저장한다. v4 마이그레이션도 같은 공식 URL을 표시하고 동의를 기록한다. `run`은 현재 SKT 약관 버전 동의가 없으면 필수 설정 누락으로 종료한다. ## CLI 인터페이스 ```bash damn-my-slow-skt init damn-my-slow-skt run damn-my-slow-skt run --dry-run damn-my-slow-skt run --force damn-my-slow-skt config show damn-my-slow-skt history damn-my-slow-skt report damn-my-slow-skt schedule install damn-my-slow-skt schedule remove ``` ## 프로젝트 구조 ``` src/ ├── index.ts ├── cli.ts ├── config.ts ├── db.ts ├── skt.ts ├── migration.ts ├── notify.ts ├── report.ts ├── scheduler.ts └── updater.ts ```