블로그로 돌아가기
·8분 분량·productdevbook

Mac에서 일일 인터넷 사용량 추적하는 방법

Mac에서 패턴이 눈에 들어오도록 일일 인터넷 사용량을 추적하는 방법입니다. 앱별, 일별, 그리고 사용량이 튈 때 어디부터 볼지 다룹니다.

  • macOS
  • Bandwidth
  • Productivity
  • Tutorial

ISP가 방금 이메일을 보냈습니다: 1TB 월간 한도의 940GB를 사용했고, 8일이 남았습니다. 어디로 갔는지 전혀 모릅니다. 4K Apple TV 업데이트였나요? 아이의 Roblox 세션이었나요? 드라이브를 교체한 후 전체 사진 라이브러리를 다시 업로드한 Time Machine 백업이었나요? Mac에서 일일 인터넷 사용량을 추적해서, 다음번에 이메일이 도착할 때 "일주일 동안 스트리밍을 멈추는 게 좋겠다" 대신 "정확히 어디로 갔는지 안다"고 답할 수 있어야 합니다.

이는 그 가시성을 설정하는 가이드입니다 — 무엇을 추적할지, 어떻게 저장할지, 그리고 데이터를 사용해 실제 결정을 어떻게 내릴지.

초당보다 일별이 더 중요한 이유

Mac에서 일일 인터넷 사용량을 추적하기 시작할 때, 자연스러운 본능은 실시간 MB/s를 보여주는 무언가를 설치하고 끝났다고 부르는 것입니다. 그것은 잘못된 단위입니다. 실시간 모니터링은 지금 무엇이 일어나고 있는지 알려줍니다. 일일 모니터링은 정상이 무엇이고 — 무엇이 아닌지 — 알려줍니다. 차이가 중요한 이유:

  • 5분에 200MB 급증은 일회성일 수 있습니다(누군가가 Zoom 통화에 가입). 한 시간 동안 5분마다 일어나는 같은 200MB는 문제입니다.
  • ISP 한도는 월별 청구되지만, 월간 한도를 계획하는 유일한 방법은 일별 회전 평균을 추적하는 것입니다.
  • 대부분의 "비싼" 트래픽은 초당 수준에서 보이지 않습니다 — 단일한 극적인 급증이 아니라 지속적으로 실행되는 백업 도구의 느린 흐름입니다.

유용한 일일 추적기는 다음과 같은 질문에 답합니다.

  • 이 Mac이 어제 총 얼마나 많은 데이터를 사용했는가?
  • 이번 주 어떤 앱이 가장 많은 데이터를 사용했는가?
  • 월간 한도를 향해 추세가 가는가, 아래인가?
  • 오늘이 비정상적으로 무거운 날이었는가? 왜?

Mac에서 일일 인터넷 사용량을 추적하기 위해 macOS가 기본적으로 제공하는 것

정직한 답: 일별 과거 데이터에 대해서는 많지 않습니다.

  • 활성 상태 보기 → 네트워크는 각 프로세스가 시작된 이후 누적 바이트를 보여줍니다. 재부팅하면 카운터가 재설정됩니다. 일별 롤업이 없습니다.
  • **netstat -ib**는 부팅 이후 인터페이스 수준 누적 바이트를 보여줍니다. 같은 문제 — 현재 가동 시간을 넘는 기록이 없습니다.
  • **nettop**은 라이브 뷰입니다. 디스크에 쓰지 않습니다.

일별로 추적하려면 데이터를 직접 캡처하고 저장해야 합니다. 스크립트로 만들면 적은 양의 노력입니다. 또는 그것을 하는 도구를 설치합니다.

DIY 접근

시스템 전체 일일 합계만 필요하다면(앱별이 아니라), cron이나 launchd로 자기 것을 만들 수 있습니다. 기본 레시피:

  1. 매일 자정에 netstat -ib를 읽고 활성 인터페이스의 누적 바이트를 잡습니다.
  2. 값을 날짜와 함께 CSV에 저장합니다.
  3. 어제 읽기로부터 차이를 계산합니다.

작동하는 launchd plist는 매일 netstat -ib | awk '/en0/ {print strftime("%Y-%m-%d"), $7, $10; exit}' >> ~/.daily-net.csv를 실행합니다. 거칠지만 작동합니다.

이 접근이 제공하지 않는 것:

  • 앱별 분석. netstat은 인터페이스 수준입니다. Backblaze가 12GB를 사용했고 Safari가 800MB를 사용했다는 것을 모릅니다.
  • 재부팅에서의 회복. Mac이 자정에 자고 있으면 cron이 발화하지 않습니다. 재부팅되어 카운터가 재설정되면 계산이 잘못됩니다.
  • 시각화. CSV는 데이터입니다. 차트는 정보입니다.

대부분의 사람에게 이미 이를 하는 도구가 스크립트를 유지하는 데 보낸 시간보다 몇 달러의 가치가 있습니다.

좋은 일일 추적기가 저장하는 것

일일 추적용으로 설계된 모니터는 최소한 다음을 보관해야 합니다.

  • 적어도 30~90일 거슬러 가는 앱당 업로드 및 다운로드의 일일 합계.
  • "화요일 새벽 3시에 무슨 일이 있었는가?"에 답할 수 있도록 지난 7일에 대한 시간별 버킷.
  • 트래픽이 Wi-Fi를 통해 갔는지 이더넷을 통해 갔는지 알 수 있도록 인터페이스 귀속(때때로 핫스팟에 있을 때 관련).

저장 비용은 작습니다 — 1년의 앱별 시간별 데이터조차 낮은 메가바이트입니다. 프라이버시 비용은 데이터가 Mac을 떠나는지에 전적으로 달려 있습니다. 일부 "모니터" 앱은 사용량 데이터를 공급업체 클라우드에 업로드합니다. 다른 것은 모든 것을 로컬에 유지합니다.

ova는 모든 것을 로컬에 유지합니다 — 텔레메트리 없음, 계정 불필요, 클라우드 동기화 없음. 기록 파일은 디스크의 SQLite 데이터베이스일 뿐입니다.

로컬 기록, 계정 없음
ova의 앱별 시계열은 Mac의 로컬 파일에 살고 있습니다. 로그인하지 않습니다. "ova 클라우드"가 없습니다. 앱을 제거하면 데이터가 함께 사라집니다.

알림 임계값 설정

일일 기록이 있으면 임계값을 설정할 수 있습니다. 유용한 것:

  • 일일 한도 경고: 단일 날이 가령 50GB를 초과할 때 알림.
  • 주간 추세: 회전 7일 합계가 월간 한도를 초과할 것으로 예상될 때 알림.
  • 앱별 이상: 단일 앱이 30일 평균의 5배를 하루에 사용할 때 알림.

이를 위한 대시보드가 필요하지 않습니다. 일일 차트를 흘끗 보는 주간 습관이 거의 모든 것을 잡습니다. 무언가가 잘못되었다면 차트가 잘못되어 보입니다 — 화요일의 갑작스러운 수직선, 변동이 있어야 할 곳의 평평한 고원.

ISP 한도 계획

종량제 요금제에 있다면, 실제로 원하는 계산:

  • 월간 한도 ÷ 청구 사이클의 일수 = 목표 일일 평균.
  • 지금까지의 누적 사용량 ÷ 경과한 일수 = 실제 일일 평균.
  • 실제가 목표보다 크다면, 초과 추세입니다. 사이클 초기에 알아챌수록 늦출 수 있는 일수가 더 많습니다.

예를 들어: 1TB 한도, 30일 사이클 = 33GB/일 목표. 10일이 지났고 400GB를 사용했다면, 평균은 40GB/일입니다 — 사이클 끝까지 1.2TB에 도달할 것으로 예상됩니다. 남은 20일 동안 약 30GB/일로 떨어뜨려야 합니다.

일일 추적기는 그 계산을 모호한 걱정에서 산수 문제로 바꿉니다. Mac에서 일일 인터넷 사용량을 추적할 수 있는 전체 요점은 계산을 로컬로 — 컴퓨터, 현재 청구 사이클, 어떤 것에든 로그인하지 않고 끌어올 수 있는 차트로 — 유지하는 것입니다.

메뉴 바의 일일 합계

ova는 로컬 앱별 시계열을 유지하므로 일주일 후 '기가바이트가 어디로 갔는가?'에 답할 수 있습니다.

macOS용 다운로드

Mac에서 조용히 가장 많이 비용이 드는 앱

경험상 Mac의 월간 한도에 가장 무거운 기여자, 대략의 순서:

  1. 클라우드 백업(Backblaze, Arq, iDrive) — 조용하고, 지속적이며, 특히 다시 업로드를 트리거하는 구성 변경 후 비쌉니다.
  2. 사진 / iCloud 사진 — 큰 라이브러리의 초기 업로드, HEIC/JPG와 4K 비디오의 지속적인 증분 업로드.
  3. 비디오 스트리밍 — 4K Netflix는 대략 7GB/시간입니다. 1080p YouTube는 약 2GB/시간입니다.
  4. 소프트웨어 업데이트 — macOS 업데이트는 10~15GB입니다. Xcode 업데이트는 정기적으로 8GB에 도달합니다. Adobe Creative Cloud 업데이트는 개별적으로 작지만 일정합니다.
  5. Steam, Epic Games, Battle.net — 게임 업데이트는 일상적으로 30~80GB입니다.
  6. 클라우드 동기화 — 큰 폴더를 옮기는 Dropbox, Google Drive, OneDrive.

이 목록에서 상위 3개의 이름과 지난주에 각각 대략 얼마나 사용했는지 말할 수 있다면, 한도 관리 게임의 대부분을 이미 이긴 것입니다.

차트 읽기

일일 차트를 볼 때, 모양을 보고 있습니다.

  • 평평한 기준선에 더해 가끔의 막대: 건강. 대부분의 날이 비슷합니다. 일부는 실제로 무언가를 했기 때문에 더 큽니다.
  • 꾸준한 위로 향하는 경사: 프로세스가 시간이 지나면서 더 많이 사용하고 있습니다. 종종 여전히 초기 시드 중인 백업 도구.
  • 갑작스러운 수직 급증: 조사하세요. 스트림이었나요, 업데이트였나요, 동기화 다시 부트스트랩이었나요?
  • 평소보다 더 높은 지속된 고원: 어딘가의 설정이 변했습니다. 어쩌면 새 기기가 네트워크에 가입했습니다. 어쩌면 iCloud 사진을 켰습니다.

앱별 차트가 명확하게 합니다. 시스템 전체 차트가 화요일에 급증하고 앱별 뷰가 Backblaze였음을 보여준다면, 그것은 Steam이었던 것과 다른 대화입니다.

합리적인 워크플로

추적기가 설치되고 일주일의 데이터를 누적했으면:

  1. 매주 일요일: 지난주의 일일 차트를 흘끗 봅니다. 중간값의 2배인 어떤 날이든 식별합니다.
  2. 표시된 어떤 날에든: 그 날의 앱별 뷰를 엽니다. 상위 세 앱을 기록합니다.
  3. 예상치 못한 항목에 대해: 조사합니다. 백업이 다시 시드 중이었나요? 스트리밍 세션이 예상보다 더 오래 실행되었나요?
  4. 매월: 합계를 ISP 한도와 비교합니다. 초과 추세라면 줄일 1~2개 앱을 찾습니다.

일주일에 5분. 그것이 전체 지속적인 노력이고, 다시는 ISP 이메일에 놀라지 않게 하기에 충분합니다.

마무리

일일 추적을 위한 작은 로컬 도구를 원한다면:

  • ova는 약 3MB, macOS 14 이상(Apple Silicon과 Intel)에서 실행되며, Mac에 로컬로 앱별 시계열을 유지합니다.
  • 약 1Hz로 샘플링하므로, 필요한 순간에 실시간 가시성도 얻습니다.
  • 계정 없음, 텔레메트리 없음, 클라우드 없음. 데이터는 컴퓨터에 머무릅니다.

일회성 결제, 평생 업데이트, 작업 방식에 맞지 않으면 14일 환불. 설치하고, 일주일의 데이터를 누적하게 두면, 다음번에 ISP가 사용 경고를 보낼 때 답이 이미 메뉴 바에 있을 것입니다.