GitHub - kargnas/damn-my-slow-kt: 명령어 설치 한번으로 한달 KT 인터넷 요금을 무료로 쓸 수 있습니다. 귀찮은 공문 작성 필요 없습니다.
핵심 포인트
- 1KT 인터넷 사용자를 위한 이 도구는 계약 속도 미달 시 자동으로 요금 감면 신청을 대행하여 번거로운 수동 절차를 없애줍니다.
- 2KT 공식 속도 측정 프로그램(macOS/Windows)을 이용해 하루 최대 10회까지 자동 측정하며, SLA 미달 시 즉시 감면을 신청하고 Discord 또는 Telegram으로 알림을 보낼 수 있습니다.
- 3월 5일 이상 감면 시 위약금 없이 해약이 가능하며, 유선(LAN) 연결 환경에서만 측정이 유효하고 Linux 기반 시스템(Docker/NAS)에서는 현재 지원되지 않습니다.
damn-my-slow-kt는 대한민국 통신사 KT의 인터넷 서비스 품질보증제도(SLA)를 활용하여 사용자 요금을 자동으로 감면받을 수 있도록 돕는 도구입니다. KT는 인터넷 서비스 계약 속도의 50% 미만으로 속도가 측정될 경우 해당일의 요금을 감면해주는데, 이 과정이 수동으로 진행될 시 매일 측정을 반복해야 하는 번거로움이 있어 이를 자동화한 것이 본 프로젝트의 핵심 목표입니다.
핵심 방법론 (Core Methodology):
본 도구는 크게 다음과 같은 단계로 동작하며, 웹 자동화(Web Automation) 기술과 시스템 스케줄링을 통합하여 자동화된 프로세스를 구현합니다.
- KT 공식 속도 측정 프로그램 연동:
- KT의 SLA 규정상 품질 보상 신청을 위해서는 반드시 KT가 제공하는 공식 속도 측정 프로그램(macOS용
ktspeed.pkg또는 Windows용speed.kt.com내 품질보증 테스트)을 사용하여 측정해야 합니다. 본 도구는 이 프로그램을 통한 속도 측정을 필수 전제로 합니다. - 이는 Linux 환경에서 도구를 사용할 수 없는 주요 제약 사항으로 작용합니다. KT 속도 측정 프로그램이 macOS 및 Windows만을 지원하므로, Docker/NAS와 같은 Linux 기반 환경에서는 SLA 측정이 불가능합니다.
- KT의 SLA 규정상 품질 보상 신청을 위해서는 반드시 KT가 제공하는 공식 속도 측정 프로그램(macOS용
- 자동화된 속도 측정 및 SLA 위반 판정:
- 사용자가
npx -y damn-my-slow-kt@latest init명령을 통해 KT 계정 정보를 설정하고 초기화하면, 도구는 일일 최대 10회(기본 2시간 간격) 속도 측정을 자동으로 스케줄링합니다. - 속도 측정은
Playwright라이브러리를 활용한 headless Chromium 브라우저를 통해speed.kt.com웹사이트에 접속하여 이루어집니다. 이 과정에서 사용자의 KT 계정으로 로그인하고, 공식 속도 측정 프로그램과 연동하여 실제 속도 데이터를 획득합니다. - KT의 SLA 기준은 "30분 동안 5회 이상 전송 속도를 측정하여 측정 횟수의 60% 이상(즉, 3회 이상)이 최저 보장 속도에 미달할 경우 보상 대상"으로 정의됩니다. 본 도구는 측정된 속도 값을 이 기준에 따라 실시간으로 분석하여 SLA 위반 여부를 판정합니다. 최저 보장 속도는 계약 속도에 따라 다르며, 예를 들어 1Gbps 기가라이트 상품의 경우 500Mbps입니다.
- 사용자가
- 자동 요금 감면 신청 및 스케줄 관리:
- SLA 위반이 감지되면, 도구는 즉시 KT 고객센터 시스템을 통해 요금 감면을 자동으로 신청합니다.
- 하루 중 한 번이라도 요금 감면 신청이 성공하면, 해당일의 추가적인 속도 측정 및 감면 신청은 "오늘 이미 감면 성공"으로 간주되어 스킵됩니다. 이는 불필요한 반복 작업을 방지하고 시스템 부하를 줄입니다.
- 스케줄링은 사용자가 설정 파일을 통해
max_attempts(하루 최대 측정 횟수) 및retry_interval_minutes(측정 간격)를 커스터마이징할 수 있으며,discord_webhook또는telegram_bot_token을 통한 알림 설정도 지원합니다. - 설정 파일은
~/.damn-my-slow-isp/config-kt.yaml에 YAML 형식으로 저장되며,schedule install명령을 통해 스케줄을 시스템에 등록합니다.
기술 스택 (Technical Stack):
- 언어: TypeScript (ES2020, CommonJS, strict)
- CLI: Commander, Inquirer, Chalk v4
- 브라우저 자동화: Playwright (headless Chromium) - KT 공식 웹사이트와의 상호작용 및 데이터 추출에 활용됩니다.
- 저장소:
node:sqlite(Node 22+ 환경), 또는 JSON 파일 기반의 fallback 옵션 - 설정 관리: YAML 형식 (
~/.damn-my-slow-isp/config-kt.yaml) - 린팅 및 테스트: ESLint, typescript-eslint, Vitest
- CI/CD: GitHub Actions
이 도구는 사용자가 복잡한 KT의 요금 감면 절차를 직접 수행할 필요 없이, 시스템적으로 자동화하여 편의성을 제공하고 요금 절감 효과를 극대화하는 것을 목적으로 합니다. 특히, 월 5일 이상 감면 시 할인 반환금 없이 해약이 가능한 KT 약관 조항까지 고려하여 사용자에게 실질적인 이점을 제공합니다.