3.5 KiB
3.5 KiB
damn-my-slow-skt
SKT/SK브로드밴드 인터넷 SLA 속도 미달 시 요금 감면 자동화를 목표로 하는 CLI 도구.
개요
SK브로드밴드는 Myspeed에서 인터넷 품질 측정과 인터넷 SLA 속도측정을 제공한다. 이 도구는 공식 측정 흐름을 자동 실행하고 결과를 저장하며, 미달 시 감면 처리까지 이어가도록 설계한다.
핵심 기능
- SKT/B world 로그인 진입 (Playwright 기반 브라우저 자동화)
- SK브로드밴드 공식 SLA 속도 측정 실행 (myspeed.skbroadband.com)
- 측정 결과 기록 (SQLite / JSON fallback)
- 속도 미달 시 감면 신청 처리
- SKT/SK브로드밴드 공식 이용약관 동의 기록
- 결과 리포트 (Discord/Telegram 알림 옵션)
- 다회 측정 - 하루 최대 N회, 감면 성공 시 자동 스킵
- 업데이트 마이그레이션 - 버전 업 시 설정 변경 안내
SK브로드밴드 SLA 측정 플로우
- http://myspeed.skbroadband.com/mesu/internet_sla.asp 접속
- "SLA 속도측정 시작하기" 클릭
- B world/T아이디 또는 간편인증 로그인
- 회선/측정 환경 확인
- 5회 자동 측정 완료 대기
- 결과 파싱 → SLA pass/fail 판단
- 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)
_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 인터페이스
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