Velo: Go와 Wails를 사용해 만든 크로스 플랫폼 네트워크 속도 모니터
Source: Dev.to
소개
인터넷 연결이 느려지는 느낌을 받은 적이 있나요? 하지만 그것이 일시적인 오류인지 지속적인 패턴인지 확신이 서지 않을 때가 있죠.
저는 Velo라는 데스크톱 애플리케이션을 만들었습니다. 이 앱은 브라우저에서 수동으로 속도 테스트를 실행하는 번거로움 없이, 시간에 따라 네트워크 속도를 추적해 줍니다.
이 글에서는 왜 Velo를 만들게 되었는지, 어떻게 동작하는지, 그리고 사용된 기술 스택에 대해 공유합니다.
링크
GitHub 저장소:
Velo란?
Velo는 데스크톱 애플리케이션으로 실행되도록 설계된 네트워크 속도 측정 도구입니다.
매시간 자동으로 속도 테스트를 실행해 다운로드, 업로드, 지연 시간 지표를 기록합니다. 데이터는 인터랙티브 차트에 시각화되어 한눈에 추세를 파악할 수 있습니다. 또한 원하는 순간에 수동 측정을 트리거할 수도 있습니다.
재미있는 사실: velo라는 이름은 이탈리아어 veloce에서 따왔으며, “빠른”이라는 뜻입니다. 멋져 보여서 선택했습니다.
동기
밤에 인터넷 연결이 느려지는 것을 발견했습니다. 보통 FAST.com을 열어 속도를 확인하는데, 매번 브라우저를 실행하는 것이 번거롭고, 단일 테스트는 현재 속도만 보여줄 뿐 추세를 알려주지 못합니다.
그래서 주기적으로 자동 측정하고 기록해 시간에 따른 패턴을 분석할 수 있는 애플리케이션이 필요했습니다.
비슷한 도구도 있지만, 직접 만들면서 배우는 것이 가장 좋겠다고 생각했습니다.
기능
- 속도 테스트:
speedtest-go를 사용해 다운로드 속도, 업로드 속도, 지연 시간을 측정합니다. - 자동 모니터링: 백그라운드에서 실행되며 매시간 속도를 테스트합니다.
- 시각화: 인터랙티브한 시간‑대‑속도 차트에 네트워크 히스토리를 표시합니다.
- 크로스‑플랫폼: macOS, Windows, Linux에서 동작합니다.
기술 스택
- 프레임워크: Wails v2
- 백엔드: Go (v1.25+)
- 프론트엔드: Vue.js (Node.js & npm)
- 라이브러리: 핵심 측정 로직을 위한
speedtest-go.
시작하기
소스에서 직접 빌드해 보고 싶거나 기여하고 싶다면 아래 절차를 따라 주세요.
사전 요구 사항
- Go (v1.25 이상)
- Node.js & npm
- Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
설치 및 실행
저장소 복제:
git clone https://github.com/kanywst/velo.git
cd velo
의존성 설치:
# Backend
go mod tidy
# Frontend
cd frontend
npm install
cd ..
개발 모드 실행:
wails dev
프로덕션 빌드:
wails build
바이너리는 build/bin 디렉터리에 생성됩니다.
결론
Velo는 ISP 성능을 확인하고자 하는 단순한 필요에서 시작된 개인 프로젝트입니다. 아직 진행 중이며, 몇 가지 버그가 남아 있을 가능성이 높습니다. 발견되는 문제를 해결하고 기능을 개선해 나갈 계획입니다.
한 번 사용해 보시고 의견을 알려 주세요. 유용하다고 생각하시거나 이름이 마음에 든다면 GitHub에 ⭐를 눌러 주시면 감사하겠습니다.
